OpenDDS
Snapshot(2023/04/28-20:55)
dds
DCPS
transport
shmem
ShmemReceiveStrategy.h
Go to the documentation of this file.
1
/*
2
*
3
*
4
* Distributed under the OpenDDS License.
5
* See: http://www.opendds.org/license.html
6
*/
7
8
#ifndef OPENDDS_DCPS_TRANSPORT_SHMEM_SHMEMRECEIVESTRATEGY_H
9
#define OPENDDS_DCPS_TRANSPORT_SHMEM_SHMEMRECEIVESTRATEGY_H
10
11
#include "
Shmem_Export.h
"
12
13
#include "
ace/INET_Addr.h
"
14
15
#include "
dds/DCPS/transport/framework/TransportReceiveStrategy_T.h
"
16
17
OPENDDS_BEGIN_VERSIONED_NAMESPACE_DECL
18
19
namespace
OpenDDS
{
20
namespace
DCPS {
21
22
class
ShmemDataLink;
23
struct
ShmemData;
24
25
class
OpenDDS_Shmem_Export
ShmemReceiveStrategy
26
:
public
TransportReceiveStrategy
<> {
27
public
:
28
explicit
ShmemReceiveStrategy
(
ShmemDataLink
* link);
29
30
void
read
();
31
32
protected
:
33
virtual
ssize_t
receive_bytes(iovec iov[],
34
int
n,
35
ACE_INET_Addr
& remote_address,
36
ACE_HANDLE fd,
37
bool
& stop);
38
39
virtual
void
deliver_sample(
ReceivedDataSample
& sample,
40
const
ACE_INET_Addr
& remote_address);
41
42
virtual
int
start_i();
43
virtual
void
stop_i();
44
45
private
:
46
ShmemDataLink
*
link_
;
47
std::string
bound_name_
;
48
ShmemData
*
current_data_
;
49
size_t
partial_recv_remaining_
;
50
const
char
*
partial_recv_ptr_
;
51
ACE_Thread_Mutex
mutex_
;
52
};
53
54
}
// namespace DCPS
55
}
// namespace OpenDDS
56
57
OPENDDS_END_VERSIONED_NAMESPACE_DECL
58
59
#endif
/* OPENDDS_SHMEMRECEIVESTRATEGY_H */
ACE_Thread_Mutex
Shmem_Export.h
ssize_t
int ssize_t
ACE_INET_Addr
OpenDDS::DCPS::ShmemData
Definition:
ShmemDataLink.h:31
OpenDDS::DCPS::ShmemReceiveStrategy
Definition:
ShmemReceiveStrategy.h:25
OpenDDS::DCPS::ReceivedDataSample
Holds a data sample received by the transport.
Definition:
ReceivedDataSample.h:36
TransportReceiveStrategy_T.h
read
ssize_t read(ACE_HANDLE handle, void *buf, size_t len)
OpenDDS::DCPS::ShmemReceiveStrategy::link_
ShmemDataLink * link_
Definition:
ShmemReceiveStrategy.h:46
OpenDDS::DCPS::ShmemReceiveStrategy::current_data_
ShmemData * current_data_
Definition:
ShmemReceiveStrategy.h:48
INET_Addr.h
OpenDDS::DCPS::ShmemReceiveStrategy::bound_name_
std::string bound_name_
Definition:
ShmemReceiveStrategy.h:47
OpenDDS::DCPS::ShmemReceiveStrategy::partial_recv_ptr_
const char * partial_recv_ptr_
Definition:
ShmemReceiveStrategy.h:50
OpenDDS::DCPS::ShmemReceiveStrategy::mutex_
ACE_Thread_Mutex mutex_
Definition:
ShmemReceiveStrategy.h:51
OpenDDS::DCPS::TransportReceiveStrategy
Definition:
TransportReceiveStrategy_T.h:50
OpenDDS::DCPS::ShmemDataLink
Definition:
ShmemDataLink.h:50
OPENDDS_END_VERSIONED_NAMESPACE_DECL
#define OPENDDS_END_VERSIONED_NAMESPACE_DECL
Definition:
Versioned_Namespace.h:48
OPENDDS_BEGIN_VERSIONED_NAMESPACE_DECL
Definition:
Hash.cpp:17
OpenDDS
The Internal API and Implementation of OpenDDS.
Definition:
AddressCache.h:28
OpenDDS_Shmem_Export
#define OpenDDS_Shmem_Export
Definition:
Shmem_Export.h:25
OpenDDS::DCPS::ShmemReceiveStrategy::partial_recv_remaining_
size_t partial_recv_remaining_
Definition:
ShmemReceiveStrategy.h:49
Generated by
1.8.13