CCF
Loading...
Searching...
No Matches
client_session.h
Go to the documentation of this file.
1// Copyright (c) Microsoft Corporation. All rights reserved.
2// Licensed under the Apache 2.0 License.
3#pragma once
4
5#include "http/http_builder.h"
6#include "tcp/msg_types.h"
7
8namespace ccf
9{
11 {
12 public:
13 using HandleDataCallback = std::function<void(
14 ccf::http_status status,
15 http::HeaderMap&& headers,
16 std::vector<uint8_t>&& body)>;
17
19 std::function<void(const std::string& error_msg)>;
20
21 protected:
24
25 private:
26 int64_t client_session_id;
28
29 public:
31 int64_t client_session_id,
32 ringbuffer::AbstractWriterFactory& writer_factory) :
33 client_session_id(client_session_id),
34 to_host(writer_factory.create_writer_to_outside())
35 {}
36
37 virtual void send_request(::http::Request&& request) = 0;
38
39 virtual void connect(
40 const std::string& hostname,
41 const std::string& service,
42 const HandleDataCallback f,
43 const HandleErrorCallback e = nullptr)
44 {
46 ::tcp::tcp_connect, to_host, client_session_id, hostname, service);
49 }
50 };
51}
Definition client_session.h:11
virtual void connect(const std::string &hostname, const std::string &service, const HandleDataCallback f, const HandleErrorCallback e=nullptr)
Definition client_session.h:39
std::function< void(const std::string &error_msg)> HandleErrorCallback
Definition client_session.h:19
std::function< void(ccf::http_status status, http::HeaderMap &&headers, std::vector< uint8_t > &&body)> HandleDataCallback
Definition client_session.h:16
virtual void send_request(::http::Request &&request)=0
HandleDataCallback handle_data_cb
Definition client_session.h:22
ClientSession(int64_t client_session_id, ringbuffer::AbstractWriterFactory &writer_factory)
Definition client_session.h:30
HandleErrorCallback handle_error_cb
Definition client_session.h:23
Definition http_builder.h:118
Definition ring_buffer_types.h:153
std::map< std::string, std::string, std::less<> > HeaderMap
Definition http_header_map.h:10
Definition app_interface.h:14
llhttp_status http_status
Definition http_status.h:9
std::shared_ptr< AbstractWriter > WriterPtr
Definition ring_buffer_types.h:150
#define RINGBUFFER_WRITE_MESSAGE(MSG,...)
Definition ring_buffer_types.h:255