roo_transport
API Documentation for roo_transport
Loading...
Searching...
No Matches
header.h
Go to the documentation of this file.
1
#pragma once
2
3
#include <stdint.h>
4
5
#include "roo_backport.h"
6
#include "roo_backport/byte.h"
7
#include "
roo_transport/rpc/rpc.h
"
8
#include "
roo_transport/rpc/status.h
"
9
10
namespace
roo_transport
{
11
12
class
RpcHeader
{
13
public
:
14
enum
MessageType
{
kUnset
= -1,
kRequest
= 0,
kResponse
= 1 };
15
16
static
constexpr
size_t
kMaxSerializedSize
= 32;
17
18
RpcHeader
()
19
: type_(
kUnset
),
20
first_message_(
false
),
21
last_message_(
false
),
22
has_timeout_(
false
),
23
stream_id_(0) {}
24
25
static
RpcHeader
NewUnaryRequest
(
RpcFunctionId
function_id
,
26
RpcStreamId
stream_id
);
27
28
static
RpcHeader
NewUnaryRequest
(
RpcFunctionId
function_id
,
29
RpcStreamId
stream_id
,
uint32_t
timeout_ms
);
30
31
static
RpcHeader
NewUnaryResponse
(
RpcStreamId
stream_id
,
RpcStatus
status);
32
33
size_t
serialize
(roo::byte*
buffer
,
size_t
buffer_size
)
const
;
34
size_t
deserialize
(
const
roo::byte*
buffer
,
size_t
buffer_size
);
35
36
MessageType
type
()
const
{
return
type_; }
37
bool
isFirstMessage
()
const
{
return
first_message_; }
38
bool
isLastMessage
()
const
{
return
last_message_; }
39
bool
hasTimeout
()
const
{
return
has_timeout_; }
40
RpcStreamId
streamId
()
const
{
return
stream_id_; }
41
42
RpcFunctionId
functionId
()
const
;
43
uint32_t
timeoutMs
()
const
;
44
45
RpcStatus
responseStatus
()
const
;
46
47
private
:
48
MessageType
type_;
49
bool
first_message_;
50
bool
last_message_;
51
bool
has_timeout_;
52
RpcStreamId
stream_id_;
53
54
union
{
55
struct
{
56
RpcFunctionId
function_id_
;
57
uint32_t
timeout_ms_
;
58
}
new_request_
;
59
struct
{
60
RpcStatus
status_
;
61
}
last_response_
;
62
struct
{
63
// No additional fields.
64
}
continuation_
;
65
};
66
};
67
68
}
// namespace roo_transport
roo_transport::RpcHeader
Definition
header.h:12
roo_transport::RpcHeader::NewUnaryResponse
static RpcHeader NewUnaryResponse(RpcStreamId stream_id, RpcStatus status)
Definition
header.cpp:52
roo_transport::RpcHeader::last_response_
struct roo_transport::RpcHeader::@0::@3 last_response_
roo_transport::RpcHeader::timeoutMs
uint32_t timeoutMs() const
Definition
header.cpp:15
roo_transport::RpcHeader::serialize
size_t serialize(roo::byte *buffer, size_t buffer_size) const
Definition
header.cpp:63
roo_transport::RpcHeader::continuation_
struct roo_transport::RpcHeader::@0::@4 continuation_
roo_transport::RpcHeader::deserialize
size_t deserialize(const roo::byte *buffer, size_t buffer_size)
Definition
header.cpp:84
roo_transport::RpcHeader::hasTimeout
bool hasTimeout() const
Definition
header.h:39
roo_transport::RpcHeader::new_request_
struct roo_transport::RpcHeader::@0::@2 new_request_
roo_transport::RpcHeader::kMaxSerializedSize
static constexpr size_t kMaxSerializedSize
Definition
header.h:16
roo_transport::RpcHeader::isLastMessage
bool isLastMessage() const
Definition
header.h:38
roo_transport::RpcHeader::status_
RpcStatus status_
Definition
header.h:60
roo_transport::RpcHeader::responseStatus
RpcStatus responseStatus() const
Definition
header.cpp:20
roo_transport::RpcHeader::function_id_
RpcFunctionId function_id_
Definition
header.h:56
roo_transport::RpcHeader::functionId
RpcFunctionId functionId() const
Definition
header.cpp:10
roo_transport::RpcHeader::NewUnaryRequest
static RpcHeader NewUnaryRequest(RpcFunctionId function_id, RpcStreamId stream_id)
Definition
header.cpp:25
roo_transport::RpcHeader::MessageType
MessageType
Definition
header.h:14
roo_transport::RpcHeader::kRequest
@ kRequest
Definition
header.h:14
roo_transport::RpcHeader::kResponse
@ kResponse
Definition
header.h:14
roo_transport::RpcHeader::kUnset
@ kUnset
Definition
header.h:14
roo_transport::RpcHeader::type
MessageType type() const
Definition
header.h:36
roo_transport::RpcHeader::timeout_ms_
uint32_t timeout_ms_
Definition
header.h:57
roo_transport::RpcHeader::isFirstMessage
bool isFirstMessage() const
Definition
header.h:37
roo_transport::RpcHeader::RpcHeader
RpcHeader()
Definition
header.h:18
roo_transport::RpcHeader::streamId
RpcStreamId streamId() const
Definition
header.h:40
roo_transport
Definition
in_buffer.h:8
roo_transport::RpcFunctionId
uint32_t RpcFunctionId
Definition
rpc.h:10
roo_transport::RpcStreamId
uint32_t RpcStreamId
Definition
rpc.h:11
roo_transport::RpcStatus
RpcStatus
Definition
status.h:8
rpc.h
status.h
roo_transport::Serializer
Definition
serialization.h:20
temp_repos
roo_transport
src
roo_transport
rpc
internal
header.h
Generated by
1.9.8