/* * testBlockingTCPSrv.cpp * * Created on: Jan 6, 2011 * Author: Miha Vitorovic */ #include #include #include #include #include #include using namespace epics::pvData; using namespace epics::pvAccess; using namespace std; class ContextImpl : public ServerContextImpl { public: ContextImpl() : _tr(new TransportRegistry()), _timer(new Timer("server thread", lowPriority)), _conf(new SystemConfigurationImpl()) {} Timer::shared_pointer getTimer() { return _timer; } std::tr1::shared_ptr getTransportRegistry() { return _tr; } Channel::shared_pointer getChannel(epics::pvAccess::pvAccessID) { return Channel::shared_pointer(); } Transport::shared_pointer getSearchTransport() { return Transport::shared_pointer(); } Configuration::shared_pointer getConfiguration() { return _conf; } virtual void acquire() {} virtual void release() {} private: std::tr1::shared_ptr _tr; Timer::shared_pointer _timer; Configuration::shared_pointer _conf; }; class DummyResponseHandler : public ResponseHandler { public: virtual void handleResponse(osiSockAddr* responseFrom, Transport::shared_pointer const & transport, int8 version, int8 command, std::size_t payloadSize, ByteBuffer* payloadBuffer) { cout << "DummyResponseHandler::handleResponse" << endl; } }; class DummyResponseHandlerFactory : public ResponseHandlerFactory { public: std::auto_ptr createResponseHandler() {return std::auto_ptr(new DummyResponseHandler());}; }; void testServerConnections() { Context::shared_pointer ctx(new ContextImpl()); ResponseHandlerFactory::shared_pointer rhf(new DummyResponseHandlerFactory()); BlockingTCPAcceptor* srv = new BlockingTCPAcceptor(ctx, rhf, CA_SERVER_PORT, 1024); cout<<"Press any key to stop the server..."; cin.peek(); delete srv; } int main(int argc, char *argv[]) { createFileLogger("testBlockingTCPSrv.log"); testServerConnections(); }