23 #ifndef SERVER_PROTOCOL_H
24 #define SERVER_PROTOCOL_H
31 #include "../entity/DataItem.h"
32 #include "../entity/SetDescriptor.h"
49 void setDssName(
const std::string& name);
50 std::string getDssName()
const;
52 friend std::ostream& operator<<(std::ostream& os,
const RequestMessage& msg);
72 void setSdSize(
int s);
73 const std::map<std::string, std::string>& getSdFields()
const;
74 const std::vector<entity::DataItem>& getDataItems()
const;
75 void addSetDescriptorField(
const std::string& key,
const std::string& value);
77 void addItemOriginalSize(
const std::string& itemName,
size_t s);
79 friend std::ostream& operator<<(std::ostream& os,
const InsertRequest& msg);
84 std::map<std::string, std::string> setDescriptorFields;
85 std::vector<entity::DataItem> dataItems;
99 void setSequenceNumber(
int sn);
100 int getSequenceNumber()
const;
102 friend std::ostream& operator<<(std::ostream& os,
const DataSetRequest& msg);
121 void setSdQuerySize(
int s);
122 void addSdQueryField(
const std::string& key,
const std::string& value);
123 const std::map<std::string, std::string>& getQueryFields()
const;
125 friend std::ostream& operator<<(std::ostream& os,
const SearchRequest& msg);
130 std::map<std::string, std::string> sdQueryFields;
152 std::string createGetResponse(
int sequenceNumber,
const std::map<std::string, std::string>& sdFields,
const std::map<std::string, std::string>& dataItems);
153 std::string createSearchResponse(
const std::vector<entity::SetDescriptor>& descriptorList);
158 InsertRequest *parseInsertRequest(std::istringstream& parser);
160 SearchRequest *parseSearchRequest(std::istringstream& parser);
A DataItem (DI) is an object which represents a single file and is the basic unit of the SimDB system...
Definition: DataItem.h:43
An INSERT request message.
Definition: server_protocol.h:67
A SEARCH request message.
Definition: server_protocol.h:114
RequestMessage * parseRequest(const std::string &request)
Definition: server_protocol.cpp:126
Convenience class to simplify the protocol messages handling. This class is useful to parse the "raw"...
Definition: client_protocol.h:157
Definition: client_protocol.cpp:725
Command
Definition: protocol.h:33
A generic request message of the protocol.
Definition: server_protocol.h:42
A GET or REMOVE request message.
Definition: server_protocol.h:94
std::string commandString(Command cmd)
Definition: server_protocol.cpp:329