HCE project C++ developers source code library  1.1.1
HCE project developer library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
DRCEInputJsonMessage.hpp
Go to the documentation of this file.
1 
14 #ifndef DRCE_INPUT_JSON_MESSAGE_HPP
15 #define DRCE_INPUT_JSON_MESSAGE_HPP
16 
17 #include <Poco/SharedPtr.h>
18 #include <iostream>
19 
20 #include "JsonSerializable.hpp"
21 #include "DRCEJsonMessageConst.hpp"
22 #include "DRCESessionOptions.hpp"
23 #include "DRCEFilesList.hpp"
24 
25 namespace HCE
26 {
27 namespace drce
28 {
29 //-----------------------------------------------------------------------------
31 {
32 public:
33  explicit DRCEInputJsonMessage(const std::string& json="");
34  virtual ~DRCEInputJsonMessage(void) {}
35 
36  bool serialize(std::string& json);
37  bool unserialize(const std::string& json);
38 
39  void setSessionOptions(const SessionOptions& sessionOptions_) {sessionOptions=sessionOptions_;}
40  void setSessionOptions(SessionOptions&& sessionOptions_);
41  const SessionOptions& getSessionOptions(void) const {return sessionOptions;}
42 
43  void setCommandLine(const std::string& commandLine_) {commandLine=commandLine_;}
44  std::string getCommandLine(void) const {return commandLine;}
45 
46  void setInputStream(const std::string& inputStream_) {inputStream=inputStream_;}
47  std::string getInputStream(void) const {return inputStream;}
48 
49  void clear(void);
50 private:
51  SessionOptions sessionOptions;
52  std::string commandLine;
53  std::string inputStream;
54 private:
55  friend std::istream& operator>>(std::istream& is, DRCEInputJsonMessage& inputJsonMessage);
56  friend std::ostream& operator<<(std::ostream& os, const DRCEInputJsonMessage& inputJsonMessage);
57 };
58 //-----------------------------------------------------------------------------
59 //-----------------------------------------------------------------------------
60 } // namespace drce
61 } // namespace HCE
62 
63 #endif // DRCE_INPUT_JSON_MESSAGE_HPP