OpenDDS  Snapshot(2023/04/28-20:55)
TransportType.h
Go to the documentation of this file.
1 /*
2  *
3  *
4  * Distributed under the OpenDDS License.
5  * See: http://www.opendds.org/license.html
6  */
7 
8 #ifndef OPENDDS_DCPS_TRANSPORT_FRAMEWORK_TRANSPORTTYPE_H
9 #define OPENDDS_DCPS_TRANSPORT_FRAMEWORK_TRANSPORTTYPE_H
10 
11 #include "dds/DCPS/dcps_export.h"
12 #include "dds/DCPS/RcObject.h"
13 #include "TransportInst.h"
14 #include "dds/DCPS/PoolAllocator.h"
15 
16 #include "ace/Synch_Traits.h"
17 
19 
20 namespace OpenDDS {
21 namespace DCPS {
22 
23 typedef RcHandle<TransportInst> TransportInst_rch;
24 
25 /**
26  * @class TransportType
27  *
28  * @brief Base class for concrete transports to provide new objects.
29  *
30  * Each transport implementation will need to define a concrete
31  * subclass of the TransportType class. The base
32  * class (TransportType) contains the pure virtual functions to
33  * provide new objects. The concrete transport implements these methods
34  * to provide the new concrete transport object.
35  *
36  */
37 class OpenDDS_Dcps_Export TransportType : public virtual RcObject {
38 public:
39 
40  virtual const char* name() = 0;
41 
42  virtual TransportInst_rch new_inst(const OPENDDS_STRING& name) = 0;
43 
44 protected:
45 
46  TransportType();
47  virtual ~TransportType();
48 };
49 
50 } // namespace DCPS
51 } // namespace OpenDDS
52 
54 
55 #endif
#define OpenDDS_Dcps_Export
Definition: dcps_export.h:24
RcHandle< TransportInst > TransportInst_rch
The type definition for the smart-pointer to the underlying type.
#define OPENDDS_STRING
const char *const name
Definition: debug.cpp:60
Base class for concrete transports to provide new objects.
Definition: TransportType.h:37
#define OPENDDS_END_VERSIONED_NAMESPACE_DECL
The Internal API and Implementation of OpenDDS.
Definition: AddressCache.h:28