#ifndef LOGGING_LOGGINGBASE_H_ #define LOGGING_LOGGINGBASE_H_ namespace logging { template class _PermitionsBase { public: enum LOG_PERMIT_FLAG { __PERMISSIONS_MASK = 0xFFFFu }; /* Разрешить работы журнала критических сообщений. */ static const LOG_PERMIT_FLAG on_critical_log = static_cast(0x01); /* Разрешить работы журнала ошибок сообщений. */ static const LOG_PERMIT_FLAG on_error_log = static_cast(0x02); /* Разрешить работы журнала информационных сообщений. */ static const LOG_PERMIT_FLAG on_information_log = static_cast(0x04); /* Разрешить работу всех журналов сообщений. */ static const LOG_PERMIT_FLAG on_all_logs = static_cast(0x07); enum RECORD_PRIORITY_FLAG { __PRIORITY_MASK = 0x3 }; static const RECORD_PRIORITY_FLAG hi_record_priority = static_cast(0x3); static const RECORD_PRIORITY_FLAG medium_record_priority = static_cast(0x2); static const RECORD_PRIORITY_FLAG low_record_priority = static_cast(0x1); }; template const typename _PermitionsBase::LOG_PERMIT_FLAG _PermitionsBase::on_critical_log; template const typename _PermitionsBase::LOG_PERMIT_FLAG _PermitionsBase::on_all_logs; template const typename _PermitionsBase::LOG_PERMIT_FLAG _PermitionsBase::on_information_log; template const typename _PermitionsBase::LOG_PERMIT_FLAG _PermitionsBase::on_error_log; template const typename _PermitionsBase::RECORD_PRIORITY_FLAG _PermitionsBase::hi_record_priority; template const typename _PermitionsBase::RECORD_PRIORITY_FLAG _PermitionsBase::medium_record_priority; template const typename _PermitionsBase::RECORD_PRIORITY_FLAG _PermitionsBase::low_record_priority; class base : public _PermitionsBase { public: typedef uint16_t log_permit_flag; typedef uint16_t record_priority; typedef uint16_t record_sender_index; base(const base&) = delete; base& operator=(const base&) = delete; }; } #endif //LOGGING_LOGGINGBASE_H_