DdsDcpsGuid.idl

Go to the documentation of this file.
00001 /*
00002  *
00003  *
00004  * Distributed under the OpenDDS License.
00005  * See: http://www.opendds.org/license.html
00006  */
00007 
00008 #ifndef OPENDDS_DCPS_GUID_IDL
00009 #define OPENDDS_DCPS_GUID_IDL
00010 
00011 module OpenDDS
00012 {
00013   module DCPS
00014   {
00015     // Vendor Id value from RTPS specification.
00016     typedef octet GuidVendorId_t[2];
00017 
00018     // GUID prefix bytes - uniquely specify the participant.
00019     typedef octet GuidPrefix_t[12];
00020 
00021     // Key portion of Entity identifier.
00022     typedef octet EntityKey_t[3];
00023 
00024     // Uniquely identify each entity within a participant.
00025     struct EntityId_t {
00026       EntityKey_t entityKey;
00027       octet       entityKind;
00028     };
00029 
00030     const octet ENTITYKIND_BUILTIN_UNKNOWN         = 0xc0;
00031     const octet ENTITYKIND_BUILTIN_PARTICIPANT     = 0xc1;
00032     const octet ENTITYKIND_BUILTIN_WRITER_WITH_KEY = 0xc2;
00033     const octet ENTITYKIND_BUILTIN_WRITER_NO_KEY   = 0xc3;
00034     const octet ENTITYKIND_BUILTIN_READER_NO_KEY   = 0xc4;
00035     const octet ENTITYKIND_BUILTIN_READER_WITH_KEY = 0xc7;
00036     const octet ENTITYKIND_BUILTIN_TOPIC           = 0xc5;
00037 
00038     const octet ENTITYKIND_USER_UNKNOWN         = 0x00;
00039     const octet ENTITYKIND_USER_WRITER_WITH_KEY = 0x02;
00040     const octet ENTITYKIND_USER_WRITER_NO_KEY   = 0x03;
00041     const octet ENTITYKIND_USER_READER_NO_KEY   = 0x04;
00042     const octet ENTITYKIND_USER_READER_WITH_KEY = 0x07;
00043 
00044     // Vendor specific Kinds have the following bit pattern: 01xx_xxxx
00045     const octet ENTITYKIND_OPENDDS_SUBSCRIBER   = 0x41;
00046     const octet ENTITYKIND_OPENDDS_PUBLISHER    = 0x42;
00047 
00048     const octet ENTITYKIND_OPENDDS_TOPIC        = 0x45;
00049     const octet ENTITYKIND_OPENDDS_USER         = 0x4a;
00050 
00051     // Used in testing.
00052     const octet ENTITYKIND_OPENDDS_NIL_WRITER = 0x4e;
00053 
00054 #if 0 // GUID_t is not actually a DCPS_DATA_TYPE (see comment below).
00055       // We'll just commit the generated *KeyLessThan in GuidUtils.h.
00056 // Specifying the GUID type as a DCPS data type with a complex key forces
00057 // the generation of the logical less than functor for the type.
00058 #pragma DCPS_DATA_TYPE "OpenDDS::DCPS::GUID_t"
00059 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::GUID_t guidPrefix[11]"
00060 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::GUID_t guidPrefix[10]"
00061 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::GUID_t guidPrefix[ 9]"
00062 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::GUID_t guidPrefix[ 8]"
00063 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::GUID_t guidPrefix[ 7]"
00064 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::GUID_t guidPrefix[ 6]"
00065 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::GUID_t guidPrefix[ 5]"
00066 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::GUID_t guidPrefix[ 4]"
00067 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::GUID_t guidPrefix[ 3]"
00068 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::GUID_t guidPrefix[ 2]"
00069 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::GUID_t guidPrefix[ 1]"
00070 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::GUID_t guidPrefix[ 0]"
00071 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::GUID_t entityId.entityKey[2]"
00072 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::GUID_t entityId.entityKey[1]"
00073 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::GUID_t entityId.entityKey[0]"
00074 #pragma DCPS_DATA_KEY  "OpenDDS::DCPS::GUID_t entityId.entityKind"
00075 #endif
00076     // The actual GUID itself.
00077     struct GUID_t {
00078       GuidPrefix_t guidPrefix;
00079       EntityId_t   entityId;
00080     };
00081 
00082     typedef sequence<GUID_t> GUIDSeq;
00083 
00084 }; }; // module OpenDDS::DCPS
00085 
00086 #endif /* OPENDDS_DCPS_GUID_IDL */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 10 Aug 2018 for OpenDDS by  doxygen 1.6.1