combine AbstractResponseHandler and ResponseHandler

This commit is contained in:
Michael Davidsaver
2017-11-06 14:27:46 -06:00
parent 3071a06000
commit 1d7f15de25
7 changed files with 17 additions and 26 deletions

View File

@@ -25,7 +25,9 @@ namespace pvAccess {
size_t ResponseHandler::num_instances;
ResponseHandler::ResponseHandler()
ResponseHandler::ResponseHandler(Context* context, const std::string& description)
:_description(description)
,_debugLevel(context->getConfiguration()->getPropertyAsInteger(PVACCESS_DEBUG, 0))
{
REFTRACE_INCREMENT(num_instances);
}
@@ -35,7 +37,7 @@ ResponseHandler::~ResponseHandler()
REFTRACE_DECREMENT(num_instances);
}
void AbstractResponseHandler::handleResponse(osiSockAddr* responseFrom,
void ResponseHandler::handleResponse(osiSockAddr* responseFrom,
Transport::shared_pointer const & transport, int8 version, int8 command,
size_t payloadSize, ByteBuffer* payloadBuffer) {
if(_debugLevel >= 3) { // TODO make a constant of sth (0 - off, 1 - debug, 2 - more/trace, 3 - messages)

View File

@@ -346,7 +346,7 @@ public:
static size_t num_instances;
ResponseHandler();
ResponseHandler(Context* context, const std::string& description);
virtual ~ResponseHandler();
/**
@@ -362,21 +362,7 @@ public:
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) = 0;
};
class AbstractResponseHandler : public ResponseHandler {
public:
AbstractResponseHandler(Context* context, const std::string& description) :
_description(description),
_debugLevel(context->getConfiguration()->getPropertyAsInteger(PVACCESS_DEBUG, 0)) {
}
virtual ~AbstractResponseHandler() {}
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);
epics::pvData::ByteBuffer* payloadBuffer);
protected:
/**

View File

@@ -10,12 +10,12 @@ namespace pvAccess {
class AuthNZHandler :
public AbstractResponseHandler,
public ResponseHandler,
private epics::pvData::NoDefaultMethods
{
public:
AuthNZHandler(Context* context) :
AbstractResponseHandler(context, "authNZ message")
ResponseHandler(context, "authNZ message")
{
}

View File

@@ -59,7 +59,7 @@ void AuthNZHandler::handleResponse(osiSockAddr* responseFrom,
size_t payloadSize,
epics::pvData::ByteBuffer* payloadBuffer)
{
AbstractResponseHandler::handleResponse(responseFrom, transport, version, command, payloadSize, payloadBuffer);
ResponseHandler::handleResponse(responseFrom, transport, version, command, payloadSize, payloadBuffer);
epics::pvData::PVField::shared_pointer data =
SerializationHelper::deserializeFull(payloadBuffer, transport.get());

View File

@@ -2427,12 +2427,12 @@ public:
class AbstractClientResponseHandler : public AbstractResponseHandler {
class AbstractClientResponseHandler : public ResponseHandler {
protected:
ClientContextImpl::weak_pointer _context;
public:
AbstractClientResponseHandler(ClientContextImpl::shared_pointer const & context, string const & description) :
AbstractResponseHandler(context.get(), description), _context(ClientContextImpl::weak_pointer(context)) {
ResponseHandler(context.get(), description), _context(ClientContextImpl::weak_pointer(context)) {
}
virtual ~AbstractClientResponseHandler() {
@@ -2964,7 +2964,9 @@ public:
/**
* @param context
*/
ClientResponseHandler(ClientContextImpl::shared_pointer const & context) {
ClientResponseHandler(ClientContextImpl::shared_pointer const & context)
:ResponseHandler(context.get(), "ClientResponseHandler")
{
ResponseHandler::shared_pointer badResponse(new BadResponse(context));
ResponseHandler::shared_pointer dataResponse(new DataResponseHandler(context));

View File

@@ -19,12 +19,12 @@ namespace pvAccess {
/**
*/
class AbstractServerResponseHandler : public AbstractResponseHandler {
class AbstractServerResponseHandler : public ResponseHandler {
protected:
ServerContextImpl::shared_pointer _context;
public:
AbstractServerResponseHandler(ServerContextImpl::shared_pointer const & context, std::string description) :
AbstractResponseHandler(context.get(), description), _context(context) {
ResponseHandler(context.get(), description), _context(context) {
}
virtual ~AbstractServerResponseHandler() {

View File

@@ -103,6 +103,7 @@ void ServerBadResponse::handleResponse(osiSockAddr* responseFrom,
}
ServerResponseHandler::ServerResponseHandler(ServerContextImpl::shared_pointer const & context)
:ResponseHandler(context.get(), "ServerResponseHandler")
{
ResponseHandler::shared_pointer badResponse(new ServerBadResponse(context));
m_handlerTable.resize(CMD_CANCEL_REQUEST+1);