![]() |
This is Unofficial EPICS BASE Doxygen Site
|
#include "blockingUDP.h"
Public Member Functions | |
POINTER_DEFINITIONS (BlockingUDPTransport) | |
virtual | ~BlockingUDPTransport () |
virtual bool | isClosed () OVERRIDE FINAL |
virtual const osiSockAddr & | getRemoteAddress () const OVERRIDE FINAL |
virtual const std::string & | getRemoteName () const OVERRIDE FINAL |
virtual std::string | getType () const OVERRIDE FINAL |
virtual std::size_t | getReceiveBufferSize () const OVERRIDE FINAL |
virtual epics::pvData::int16 | getPriority () const OVERRIDE FINAL |
virtual void | setRemoteTransportReceiveBufferSize (std::size_t) OVERRIDE FINAL |
virtual void | setRemoteTransportSocketReceiveBufferSize (std::size_t) OVERRIDE FINAL |
virtual bool | verify (epics::pvData::int32) OVERRIDE FINAL |
virtual void | verified (epics::pvData::Status const &) OVERRIDE FINAL |
virtual void | authNZMessage (epics::pvData::PVStructure::shared_pointer const &data) OVERRIDE FINAL |
virtual void | setByteOrder (int byteOrder) OVERRIDE FINAL |
virtual void | enqueueSendRequest (TransportSender::shared_pointer const &sender) OVERRIDE FINAL |
virtual void | flushSendQueue () OVERRIDE FINAL |
void | start () |
virtual void | close () OVERRIDE FINAL |
virtual void | ensureData (std::size_t size) OVERRIDE FINAL |
virtual void | alignData (std::size_t alignment) OVERRIDE FINAL |
virtual bool | directSerialize (epics::pvData::ByteBuffer *, const char *, std::size_t, std::size_t) OVERRIDE FINAL |
virtual bool | directDeserialize (epics::pvData::ByteBuffer *, char *, std::size_t, std::size_t) OVERRIDE FINAL |
virtual void | startMessage (epics::pvData::int8 command, std::size_t ensureCapacity, epics::pvData::int32 payloadSize=0) OVERRIDE FINAL |
virtual void | endMessage () OVERRIDE FINAL |
virtual void | flush (bool) OVERRIDE FINAL |
virtual void | setRecipient (const osiSockAddr &sendTo) OVERRIDE FINAL |
void | setLocalMulticastAddress (const osiSockAddr &sendTo) |
bool | hasLocalMulticastAddress () const |
const osiSockAddr & | getLocalMulticastAddress () const |
virtual void | flushSerializeBuffer () OVERRIDE FINAL |
virtual void | ensureBuffer (std::size_t) OVERRIDE FINAL |
virtual void | alignBuffer (std::size_t alignment) OVERRIDE FINAL |
virtual void | cachedSerialize (const std::tr1::shared_ptr< const epics::pvData::Field > &field, epics::pvData::ByteBuffer *buffer) OVERRIDE FINAL |
virtual std::tr1::shared_ptr< const epics::pvData::Field > | cachedDeserialize (epics::pvData::ByteBuffer *buffer) OVERRIDE FINAL |
virtual bool | acquire (std::tr1::shared_ptr< ClientChannelImpl > const &) OVERRIDE FINAL |
virtual void | release (pvAccessID) OVERRIDE FINAL |
void | setIgnoredAddresses (const InetAddrVector &addresses) |
const InetAddrVector & | getIgnoredAddresses () const |
void | setTappedNIF (const InetAddrVector &addresses) |
const InetAddrVector & | getTappedNIF () const |
bool | send (const char *buffer, size_t length, const osiSockAddr &address) |
bool | send (epics::pvData::ByteBuffer *buffer, const osiSockAddr &address) |
bool | send (epics::pvData::ByteBuffer *buffer, InetAddressType target=inetAddressType_all) |
const InetAddrVector & | getSendAddresses () |
const osiSockAddr * | getBindAddress () const |
bool | isBroadcastAddress (const osiSockAddr *address, const InetAddrVector &broadcastAddresses) |
void | setSendAddresses (InetAddrVector &addresses, std::vector< bool > &address_types) |
void | join (const osiSockAddr &mcastAddr, const osiSockAddr &nifAddr) |
void | setMutlicastNIF (const osiSockAddr &nifAddr, bool loopback) |
![]() | |
POINTER_DEFINITIONS (Transport) | |
Transport () | |
virtual | ~Transport () |
virtual void | waitJoin () |
Call after close() to wait for any worker threads to exit. More... | |
![]() | |
virtual | ~DeserializableControl () |
![]() | |
POINTER_DEFINITIONS (TransportSendControl) | |
virtual | ~TransportSendControl () |
![]() | |
virtual | ~SerializableControl () |
virtual void | cachedSerialize (std::tr1::shared_ptr< const Field > const &field, ByteBuffer *buffer)=0 |
Static Public Attributes | |
static size_t | num_instances |
![]() | |
static size_t | num_instances |
Protected Member Functions | |
virtual void | run () OVERRIDE FINAL |
Protected Attributes | |
AtomicBoolean | _closed |
ResponseHandler::shared_pointer | _responseHandler |
Friends | |
class | BlockingUDPConnector |
Additional Inherited Members | |
![]() | |
size_t | _totalBytesSent |
size_t | _totalBytesRecv |
Definition at line 44 of file blockingUDP.h.
|
virtual |
Definition at line 95 of file blockingUDPTransport.cpp.
|
inlinevirtual |
Acquires transport.
client | client (channel) acquiring the transport |
true
if transport was granted, false
otherwise. Implements epics::pvAccess::Transport.
Definition at line 200 of file blockingUDP.h.
|
inlinevirtual |
Add pad bytes to buffer.
alignment | alignment required. |
Implements epics::pvData::SerializableControl.
Definition at line 181 of file blockingUDP.h.
|
inlinevirtual |
Align buffer. Note that this takes care only current buffer alignment. If streaming protocol is used, care must be taken that entire stream is aligned.
alignment | size in bytes, must be power of two. |
Implements epics::pvData::DeserializableControl.
Definition at line 132 of file blockingUDP.h.
|
inlinevirtual |
Pass data to the active security plug-in session.
data | the data (any data), can be null . |
Implements epics::pvAccess::Transport.
Definition at line 109 of file blockingUDP.h.
|
inlinevirtual |
deserialize via cache
buffer | buffer to be deserialized from |
Implements epics::pvData::DeserializableControl.
Definition at line 193 of file blockingUDP.h.
|
inlinevirtual |
Definition at line 185 of file blockingUDP.h.
|
virtual |
Close transport.
Implements epics::pvAccess::Transport.
Definition at line 116 of file blockingUDPTransport.cpp.
|
inlinevirtual |
Method for deserializing array data. Hook for supplying custom deserialization implementation. The deserialization implementation need not be provided. Returns true if method performs deserialization, false otherwise. This should only be used for arrays of primitive types. i.e. boolean, byte,..., double. It cannot be called for string, structure, or union arrays.
existingBuffer | the existing buffer from the caller. |
deserializeTo | location of data. |
elementCount | number of elements. |
elementSize | element size. |
Implements epics::pvData::DeserializableControl.
Definition at line 142 of file blockingUDP.h.
|
inlinevirtual |
Method for serializing primitive array data. Hook for supplying custom serialization implementation. The serialization implementation need not be provided. Returns true if method performs serialization, false otherwise. This should only be used for arrays of primitive types, i. e. boolean, byte,..., double. It cannot be called for string, structure, or union arrays.
existingBuffer | the existing buffer from the caller. |
toSerialize | location of data to be put into buffer. |
elementCount | number of elements. |
elementSize | element size. |
Implements epics::pvData::SerializableControl.
Definition at line 136 of file blockingUDP.h.
|
virtual |
Implements epics::pvAccess::TransportSendControl.
Definition at line 217 of file blockingUDPTransport.cpp.
|
virtual |
Enqueue send request.
sender |
Implements epics::pvAccess::Transport.
Definition at line 186 of file blockingUDPTransport.cpp.
|
inlinevirtual |
Make sure buffer has at least size bytes remaining. If not flush existing buffer and provide a new one.
size | The number of bytes. |
Implements epics::pvData::SerializableControl.
Definition at line 177 of file blockingUDP.h.
|
virtual |
Helper method. Ensures specified size of bytes, provides it if necessary.
size | The number of bytes. |
Implements epics::pvData::DeserializableControl.
Definition at line 120 of file blockingUDPTransport.cpp.
|
inlinevirtual |
Implements epics::pvAccess::TransportSendControl.
Definition at line 151 of file blockingUDP.h.
|
virtual |
Flush send queue (sent messages).
Implements epics::pvAccess::Transport.
Definition at line 203 of file blockingUDPTransport.cpp.
|
inlinevirtual |
Done with this buffer. Flush it.
Implements epics::pvData::SerializableControl.
Definition at line 173 of file blockingUDP.h.
|
inline |
|
inline |
Get list of ignored addresses.
Definition at line 219 of file blockingUDP.h.
|
inline |
Definition at line 169 of file blockingUDP.h.
|
inlinevirtual |
Transport priority.
Implements epics::pvAccess::Transport.
Definition at line 86 of file blockingUDP.h.
|
inlinevirtual |
Get receive buffer size.
Implements epics::pvAccess::Transport.
Definition at line 82 of file blockingUDP.h.
|
inlinevirtual |
Implements epics::pvAccess::Transport.
Definition at line 70 of file blockingUDP.h.
|
inlinevirtual |
Implements epics::pvAccess::Transport.
Definition at line 74 of file blockingUDP.h.
|
inline |
|
inline |
Get list of tapped NIF addresses.
Definition at line 235 of file blockingUDP.h.
|
inlinevirtual |
Get protocol type (tcp, udp, ssl, etc.).
Implements epics::pvAccess::Transport.
Definition at line 78 of file blockingUDP.h.
|
inline |
Definition at line 165 of file blockingUDP.h.
|
inline |
Definition at line 261 of file blockingUDP.h.
|
inlinevirtual |
Check connection status.
true
if connected. Implements epics::pvAccess::Transport.
Definition at line 66 of file blockingUDP.h.
void epics::pvAccess::BlockingUDPTransport::join | ( | const osiSockAddr & | mcastAddr, |
const osiSockAddr & | nifAddr | ||
) |
Definition at line 525 of file blockingUDPTransport.cpp.
epics::pvAccess::BlockingUDPTransport::POINTER_DEFINITIONS | ( | BlockingUDPTransport | ) |
|
inlinevirtual |
Releases transport.
client | client (channel) releasing the transport |
Implements epics::pvAccess::Transport.
Definition at line 205 of file blockingUDP.h.
|
protectedvirtual |
Definition at line 223 of file blockingUDPTransport.cpp.
bool epics::pvAccess::BlockingUDPTransport::send | ( | const char * | buffer, |
size_t | length, | ||
const osiSockAddr & | address | ||
) |
Definition at line 433 of file blockingUDPTransport.cpp.
bool epics::pvAccess::BlockingUDPTransport::send | ( | epics::pvData::ByteBuffer * | buffer, |
const osiSockAddr & | address | ||
) |
Definition at line 456 of file blockingUDPTransport.cpp.
bool epics::pvAccess::BlockingUDPTransport::send | ( | epics::pvData::ByteBuffer * | buffer, |
InetAddressType | target = inetAddressType_all |
||
) |
Definition at line 484 of file blockingUDPTransport.cpp.
|
inlinevirtual |
Set byte order.
byteOrder | byte order to set. |
Implements epics::pvAccess::Transport.
Definition at line 114 of file blockingUDP.h.
|
inline |
Set ignore list.
address | list of ignored addresses. |
Definition at line 211 of file blockingUDP.h.
|
inline |
Definition at line 160 of file blockingUDP.h.
void epics::pvAccess::BlockingUDPTransport::setMutlicastNIF | ( | const osiSockAddr & | nifAddr, |
bool | loopback | ||
) |
Definition at line 547 of file blockingUDPTransport.cpp.
|
inlinevirtual |
Implements epics::pvAccess::TransportSendControl.
Definition at line 155 of file blockingUDP.h.
|
inlinevirtual |
Set remote transport receive buffer size.
receiveBufferSize | receive buffer size. |
Implements epics::pvAccess::Transport.
Definition at line 90 of file blockingUDP.h.
|
inlinevirtual |
Set remote transport socket receive buffer size.
socketReceiveBufferSize | remote socket receive buffer size. |
Implements epics::pvAccess::Transport.
Definition at line 95 of file blockingUDP.h.
|
inline |
Definition at line 270 of file blockingUDP.h.
|
inline |
Set tapped NIF list.
NIF | address list to tap. |
Definition at line 227 of file blockingUDP.h.
void epics::pvAccess::BlockingUDPTransport::start | ( | ) |
Definition at line 101 of file blockingUDPTransport.cpp.
|
virtual |
Implements epics::pvAccess::TransportSendControl.
Definition at line 208 of file blockingUDPTransport.cpp.
|
inlinevirtual |
Notify transport that it is has been verified.
status | vefification status; |
Implements epics::pvAccess::Transport.
Definition at line 105 of file blockingUDP.h.
|
inlinevirtual |
Waits (if needed) until transport is verified, i.e. verified() method is being called.
timeoutMs | timeout to wait for verification, infinite if 0. |
Implements epics::pvAccess::Transport.
Definition at line 100 of file blockingUDP.h.
|
friend |
Definition at line 57 of file blockingUDP.h.
|
protected |
Definition at line 280 of file blockingUDP.h.
|
protected |
Response handler.
Definition at line 285 of file blockingUDP.h.
|
static |
Definition at line 53 of file blockingUDP.h.