hce-node application  1.4.3
HCE Hierarchical Cluster Engine node application
 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/JSON/Object.h>
18 #include <Poco/JSON/Array.h>
19 #include <Poco/SharedPtr.h>
20 #include <vector>
21 
22 #include "JsonSerializable.hpp"
23 #include "DRCEJsonMessageConst.hpp"
24 #include "DRCETaskRequest.hpp"
25 #include "DRCESubtasksList.hpp"
26 
27 namespace HCE
28 {
29 namespace drce
30 {
31 //-----------------------------------------------------------------------------
32 //-----------------------------------------------------------------------------
35 //-----------------------------------------------------------------------------
37 {
38 public:
39  explicit DRCEInputJsonMessage(const std::string& json="");
42  virtual ~DRCEInputJsonMessage(void) {}
43 
46 
47  bool serialize(std::string& json);
48  bool unserialize(const std::string& json);
49 
50  void setRequestType(DRCETaskRequest::RequestType requestType_) {requestType=requestType_;}
51  DRCETaskRequest::RequestType getRequestType(void) const {return requestType;}
52 
53  void setRequestData(const std::string& requestData_);
54  std::string getRequestData(void) const {return requestData;}
55 
56  void setRequestId(unsigned int requestId_) {requestId=requestId_;}
57  unsigned int getRequestId(void) const {return requestId;}
58 
59  void setTaskRequest(Poco::SharedPtr<DRCETaskRequest> pTaskRequest_);
60  Poco::SharedPtr<DRCETaskRequest> getTaskRequest(void) const {return pTaskRequest;}
61 
62  void clear(void);
63 private:
64  DRCETaskRequest::RequestType requestType;
65  std::string requestData;
66  unsigned int requestId;
67  Poco::SharedPtr<DRCETaskRequest> pTaskRequest;
68 private:
69  void packToObject(Poco::JSON::Object& obj) throw (Poco::Exception);
70  void packToArray(Poco::JSON::Array& arr) throw (Poco::Exception);
71  void unpackFromObject(Poco::JSON::Object& obj) throw (Poco::Exception);
72  void unpackFromArray(Poco::JSON::Array& arr) throw (Poco::Exception);
73 private:
74  friend std::istream& operator>>(std::istream& is, DRCEInputJsonMessage& inputJsonMessage);
75  friend std::ostream& operator<<(std::ostream& os, const DRCEInputJsonMessage& inputJsonMessage);
76 };
77 //-----------------------------------------------------------------------------
78 //-----------------------------------------------------------------------------
79 } // end namespace drce
80 } // end namespace HCE
81 
82 #endif // DRCE_INPUT_JSON_MESSAGE_HPP