RCFProto
 All Classes Functions Typedefs
Endpoint.hpp
1 
2 //******************************************************************************
3 // RCF - Remote Call Framework
4 //
5 // Copyright (c) 2005 - 2013, Delta V Software. All rights reserved.
6 // http://www.deltavsoft.com
7 //
8 // RCF is distributed under dual licenses - closed source or GPL.
9 // Consult your particular license for conditions of use.
10 //
11 // If you have not purchased a commercial license, you are using RCF
12 // under GPL terms.
13 //
14 // Version: 2.0
15 // Contact: support <at> deltavsoft.com
16 //
17 //******************************************************************************
18 
19 #ifndef INCLUDE_RCF_ENDPOINT_HPP
20 #define INCLUDE_RCF_ENDPOINT_HPP
21 
22 #include <memory>
23 #include <string>
24 
25 #include <boost/shared_ptr.hpp>
26 
27 #include <RCF/Exception.hpp>
28 #include <RCF/SerializationProtocol.hpp>
29 
30 namespace RCF {
31 
32  class ServerTransport;
33  class ClientTransport;
34 
35  class Endpoint;
36  typedef boost::shared_ptr<Endpoint> EndpointPtr;
37 
39  class RCF_EXPORT Endpoint
40  {
41  public:
42 
43  // *** SWIG BEGIN ***
44 
45  virtual ~Endpoint() {}
46 
47  // *** SWIG END ***
48 
49  virtual std::auto_ptr<ServerTransport> createServerTransport() const = 0;
50  virtual std::auto_ptr<ClientTransport> createClientTransport() const = 0;
51  virtual EndpointPtr clone() const = 0;
52  virtual std::string asString() const = 0;
53  void serialize(SF::Archive &) {}
54  };
55 
56 } // namespace RCF
57 
58 #include <boost/version.hpp>
59 
60 #endif // ! INCLUDE_RCF_ENDPOINT_HPP