source: ntrip/trunk/GnssCenter/thrift/test2/server.cpp@ 4946

Last change on this file since 4946 was 4946, checked in by mervart, 11 years ago
File size: 2.2 KB
RevLine 
[4942]1#include <iostream>
2#include <string>
3
4#include <thrift/protocol/TBinaryProtocol.h>
[4943]5#include <thrift/server/TThreadedServer.h>
[4942]6#include <thrift/transport/TServerSocket.h>
7#include <thrift/transport/TBufferTransports.h>
[4946]8#include <thrift/concurrency/Thread.h>
[4942]9
10#include "gen-cpp/myService.h"
11
12using namespace std;
13using namespace boost;
14using namespace ::apache::thrift;
15using namespace ::apache::thrift::protocol;
16using namespace ::apache::thrift::transport;
17using namespace ::apache::thrift::server;
[4946]18using namespace ::apache::thrift::concurrency;
[4942]19
[4944]20class myService : virtual public myServiceIf {
[4942]21 public:
[4944]22 myService() {}
[4943]23 void answer(std::string& answ, const std::string& question) {
[4942]24 // implemented on the client-side only
25 }
26};
27
[4945]28class t_connection {
[4942]29 public:
[4945]30 shared_ptr<myService> _service;
31 shared_ptr<TProcessor> _processor;
32 shared_ptr<TProtocol> _protocolInp;
33 shared_ptr<TProtocol> _protocolOut;
34 shared_ptr<TTransport> _transport;
35};
36
37class myProcessorFactory : public TProcessorFactory {
38 public:
[4943]39 myProcessorFactory() {};
[4944]40 shared_ptr<TProcessor> getProcessor(const TConnectionInfo& info) {
41 shared_ptr<myService> service(new myService());
42 shared_ptr<TProcessor> processor(new myServiceProcessor(service));
43 cout << "connection " << endl;
[4945]44
45 t_connection connection;
46 connection._service = service;
47 connection._processor = processor;
48 connection._protocolInp = info.input;
49 connection._protocolOut = info.output;
50 connection._transport = info.transport;
51
[4943]52 return processor;
[4942]53 }
54};
55
[4946]56class t_serverThread : public Runnable {
57 public:
58 t_serverThread() {}
59 void run() {
60 int port = 9090;
61 shared_ptr<TServerSocket> serverTransport(new TServerSocket(port));
62 shared_ptr<myProcessorFactory> processorFactory(new myProcessorFactory());
63 shared_ptr<TTransportFactory> transportFactory(new TBufferedTransportFactory());
64 shared_ptr<TProtocolFactory> protocolFactory(new TBinaryProtocolFactory());
65
66 TThreadedServer server(processorFactory, serverTransport,
67 transportFactory, protocolFactory);
68 server.serve();
69 }
70};
71
[4942]72int main(int argc, char **argv) {
73
[4946]74 t_serverThread serverThread;
75 serverThread.run();
[4942]76
[4946]77 while (true) {
78 sleep(1);
79 }
[4942]80
81 return 0;
82}
83
Note: See TracBrowser for help on using the repository browser.