summaryrefslogtreecommitdiff
path: root/modules/CIAO/connectors/dds4ccm/impl/ndds/NDDS_Traits.h
blob: d1b55e9e01076b78b1b6f029d341b6fbdb1fb3d1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
/**
 * @file NDDS_Traits.h
 * @author William R. Otte <wotte@dre.vanderbilt.edu>
 *
 * $Id$
 *
 * Traits necessary for various bits and pieces of the DDS4CCM infrastructure.
 */

#ifndef NDDS_TRAITS_H
#define NDDS_TRAITS_H

#include "ndds/ndds_cpp.h"

namespace CIAO
{
  namespace DDS4CCM
  {
    namespace RTI
    {
      /**
       * @struct Type_Traits
       * @brief Convenience traits struct.
       *
       * This is a convenience struct that is used by most of the
       * DDS4CCM infrastructure; it is not necessary to use this exact
       * struct, so long as all of the needed fields are filled in.
       */
      template <typename VALUE_TYPE,
                typename DDS_SEQ_TYPE,
                typename TYPE_SUPPORT,
                typename DATA_WRITER,
                typename DATA_READER>
      struct Type_Traits
      {
        typedef VALUE_TYPE value_type;
        typedef DDS_SEQ_TYPE dds_seq_type;
        typedef TYPE_SUPPORT type_support;
        typedef DATA_WRITER data_writer;
        typedef DATA_READER data_reader;
      };

      typedef Type_Traits < const char *,
                            DDS_StringSeq,
                            DDSStringTypeSupport,
                            DDSStringDataWriter,
                            DDSStringDataReader > String_Traits;
    }
  }
}
#endif