#include <operation.hxx>

Public Member Functions

 ~Operation ()
 

Static Public Member Functions

template<typename T >
static OstreamSet (Ostream &os, const String &name, const T &value)
 
template<typename T >
static OstreamReturn (Ostream &os, const T &value)
 
template<typename T >
static OstreamOffSet (Ostream &os, const String &name, const T &offset)
 
static OstreamSwap (Ostream &os, const String &aName, const String &bName)
 
template<typename T >
static WriterSet (Writer &writer, const String &name, const T &value)
 
template<typename T >
static WriterReturn (Writer &writer, const T &value)
 
template<typename T >
static WriterOffSet (Writer &writer, const String &name, const T &offset)
 
static WriterSwap (Writer &writer, const String &aName, const String &bName)
 

Private Member Functions

 Operation (Ostream &os)
 
Operation operator= (Operation &)
 
template<typename T >
bool WriteSet (const String &name, const T &value)
 
template<typename T >
bool WriteOffSet (const String &name, const T &offset)
 
template<typename T >
bool WriteReturn (const T &value)
 
bool WriteSwap (const String &aName, const String &bName)
 

Static Private Member Functions

template<typename T >
static bool WriteSet (Writer &writer, const String &name, const T &value)
 
template<typename T >
static bool WriteOffSet (Writer &writer, const String &name, const T &offset)
 
template<typename T >
static bool WriteReturn (Writer &writer, const T &value)
 
static bool WriteSwap (Writer &writer, const String &aName, const String &bName)
 

Private Attributes

std::unique_ptr< Streamstream
 
std::unique_ptr< Writerwriter
 

Detailed Description

Definition at line 35 of file operation.hxx.

Constructor & Destructor Documentation

SHA_Logger::Operation::~Operation ( )
inline

Definition at line 39 of file operation.hxx.

39 { assert(this->writer->IsComplete()); }
std::unique_ptr< Writer > writer
Definition: operation.hxx:211
SHA_Logger::Operation::Operation ( Ostream os)
inlineprivate

Definition at line 126 of file operation.hxx.

126  : stream(std::unique_ptr<Stream>(new Stream(os))),
127  writer(std::unique_ptr<Writer>(new Writer(*this->stream))) {}
std::unique_ptr< Stream > stream
Definition: operation.hxx:210
std::unique_ptr< Writer > writer
Definition: operation.hxx:211
rapidjson::OStreamWrapper Stream
Definition: typedef.hxx:32
rapidjson::PrettyWriter< Stream > Writer
Definition: typedef.hxx:33

Member Function Documentation

template<typename T >
static Ostream& SHA_Logger::Operation::OffSet ( Ostream os,
const String name,
const T &  offset 
)
inlinestatic

Definition at line 69 of file operation.hxx.

70  {
71  std::unique_ptr<Operation> builder = std::unique_ptr<Operation>(new Operation(os));
72  builder->WriteOffSet(name, offset);
73 
74  return os;
75  }
Operation(Ostream &os)
Definition: operation.hxx:126
template<typename T >
static Writer& SHA_Logger::Operation::OffSet ( Writer writer,
const String name,
const T &  offset 
)
inlinestatic

Definition at line 110 of file operation.hxx.

111  {
112  WriteOffSet(writer, name, offset);
113 
114  return writer;
115  }
std::unique_ptr< Writer > writer
Definition: operation.hxx:211
bool WriteOffSet(const String &name, const T &offset)
Definition: operation.hxx:135
Operation SHA_Logger::Operation::operator= ( Operation )
inlineprivate

Definition at line 128 of file operation.hxx.

128 {} // Not Implemented
template<typename T >
static Ostream& SHA_Logger::Operation::Return ( Ostream os,
const T &  value 
)
inlinestatic

Definition at line 59 of file operation.hxx.

60  {
61  std::unique_ptr<Operation> builder = std::unique_ptr<Operation>(new Operation(os));
62  builder->WriteReturn(value);
63 
64  return os;
65  }
Operation(Ostream &os)
Definition: operation.hxx:126
template<typename T >
static Writer& SHA_Logger::Operation::Return ( Writer writer,
const T &  value 
)
inlinestatic

Definition at line 101 of file operation.hxx.

102  {
103  WriteReturn(writer, value);
104 
105  return writer;
106  }
std::unique_ptr< Writer > writer
Definition: operation.hxx:211
bool WriteReturn(const T &value)
Definition: operation.hxx:139
template<typename T >
static Ostream& SHA_Logger::Operation::Set ( Ostream os,
const String name,
const T &  value 
)
inlinestatic

Instantiate a new json writer using the stream passed as argument and write value information.

Returns
stream reference filled up with Operation object information, error information in case of failure.
Note
todo pass extent as an enumered type.

Definition at line 49 of file operation.hxx.

50  {
51  std::unique_ptr<Operation> builder = std::unique_ptr<Operation>(new Operation(os));
52  builder->WriteSet(name, value);
53 
54  return os;
55  }
Operation(Ostream &os)
Definition: operation.hxx:126
template<typename T >
static Writer& SHA_Logger::Operation::Set ( Writer writer,
const String name,
const T &  value 
)
inlinestatic

Use json writer passed as parameter to write iterator information.

Returns
stream reference filled up with Operation object information, error information in case of failure.

Definition at line 92 of file operation.hxx.

93  {
94  WriteSet(writer, name, value);
95 
96  return writer;
97  }
bool WriteSet(const String &name, const T &value)
Definition: operation.hxx:131
std::unique_ptr< Writer > writer
Definition: operation.hxx:211
static Ostream& SHA_Logger::Operation::Swap ( Ostream os,
const String aName,
const String bName 
)
inlinestatic

Definition at line 79 of file operation.hxx.

80  {
81  std::unique_ptr<Operation> builder = std::unique_ptr<Operation>(new Operation(os));
82  builder->WriteSwap(aName, bName);
83 
84  return os;
85  }
Operation(Ostream &os)
Definition: operation.hxx:126
static Writer& SHA_Logger::Operation::Swap ( Writer writer,
const String aName,
const String bName 
)
inlinestatic

Definition at line 118 of file operation.hxx.

119  {
120  WriteSwap(writer, aName, bName);
121 
122  return writer;
123  }
bool WriteSwap(const String &aName, const String &bName)
Definition: operation.hxx:142
std::unique_ptr< Writer > writer
Definition: operation.hxx:211
template<typename T >
bool SHA_Logger::Operation::WriteOffSet ( const String name,
const T &  offset 
)
inlineprivate

Definition at line 135 of file operation.hxx.

136  { return WriteOffSet(*this->writer, name, offset); }
std::unique_ptr< Writer > writer
Definition: operation.hxx:211
bool WriteOffSet(const String &name, const T &offset)
Definition: operation.hxx:135
template<typename T >
static bool SHA_Logger::Operation::WriteOffSet ( Writer writer,
const String name,
const T &  offset 
)
inlinestaticprivate

Definition at line 163 of file operation.hxx.

164  {
165  writer.StartObject();
166  writer.Key("type");
167  writer.String(kTypeName);
168  writer.Key("name");
169  writer.String("OffSet");
170  writer.Key("ref");
171  writer.String(name);
172  writer.Key("data");
173  ValueType::Build<T>(writer, offset);
174  writer.EndObject();
175 
176  return true;
177  }
std::unique_ptr< Writer > writer
Definition: operation.hxx:211
template<typename T >
bool SHA_Logger::Operation::WriteReturn ( const T &  value)
inlineprivate

Definition at line 139 of file operation.hxx.

140  { return WriteReturn(*this->writer, value); }
std::unique_ptr< Writer > writer
Definition: operation.hxx:211
bool WriteReturn(const T &value)
Definition: operation.hxx:139
template<typename T >
static bool SHA_Logger::Operation::WriteReturn ( Writer writer,
const T &  value 
)
inlinestaticprivate

Definition at line 180 of file operation.hxx.

181  {
182  writer.StartObject();
183  writer.Key("type");
184  writer.String(kTypeName);
185  writer.Key("name");
186  writer.String("Return");
187  writer.Key("data");
188  ValueType::Build<T>(writer, value);
189  writer.EndObject();
190 
191  return true;
192  }
std::unique_ptr< Writer > writer
Definition: operation.hxx:211
template<typename T >
bool SHA_Logger::Operation::WriteSet ( const String name,
const T &  value 
)
inlineprivate

Definition at line 131 of file operation.hxx.

132  { return WriteSet(*this->writer, name, value); }
bool WriteSet(const String &name, const T &value)
Definition: operation.hxx:131
std::unique_ptr< Writer > writer
Definition: operation.hxx:211
template<typename T >
static bool SHA_Logger::Operation::WriteSet ( Writer writer,
const String name,
const T &  value 
)
inlinestaticprivate

Definition at line 146 of file operation.hxx.

147  {
148  writer.StartObject();
149  writer.Key("type");
150  writer.String(kTypeName);
151  writer.Key("name");
152  writer.String("Set");
153  writer.Key("ref");
154  writer.String(name);
155  writer.Key("data");
156  ValueType::Build<T>(writer, value);
157  writer.EndObject();
158 
159  return true;
160  }
std::unique_ptr< Writer > writer
Definition: operation.hxx:211
bool SHA_Logger::Operation::WriteSwap ( const String aName,
const String bName 
)
inlineprivate

Definition at line 142 of file operation.hxx.

143  { return WriteSwap(*this->writer, aName, bName); }
bool WriteSwap(const String &aName, const String &bName)
Definition: operation.hxx:142
std::unique_ptr< Writer > writer
Definition: operation.hxx:211
static bool SHA_Logger::Operation::WriteSwap ( Writer writer,
const String aName,
const String bName 
)
inlinestaticprivate

Definition at line 194 of file operation.hxx.

195  {
196  writer.StartObject();
197  writer.Key("type");
198  writer.String(kTypeName);
199  writer.Key("name");
200  writer.String("Swap");
201  writer.Key("refA");
202  writer.String(aName);
203  writer.Key("refB");
204  writer.String(bName);
205  writer.EndObject();
206 
207  return true;
208  }
std::unique_ptr< Writer > writer
Definition: operation.hxx:211

Member Data Documentation

std::unique_ptr<Stream> SHA_Logger::Operation::stream
private

Definition at line 210 of file operation.hxx.

std::unique_ptr<Writer> SHA_Logger::Operation::writer
private

Definition at line 211 of file operation.hxx.


The documentation for this class was generated from the following file: