OnixS C++ CME MDP Premium Market Data Handler
5.8.9
API Documentation
Home
Contents
Namespaces
Classes
Files
File List
File Members
OnixS
CME
MDH
Logger.h
Go to the documentation of this file.
1
// Copyright Onix Solutions Limited [OnixS]. All rights reserved.
2
//
3
// This software owned by Onix Solutions Limited [OnixS] and is
4
// protected by copyright law and international copyright treaties.
5
//
6
// Access to and use of the software is governed by the terms of the applicable
7
// OnixS Software Services Agreement (the Agreement) and Customer end user license
8
// agreements granting a non-assignable, non-transferable and non-exclusive license
9
// to use the software for it's own data processing purposes under the terms defined
10
// in the Agreement.
11
//
12
// Except as otherwise granted within the terms of the Agreement, copying or
13
// reproduction of any part of this source code or associated reference material
14
// to any other location for further reproduction or redistribution, and any
15
// amendments to this copyright notice, are expressly prohibited.
16
//
17
// Any reproduction or redistribution for sale or hiring of the Software not in
18
// accordance with the terms of the Agreement is a violation of copyright law.
19
//
20
21
#pragma once
22
23
#include <
OnixS/CME/MDH/Integral.h
>
24
#include <
OnixS/CME/MDH/String.h
>
25
26
ONIXS_CMEMDH_NAMESPACE_BEGIN
27
28
/// Defines severity levels for log entries.
29
struct
ONIXS_CMEMDH_LTWT
LogSeverity
30
{
31
/// Enumeration base.
32
typedef
UInt32
Base
;
33
34
/// Log alternates.
35
enum
Enum
36
{
37
/// Only important information like
38
/// warnings and errors will be logged.
39
///
40
/// Mode is not suitable for further log
41
/// replays, because no market data is stored.
42
Important = 10,
43
44
/// Handler will log miscellaneous aspects
45
/// related with its execution like changes
46
/// in state, network data obtained, etc. All
47
/// critical important information like warnings
48
/// and errors will be logged as well.
49
///
50
/// Most suitable mode to produce logs for further replay.
51
Regular = 50,
52
53
/// In addition to the data logged in 'Regular'
54
/// mode, Handler will output additional information
55
/// like step-by-step changes into books, step-by-step
56
/// processing of received network packets.
57
Debug = 100
58
};
59
};
60
61
/// Serializes log severity constant.
62
ONIXS_CMEMDH_EXPORTED
63
void
toStr
(std::string&,
LogSeverity::Enum
);
64
65
/// Serializes log severity constant.
66
inline
std::string
toStr
(
LogSeverity::Enum
mode)
67
{
68
std::string str;
69
70
toStr
(str, mode);
71
72
return
str;
73
}
74
75
/// Deserializes log severity constant.
76
ONIXS_CMEMDH_EXPORTED
77
bool
fromStr
(
LogSeverity::Enum
&,
const
Char
*,
size_t
);
78
79
/// Categories for information being logged.
80
struct
ONIXS_CMEMDH_LTWT
LogCategory
81
{
82
// Enumeration base.
83
typedef
UInt32
Base
;
84
85
/// Categories for information being logged.
86
enum
Enum
87
{
88
/// Log entry represents an error.
89
Error
,
90
91
/// Log entry represents a warning.
92
Warning
,
93
94
/// Log entry represents informational message.
95
Info
,
96
97
/// Log entry represents debug information.
98
Debug
99
};
100
};
101
102
/// Serializes log category constant.
103
ONIXS_CMEMDH_EXPORTED
104
void
toStr
(std::string&,
LogCategory::Enum
);
105
106
/// Serializes log category constant.
107
inline
std::string
toStr
(
LogCategory::Enum
mode)
108
{
109
std::string str;
110
111
toStr
(str, mode);
112
113
return
str;
114
}
115
116
/// Deserializes log category constant.
117
ONIXS_CMEMDH_EXPORTED
118
bool
fromStr
(
LogCategory::Enum
&,
const
Char
*,
size_t
);
119
120
/// Abstraction of log entry in logging services.
121
class
ONIXS_CMEMDH_EXPORTED
LogEntry
122
{
123
public
:
124
/// Specifies category of information being logged.
125
virtual
void
category(
LogCategory::Enum
) = 0;
126
127
/// Specifies source of information being logged.
128
virtual
void
source(
const
StrRef
&) = 0;
129
130
/// Editable text to be a message of log entry.
131
virtual
std::string& message() = 0;
132
133
/// Commits entry into a log and releases the instance.
134
///
135
/// Once given member is invoked, further invocation
136
/// of other members is not allowed as instance may be
137
/// disposed and thus do not exist anymore.
138
virtual
void
commit() = 0;
139
140
protected
:
141
/// Life-time is managed by Logger.
142
LogEntry
() {}
143
144
/// Life-time is managed by Logger.
145
virtual
~LogEntry
() {}
146
147
private
:
148
// Object copying is not supposed.
149
150
LogEntry
(
const
LogEntry
&);
151
LogEntry
& operator=(
const
LogEntry
&);
152
};
153
154
/// Abstraction of logger.
155
class
ONIXS_CMEMDH_EXPORTED
Logger
156
{
157
public
:
158
/// Finalizes the instance.
159
virtual
~Logger
() {}
160
161
/// Basic information on the implementation
162
/// of the logging services.
163
virtual
void
info(std::string&) = 0;
164
165
/// Adds entry to the log.
166
///
167
/// Actual content can be added through the
168
/// interface of LogEntry and LogEvent classes.
169
///
170
/// @return Instance of LogEntry to build message
171
/// being added into the log or NULL if severity
172
/// of entry being added does not correspond to
173
/// logger's configuration.
174
virtual
LogEntry
* addEntry(
LogSeverity::Enum
) = 0;
175
176
protected
:
177
/// Only descendants are to be created.
178
Logger
() {}
179
180
private
:
181
// Object copying is not supposed.
182
183
Logger
(
const
Logger
&);
184
Logger
& operator=(
const
Logger
&);
185
};
186
187
ONIXS_CMEMDH_NAMESPACE_END
OnixS::CME::MDH::LogCategory::Info
Log entry represents informational message.
Definition:
Logger.h:95
OnixS::CME::MDH::UInt32
UInt32 UInt32
uInt32.
Definition:
Fields.h:192
OnixS::CME::MDH::Logger::~Logger
virtual ~Logger()
Finalizes the instance.
Definition:
Logger.h:159
OnixS::CME::MDH::LogSeverity
Defines severity levels for log entries.
Definition:
Logger.h:29
ONIXS_CMEMDH_LTWT
#define ONIXS_CMEMDH_LTWT
Definition:
Bootstrap.h:46
OnixS::CME::MDH::LogEntry
Abstraction of log entry in logging services.
Definition:
Logger.h:121
OnixS::CME::MDH::Logger::Logger
Logger()
Only descendants are to be created.
Definition:
Logger.h:178
OnixS::CME::MDH::Char
char Char
Character type alias.
Definition:
String.h:36
OnixS::CME::MDH::LogEntry::LogEntry
LogEntry()
Life-time is managed by Logger.
Definition:
Logger.h:142
OnixS::CME::MDH::LogCategory::Error
Log entry represents an error.
Definition:
Logger.h:89
OnixS::CME::MDH::StrRef
Provides efficient way of accessing text-based values without copying content of the text being refer...
Definition:
String.h:41
Integral.h
ONIXS_CMEMDH_NAMESPACE_BEGIN
#define ONIXS_CMEMDH_NAMESPACE_BEGIN
Definition:
Bootstrap.h:67
OnixS::CME::MDH::toStr
std::string toStr(LogCategory::Enum mode)
Serializes log category constant.
Definition:
Logger.h:107
OnixS::CME::MDH::LogCategory
Categories for information being logged.
Definition:
Logger.h:80
ONIXS_CMEMDH_EXPORTED
#define ONIXS_CMEMDH_EXPORTED
Definition:
Compiler.h:160
OnixS::CME::MDH::LogSeverity::Enum
Enum
Log alternates.
Definition:
Logger.h:35
OnixS::CME::MDH::LogSeverity::Base
UInt32 Base
Enumeration base.
Definition:
Logger.h:32
OnixS::CME::MDH::Logger
Abstraction of logger.
Definition:
Logger.h:155
OnixS::CME::MDH::LogEntry::~LogEntry
virtual ~LogEntry()
Life-time is managed by Logger.
Definition:
Logger.h:145
OnixS::CME::MDH::LogCategory::Base
UInt32 Base
Definition:
Logger.h:83
OnixS::CME::MDH::LogCategory::Warning
Log entry represents a warning.
Definition:
Logger.h:92
OnixS::CME::MDH::fromStr
bool fromStr(LogCategory::Enum &, const Char *, size_t)
Deserializes log category constant.
String.h
OnixS::CME::MDH::LogCategory::Enum
Enum
Categories for information being logged.
Definition:
Logger.h:86
ONIXS_CMEMDH_NAMESPACE_END
#define ONIXS_CMEMDH_NAMESPACE_END
Definition:
Bootstrap.h:68