Kea 3.1.1
post_request_json.h
Go to the documentation of this file.
1// Copyright (C) 2016-2024 Internet Systems Consortium, Inc. ("ISC")
2//
3// This Source Code Form is subject to the terms of the Mozilla Public
4// License, v. 2.0. If a copy of the MPL was not distributed with this
5// file, You can obtain one at http://mozilla.org/MPL/2.0/.
6
7#ifndef HTTP_POST_REQUEST_JSON_H
8#define HTTP_POST_REQUEST_JSON_H
9
10#include <cc/data.h>
12#include <http/post_request.h>
13#include <boost/shared_ptr.hpp>
14#include <string>
15
16namespace isc {
17namespace http {
18
21public:
22 HttpRequestJsonError(const char* file, size_t line, const char* what) :
23 HttpRequestError(file, line, what) { }
24};
25
26class PostHttpRequestJson;
27
29typedef boost::shared_ptr<PostHttpRequestJson> PostHttpRequestJsonPtr;
30
38public:
39
41 explicit PostHttpRequestJson();
42
55 explicit PostHttpRequestJson(const Method& method, const std::string& uri,
56 const HttpVersion& version,
57 const HostHttpHeader& host_header = HostHttpHeader(),
58 const BasicHttpAuthPtr& basic_auth = BasicHttpAuthPtr());
59
64 virtual void finalize();
65
67 virtual void reset();
68
74
83 void setBodyAsJson(const data::ConstElementPtr& body);
84
94 data::ConstElementPtr getJsonElement(const std::string& element_name) const;
95
96protected:
97
100 void parseBodyAsJson();
101
104
105};
106
107} // namespace http
108} // namespace isc
109
110#endif
virtual const char * what() const
Returns a C-style character string of the cause of the exception.
Represents HTTP Host header.
Definition http_header.h:68
HttpRequestError(const char *file, size_t line, const char *what)
Definition request.h:23
HttpRequestJsonError(const char *file, size_t line, const char *what)
Method
HTTP methods.
Definition request.h:61
virtual void finalize()
Complete parsing of the HTTP request.
data::ConstElementPtr getJsonElement(const std::string &element_name) const
Retrieves a single JSON element.
void setBodyAsJson(const data::ConstElementPtr &body)
Sets JSON body for an outbound message.
PostHttpRequestJson()
Constructor for inbound HTTP request.
data::ConstElementPtr getBodyAsJson() const
Retrieves JSON body.
virtual void reset()
Reset the state of the object.
data::ConstElementPtr json_
Pointer to the parsed JSON body.
void parseBodyAsJson()
Interprets body as JSON, which can be later retrieved using data element objects.
PostHttpRequest()
Constructor for inbound HTTP request.
int version()
returns Kea hooks version.
boost::shared_ptr< const Element > ConstElementPtr
Definition data.h:29
boost::shared_ptr< BasicHttpAuth > BasicHttpAuthPtr
Type of pointers to basic HTTP authentication objects.
Definition basic_auth.h:70
boost::shared_ptr< PostHttpRequestJson > PostHttpRequestJsonPtr
Pointer to PostHttpRequestJson.
Defines the logger used by the top-level component of kea-lfc.
HTTP protocol version.
Definition http_types.h:14