9 #define epicsExportSharedSymbols 27 const int32 BaseChannelRequester::NULL_REQUEST = -1;
29 BaseChannelRequester::BaseChannelRequester(
31 ServerChannel::shared_pointer
const & channel,
33 Transport::shared_pointer
const & transport) :
35 _transport(transport),
46 if (_pendingRequest != NULL_REQUEST)
50 _pendingRequest = qos;
57 _pendingRequest = NULL_REQUEST;
63 return _pendingRequest;
68 std::stringstream name;
69 name <<
typeid(*_transport).name() <<
"/" <<
_ioid;
81 transport->enqueueSendRequest(sender);
87 transport->enqueueSendRequest(sender);
103 _messageType(messageType)
121 _transport(transport)
EPICS_ALWAYS_INLINE void putInt(int32 value)
epics::pvData::Mutex _mutex
bool startRequest(epics::pvData::int32 qos)
virtual void send(epics::pvData::ByteBuffer *buffer, TransportSendControl *control) OVERRIDE FINAL
TODO only here because of the Lockable.
A lock for multithreading.
virtual void stats(Stats &s) const OVERRIDE FINAL
Query current counter values.
const Transport::shared_pointer _transport
std::string transportPeer
void serialize(ByteBuffer *buffer, SerializableControl *flusher) const
BaseChannelRequesterFailureMessageTransportSender(const epics::pvData::int8 command, Transport::shared_pointer const &transport, const pvAccessID ioid, const epics::pvData::int8 qos, const epics::pvData::Status &status)
EPICS_ALWAYS_INLINE void putByte(int8 value)
This class implements a Bytebuffer that is like the java.nio.ByteBuffer.
static void serializeString(const std::string &value, ByteBuffer *buffer, SerializableControl *flusher)
virtual std::string getRequesterName() OVERRIDE FINAL
epics::pvData::int32 getPendingRequest()
virtual void send(epics::pvData::ByteBuffer *buffer, TransportSendControl *control) OVERRIDE FINAL
virtual void message(std::string const &message, epics::pvData::MessageType messageType) OVERRIDE FINAL
static void sendFailureMessage(const epics::pvData::int8 command, Transport::shared_pointer const &transport, const pvAccessID ioid, const epics::pvData::int8 qos, const epics::pvData::Status status)
virtual void startMessage(epics::pvData::int8 command, std::size_t ensureCapacity, epics::pvData::int32 payloadSize=0)=0
BaseChannelRequesterMessageTransportSender(const pvAccessID _ioid, const std::string message, const epics::pvData::MessageType messageType)
std::tr1::shared_ptr< ServerContextImpl > shared_pointer