Subversion Repositories SmartDukaan

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
30 ashish 1
/*
2
 * Licensed to the Apache Software Foundation (ASF) under one
3
 * or more contributor license agreements. See the NOTICE file
4
 * distributed with this work for additional information
5
 * regarding copyright ownership. The ASF licenses this file
6
 * to you under the Apache License, Version 2.0 (the
7
 * "License"); you may not use this file except in compliance
8
 * with the License. You may obtain a copy of the License at
9
 *
10
 *   http://www.apache.org/licenses/LICENSE-2.0
11
 *
12
 * Unless required by applicable law or agreed to in writing,
13
 * software distributed under the License is distributed on an
14
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15
 * KIND, either express or implied. See the License for the
16
 * specific language governing permissions and limitations
17
 * under the License.
18
 */
19
 
20
#ifndef _THRIFT_SERVER_TSIMPLESERVER_H_
21
#define _THRIFT_SERVER_TSIMPLESERVER_H_ 1
22
 
23
#include "server/TServer.h"
24
#include "transport/TServerTransport.h"
25
 
26
namespace apache { namespace thrift { namespace server {
27
 
28
/**
29
 * This is the most basic simple server. It is single-threaded and runs a
30
 * continuous loop of accepting a single connection, processing requests on
31
 * that connection until it closes, and then repeating. It is a good example
32
 * of how to extend the TServer interface.
33
 *
34
 */
35
class TSimpleServer : public TServer {
36
 public:
37
  TSimpleServer(boost::shared_ptr<TProcessor> processor,
38
                boost::shared_ptr<TServerTransport> serverTransport,
39
                boost::shared_ptr<TTransportFactory> transportFactory,
40
                boost::shared_ptr<TProtocolFactory> protocolFactory) :
41
    TServer(processor, serverTransport, transportFactory, protocolFactory),
42
    stop_(false) {}
43
 
44
  TSimpleServer(boost::shared_ptr<TProcessor> processor,
45
                boost::shared_ptr<TServerTransport> serverTransport,
46
                boost::shared_ptr<TTransportFactory> inputTransportFactory,
47
                boost::shared_ptr<TTransportFactory> outputTransportFactory,
48
                boost::shared_ptr<TProtocolFactory> inputProtocolFactory,
49
                boost::shared_ptr<TProtocolFactory> outputProtocolFactory):
50
    TServer(processor, serverTransport,
51
            inputTransportFactory, outputTransportFactory,
52
            inputProtocolFactory, outputProtocolFactory),
53
    stop_(false) {}
54
 
55
  ~TSimpleServer() {}
56
 
57
  void serve();
58
 
59
  void stop() {
60
    stop_ = true;
61
  }
62
 
63
 protected:
64
  bool stop_;
65
 
66
};
67
 
68
}}} // apache::thrift::server
69
 
70
#endif // #ifndef _THRIFT_SERVER_TSIMPLESERVER_H_