syncd/CommandLineOptions.cpp (94 lines of code) (raw):
#include "CommandLineOptions.h"
#include "meta/sai_serialize.h"
#include "swss/logger.h"
#include <sstream>
using namespace syncd;
CommandLineOptions::CommandLineOptions()
{
SWSS_LOG_ENTER();
// default values for command line options
m_enableDiagShell = false;
m_enableTempView = false;
m_disableExitSleep = false;
m_enableUnittests = false;
m_enableConsistencyCheck = false;
m_enableSyncMode = false;
m_enableSaiBulkSupport = false;
m_redisCommunicationMode = SAI_REDIS_COMMUNICATION_MODE_REDIS_ASYNC;
m_startType = SAI_START_TYPE_COLD_BOOT;
m_profileMapFile = "";
m_globalContext = 0;
m_contextConfig = "";
m_breakConfig = "";
m_watchdogWarnTimeSpan = 30 * 1000000;
#ifdef SAITHRIFT
m_runRPCServer = false;
m_portMapFile = "";
#endif // SAITHRIFT
}
std::string CommandLineOptions::getCommandLineString() const
{
SWSS_LOG_ENTER();
std::stringstream ss;
ss << " EnableDiagShell=" << (m_enableDiagShell ? "YES" : "NO");
ss << " EnableTempView=" << (m_enableTempView ? "YES" : "NO");
ss << " DisableExitSleep=" << (m_disableExitSleep ? "YES" : "NO");
ss << " EnableUnittests=" << (m_enableUnittests ? "YES" : "NO");
ss << " EnableConsistencyCheck=" << (m_enableConsistencyCheck ? "YES" : "NO");
ss << " EnableSyncMode=" << (m_enableSyncMode ? "YES" : "NO");
ss << " RedisCommunicationMode=" << sai_serialize_redis_communication_mode(m_redisCommunicationMode);
ss << " EnableSaiBulkSuport=" << (m_enableSaiBulkSupport ? "YES" : "NO");
ss << " StartType=" << startTypeToString(m_startType);
ss << " ProfileMapFile=" << m_profileMapFile;
ss << " GlobalContext=" << m_globalContext;
ss << " ContextConfig=" << m_contextConfig;
ss << " BreakConfig=" << m_breakConfig;
ss << " WatchdogWarnTimeSpan=" << m_watchdogWarnTimeSpan;
ss << " SupportingBulkCounters=" << m_supportingBulkCounterGroups;
#ifdef SAITHRIFT
ss << " RunRPCServer=" << (m_runRPCServer ? "YES" : "NO");
ss << " PortMapFile=" << m_portMapFile;
#endif // SAITHRIFT
return ss.str();
}
sai_start_type_t CommandLineOptions::startTypeStringToStartType(
_In_ const std::string& startType)
{
SWSS_LOG_ENTER();
if (startType == STRING_SAI_START_TYPE_COLD_BOOT)
return SAI_START_TYPE_COLD_BOOT;
if (startType == STRING_SAI_START_TYPE_WARM_BOOT)
return SAI_START_TYPE_WARM_BOOT;
if (startType == STRING_SAI_START_TYPE_FAST_BOOT)
return SAI_START_TYPE_FAST_BOOT;
if (startType == STRING_SAI_START_TYPE_FASTFAST_BOOT)
return SAI_START_TYPE_FASTFAST_BOOT;
if (startType == STRING_SAI_START_TYPE_EXPRESS_BOOT)
return SAI_START_TYPE_EXPRESS_BOOT;
if (startType == STRING_SAI_START_TYPE_UNKNOWN)
return SAI_START_TYPE_UNKNOWN;
SWSS_LOG_WARN("unknown startType: '%s'", startType.c_str());
return SAI_START_TYPE_UNKNOWN;
}
std::string CommandLineOptions::startTypeToString(
_In_ sai_start_type_t startType)
{
SWSS_LOG_ENTER();
switch (startType)
{
case SAI_START_TYPE_COLD_BOOT:
return STRING_SAI_START_TYPE_COLD_BOOT;
case SAI_START_TYPE_WARM_BOOT:
return STRING_SAI_START_TYPE_WARM_BOOT;
case SAI_START_TYPE_FAST_BOOT:
return STRING_SAI_START_TYPE_FAST_BOOT;
case SAI_START_TYPE_FASTFAST_BOOT:
return STRING_SAI_START_TYPE_FASTFAST_BOOT;
case SAI_START_TYPE_EXPRESS_BOOT:
return STRING_SAI_START_TYPE_EXPRESS_BOOT;
case SAI_START_TYPE_UNKNOWN:
return STRING_SAI_START_TYPE_UNKNOWN;
default:
SWSS_LOG_WARN("unknown startType '%d'", startType);
return STRING_SAI_START_TYPE_UNKNOWN;
}
}