Handle response.
2117 transport, version, command, payloadSize, payloadBuffer);
2120 detail::BlockingServerTCPTransportCodec* casTransport(static_cast<detail::BlockingServerTCPTransportCodec*>(transport.get()));
2122 transport->ensureData(2*
sizeof(
int32)/
sizeof(
int8)+1);
2129 ServerChannel::shared_pointer channel = casTransport->getChannel(sid);
2136 const bool init = (
QOS_INIT & qosCode) != 0;
2147 const bool lastRequest = (
QOS_DESTROY & qosCode) != 0;
2148 const bool get = (
QOS_GET & qosCode) != 0;
2149 const bool setLength = (
QOS_GET_PUT & qosCode) != 0;
2150 const bool getLength = (
QOS_PROCESS & qosCode) != 0;
2158 atomic::add(request->bytesRX, payloadSize);
2160 if (!request->startRequest(qosCode))
2166 ChannelArray::shared_pointer channelArray = request->getChannelArray();
2168 channelArray->lastRequest();
2176 request->getChannelArray()->getArray(offset, count, stride);
2182 request->getChannelArray()->setLength(length);
2186 request->getChannelArray()->getLength();
2193 PVArray::shared_pointer array = request->getPVArray();
2200 array->deserialize(payloadBuffer, transport.
get());
2204 channelArray->putArray(array, offset, array->getLength(), stride);
EPICS_ALWAYS_INLINE int8 getByte()
virtual void handleResponse(osiSockAddr *responseFrom, Transport::shared_pointer const &transport, epics::pvData::int8 version, epics::pvData::int8 command, std::size_t payloadSize, epics::pvData::ByteBuffer *payloadBuffer)
shared_ptr< T > static_pointer_cast(shared_ptr< U > const &r) BOOST_NOEXCEPT
static const epics::pvData::Status otherRequestPendingStatus
static std::size_t readSize(ByteBuffer *buffer, DeserializableControl *control)
static ChannelArrayRequester::shared_pointer create(ServerContextImpl::shared_pointer const &context, std::tr1::shared_ptr< ServerChannel > const &channel, const pvAccessID ioid, Transport::shared_pointer const &transport, epics::pvData::PVStructure::shared_pointer const &pvRequest)
static const epics::pvData::Status badIOIDStatus
EPICS_ALWAYS_INLINE int32 getInt()
std::tr1::shared_ptr< ServerChannelArrayRequesterImpl > shared_pointer
#define DESERIALIZE_EXCEPTION_GUARD(code)
static const epics::pvData::Status badCIDStatus
static epics::pvData::PVStructure::shared_pointer deserializePVRequest(epics::pvData::ByteBuffer *payloadBuffer, epics::pvData::DeserializableControl *control)
ServerContextImpl::shared_pointer _context
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)