icinga2/jsonrpc/jsonrpcrequest.h

65 lines
1.2 KiB
C++

#ifndef JSONRPCREQUEST_H
#define JSONRPCREQUEST_H
namespace icinga
{
class I2_JSONRPC_API JsonRpcRequest : public Message
{
public:
JsonRpcRequest(void) : Message() { }
JsonRpcRequest(const Message& message) : Message(message) { }
inline bool GetVersion(string *value) const
{
return GetDictionary()->GetValueString("jsonrpc", value);
}
inline void SetVersion(const string& value)
{
GetDictionary()->SetValueString("jsonrpc", value);
}
inline bool GetMethod(string *value) const
{
return GetDictionary()->GetValueString("method", value);
}
inline void SetMethod(const string& value)
{
GetDictionary()->SetValueString("method", value);
}
inline bool GetParams(Message *value) const
{
Dictionary::Ptr dictionary;
if (!GetDictionary()->GetValueDictionary("params", &dictionary))
return false;
*value = Message(dictionary);
return true;
}
inline void SetParams(const Message& value)
{
GetDictionary()->SetValueDictionary("params", value.GetDictionary());
}
inline bool GetID(string *value) const
{
return GetDictionary()->GetValueString("id", value);
}
inline void SetID(const string& value)
{
GetDictionary()->SetValueString("id", value);
}
};
}
#endif /* JSONRPCREQUEST_H */