Robot Raconteur Core C++ Library
Toggle main menu visibility
Loading...
Searching...
No Matches
RobotRaconteurCore
include
RobotRaconteur
AsyncMessageIO.h
Go to the documentation of this file.
1
23
24
#include "
RobotRaconteur/Message.h
"
25
26
#pragma once
27
28
namespace
RobotRaconteur
29
{
30
class
ROBOTRACONTEUR_CORE_API AsyncMessageReader :
private
boost::noncopyable
31
{
32
public
:
33
enum
return_type
34
{
35
ReadReturn_done = 0,
36
ReadReturn_continue_nobuffers,
37
ReadReturn_continue_buffers
38
};
39
40
virtual
void
Reset() = 0;
41
virtual
return_type Read(
const
const_buffers& other_bufs,
size_t
& other_bufs_used,
size_t
continue_read_len,
42
mutable_buffers& next_continue_read_bufs) = 0;
43
virtual
return_type Read4(
const
const_buffers& other_bufs,
size_t
& other_bufs_used,
size_t
continue_read_len,
44
mutable_buffers& next_continue_read_bufs) = 0;
45
46
virtual
bool
MessageReady() = 0;
47
virtual
RR_INTRUSIVE_PTR<Message> GetNextMessage() = 0;
48
49
static
RR_SHARED_PTR<AsyncMessageReader> CreateInstance();
50
51
virtual
~AsyncMessageReader();
52
};
53
54
class
ROBOTRACONTEUR_CORE_API AsyncMessageWriter :
private
boost::noncopyable
55
{
56
public
:
57
enum
return_type
58
{
59
WriteReturn_done = 0,
60
WriteReturn_continue,
61
WriteReturn_last,
62
};
63
64
virtual
void
Reset() = 0;
65
virtual
void
BeginWrite(
const
RR_INTRUSIVE_PTR<Message>& m, uint16_t version) = 0;
66
67
virtual
return_type Write(
size_t
write_quota, mutable_buffers& work_bufs,
size_t
& work_bufs_used,
68
const_buffers& write_bufs) = 0;
69
virtual
return_type Write4(
size_t
write_quota, mutable_buffers& work_bufs,
size_t
& work_bufs_used,
70
const_buffers& write_bufs) = 0;
71
72
virtual
size_t
WriteRemaining() = 0;
73
74
static
RR_SHARED_PTR<AsyncMessageWriter> CreateInstance();
75
76
virtual
~AsyncMessageWriter();
77
};
78
79
}
// namespace RobotRaconteur
Message.h
Generated by
1.17.0