123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- #include <kopano/platform.h>
- #include <mutex>
- #include <kopano/lockhelper.hpp>
- #include "ECSyncSettings.h"
- #include <mapix.h>
- #include <kopano/ECLogger.h>
- ECSyncSettings* ECSyncSettings::GetInstance()
- {
- scoped_lock lock(s_hMutex);
- if (s_lpInstance == NULL)
- s_lpInstance = new ECSyncSettings;
- return s_lpInstance;
- }
- ECSyncSettings::ECSyncSettings(void) :
- m_ulSyncLogLevel(EC_LOGLEVEL_INFO)
- {
- char *env = getenv("KOPANO_SYNC_LOGLEVEL");
- if (env && env[0] != '\0') {
- unsigned loglevel = strtoul(env, NULL, 10);
- if (loglevel > 0) {
- m_ulSyncLog = 1;
- m_ulSyncLogLevel = loglevel;
- }
- }
- env = getenv("KOPANO_STREAM_TIMEOUT");
- if (env && env[0] != '\0')
- m_ulStreamTimeout = strtoul(env, NULL, 10);
- env = getenv("KOPANO_STREAM_BUFFERSIZE");
- if (env && env[0] != '\0')
- m_ulStreamBufferSize = strtoul(env, NULL, 10);
- env = getenv("KOPANO_STREAM_BATCHSIZE");
- if (env && env[0] != '\0')
- m_ulStreamBatchSize = strtoul(env, NULL, 10);
- }
- bool ECSyncSettings::SyncLogEnabled() const {
- return ContinuousLogging() ? true : m_ulSyncLog != 0;
- }
- ULONG ECSyncSettings::SyncLogLevel() const {
- return ContinuousLogging() ? EC_LOGLEVEL_DEBUG : m_ulSyncLogLevel;
- }
- bool ECSyncSettings::ContinuousLogging() const {
- return m_ulSyncOpts & EC_SYNC_OPT_CONTINUOUS;
- }
- bool ECSyncSettings::SyncStreamEnabled() const {
- return m_ulSyncOpts & EC_SYNC_OPT_STREAM;
- }
- bool ECSyncSettings::ChangeNotificationsEnabled() const {
- return m_ulSyncOpts & EC_SYNC_OPT_CHANGENOTIF;
- }
- bool ECSyncSettings::StateCollectorEnabled() const {
- return m_ulSyncOpts & EC_SYNC_OPT_STATECOLLECT;
- }
- ULONG ECSyncSettings::StreamTimeout() const {
- return m_ulStreamTimeout;
- }
- ULONG ECSyncSettings::StreamBufferSize() const {
- return m_ulStreamBufferSize;
- }
- ULONG ECSyncSettings::StreamBatchSize() const {
- return m_ulStreamBatchSize;
- }
- bool ECSyncSettings::EnableSyncLog(bool bEnable) {
- bool bPrev = SyncLogEnabled();
- m_ulSyncLog = (bEnable ? 1 : 0);
- return bPrev;
- }
- ULONG ECSyncSettings::SetSyncLogLevel(ULONG ulLogLevel) {
- ULONG ulPrev = m_ulSyncLogLevel;
- if (ulLogLevel >= EC_LOGLEVEL_FATAL && ulLogLevel <= EC_LOGLEVEL_DEBUG)
- m_ulSyncLogLevel = ulLogLevel;
- return ulPrev;
- }
- ULONG ECSyncSettings::SetSyncOptions(ULONG ulOptions) {
- ULONG ulPrev = m_ulSyncOpts;
- m_ulSyncOpts = ulOptions;
- return ulPrev;
- }
- ULONG ECSyncSettings::SetStreamTimeout(ULONG ulTimeout) {
- ULONG ulPrev = m_ulStreamTimeout;
- m_ulStreamTimeout = ulTimeout;
- return ulPrev;
- }
- ULONG ECSyncSettings::SetStreamBufferSize(ULONG ulBufferSize) {
- ULONG ulPrev = m_ulStreamBufferSize;
- m_ulStreamBufferSize = ulBufferSize;
- return ulPrev;
- }
- ULONG ECSyncSettings::SetStreamBatchSize(ULONG ulBatchSize) {
- ULONG ulPrev = m_ulStreamBatchSize;
- m_ulStreamBatchSize = ulBatchSize;
- return ulPrev;
- }
- std::mutex ECSyncSettings::s_hMutex;
- ECSyncSettings* ECSyncSettings::s_lpInstance = NULL;
- ECSyncSettings::__initializer::~__initializer() {
- delete ECSyncSettings::s_lpInstance;
- }
- ECSyncSettings::__initializer ECSyncSettings::__i;
|