DDS  ver. 2.0
CommandAttachmentImpl.h
Go to the documentation of this file.
1 // Copyright 2014 GSI, Inc. All rights reserved.
2 //
3 //
4 //
5 #ifndef COMMANDATTACHMENTIMPL_H
6 #define COMMANDATTACHMENTIMPL_H
7 // DDS
8 #include "AgentsInfoCmd.h"
9 #include "AssignUserTaskCmd.h"
10 #include "BinaryAttachmentCmd.h"
13 #include "CustomCmdCmd.h"
14 #include "DeleteKeyCmd.h"
15 #include "GetPropValuesCmd.h"
16 #include "HostInfoCmd.h"
17 #include "MoveFileCmd.h"
18 #include "ProgressCmd.h"
19 #include "ProtocolCommands.h"
20 #include "ProtocolMessage.h"
21 #include "SimpleMsgCmd.h"
22 #include "SubmitCmd.h"
23 #include "UUIDCmd.h"
24 #include "UpdateKeyCmd.h"
25 #include "UpdateKeyErrorCmd.h"
26 #include "UpdateTopologyCmd.h"
27 #include "UserTaskDoneCmd.h"
28 #include "VersionCmd.h"
29 
30 #define REGISTER_CMD_ATTACHMENT(_class, _cmd) \
31  template <> \
32  struct SCommandAttachmentImpl<_cmd> \
33  { \
34  typedef std::shared_ptr<_class> ptr_t; \
35  \
36  static ptr_t decode(CProtocolMessage::protocolMessagePtr_t _msg) \
37  { \
38  ptr_t p = std::make_shared<_class>(); \
39  p->convertFromData(_msg->bodyToContainer()); \
40  return p; \
41  } \
42  \
43  static CProtocolMessage::protocolMessagePtr_t encode(const _class& _attachment, uint64_t _ID) \
44  { \
45  MiscCommon::BYTEVector_t data; \
46  _attachment.convertToData(&data); \
47  return std::make_shared<CProtocolMessage>(_cmd, data, _ID); \
48  } \
49  };
50 
51 namespace dds
52 {
53  namespace protocol_api
54  {
55  //----------------------------------------------------------------------
56  struct SEmptyCmd
57  {
58  };
59  //----------------------------------------------------------------------
60  template <ECmdType>
62  //----------------------------------------------------------------------
63  template <ECmdType _cmd>
65  {
66  typedef std::shared_ptr<SEmptyCmd> ptr_t;
67 
69  {
70  return ptr_t();
71  }
72 
73  static CProtocolMessage::protocolMessagePtr_t encode(const SEmptyCmd& /*_attachment*/, uint64_t _ID)
74  {
76  return std::make_shared<CProtocolMessage>(_cmd, data, _ID);
77  }
78  };
79 
106  }
107 }
108 
109 #endif /* PROTOCOLMESSAGES_H_ */
Definition: ProtocolCommands.h:70
Definition: ProtocolCommands.h:49
Definition: UUIDCmd.h:14
Definition: UpdateKeyCmd.h:14
Definition: ProtocolCommands.h:62
Definition: ProtocolCommands.h:45
Definition: CommandAttachmentImpl.h:61
Definition: ProtocolCommands.h:48
Definition: UserTaskDoneCmd.h:15
Definition: UpdateKeyErrorCmd.h:15
Definition: ProtocolCommands.h:67
Definition: BinaryAttachmentReceivedCmd.h:15
Definition: ProtocolCommands.h:69
Definition: CommandAttachmentImpl.h:56
std::shared_ptr< SEmptyCmd > ptr_t
Definition: CommandAttachmentImpl.h:66
Definition: BinaryAttachmentStartCmd.h:21
static CProtocolMessage::protocolMessagePtr_t encode(const SEmptyCmd &, uint64_t _ID)
Definition: CommandAttachmentImpl.h:73
Definition: SimpleMsgCmd.h:16
Definition: ProtocolCommands.h:35
Definition: VersionCmd.h:17
Definition: BinaryAttachmentCmd.h:21
Definition: ProtocolCommands.h:59
Definition: ProtocolCommands.h:33
Definition: ProtocolCommands.h:42
Definition: ProtocolCommands.h:32
Definition: dds-agent/src/AgentConnectionManager.h:18
Definition: GetPropValuesCmd.h:16
Definition: AssignUserTaskCmd.h:15
Definition: ProtocolCommands.h:66
Definition: ProtocolCommands.h:54
static ptr_t decode(CProtocolMessage::protocolMessagePtr_t _msg)
Definition: CommandAttachmentImpl.h:68
Definition: HostInfoCmd.h:15
Definition: ProtocolCommands.h:44
Definition: CustomCmdCmd.h:14
Definition: ProtocolCommands.h:37
Definition: ProtocolCommands.h:39
REGISTER_CMD_ATTACHMENT(SVersionCmd, cmdHANDSHAKE) REGISTER_CMD_ATTACHMENT(SSimpleMsgCmd
Definition: ProtocolCommands.h:55
std::vector< unsigned char > BYTEVector_t
An STL vector of bytes.
Definition: def.h:127
Definition: ProtocolCommands.h:41
Definition: SubmitCmd.h:15
Definition: MoveFileCmd.h:15
Definition: ProtocolCommands.h:52
Definition: ProtocolCommands.h:40
Definition: AgentsInfoCmd.h:15
Definition: DeleteKeyCmd.h:16
Definition: UpdateTopologyCmd.h:15
Definition: ProtocolCommands.h:73
Definition: ProgressCmd.h:19
Definition: ProtocolCommands.h:31
Definition: ProtocolCommands.h:56
Definition: ProtocolCommands.h:58
std::shared_ptr< CProtocolMessage > protocolMessagePtr_t
Definition: ProtocolMessage.h:80