int main(int argc, char **argv) { int port = 9090; shared_ptr<CalculatorHandler> handler(new CalculatorHandler()); shared_ptr<TProcessor> processor(new CalculatorProcessor(handler)); shared_ptr<TServerTransport> serverTransport(new TServerSocket(port)); shared_ptr<TBufferedTransportFactory> transportFactory(new TBufferedTransportFactory()); shared_ptr<TProtocolFactory> protocolFactory(new TBinaryProtocolFactory()); TThreadedServer server (processor,serverTransport,transportFactory,protocolFactory); server.serve(); return 0; }
void* WatDHTServer::start_rpc_server(void* param) { WatDHTServer* dht = static_cast<WatDHTServer*>(param); shared_ptr<WatDHTHandler> handler(new WatDHTHandler(dht)); shared_ptr<TProcessor> processor(new WatDHTProcessor(handler)); shared_ptr<TServerTransport> serverTransport( new TServerSocket(dht->get_port())); shared_ptr<TTransportFactory> transportFactory( new TBufferedTransportFactory()); shared_ptr<TProtocolFactory> protocolFactory(new TBinaryProtocolFactory()); shared_ptr<ThreadManager> threadManager = ThreadManager::newSimpleThreadManager(num_rpc_threads, 0); shared_ptr<PosixThreadFactory> threadFactory = shared_ptr<PosixThreadFactory>(new PosixThreadFactory()); threadManager->threadFactory(threadFactory); threadManager->start(); TThreadedServer* server = new TThreadedServer( processor, serverTransport, transportFactory, protocolFactory); dht->set_rpc_server(server); server->serve(); return NULL; }