@lichtblick/cdr
Version:
Common Data Representation serialization and deserialization library
72 lines (68 loc) • 2.4 kB
text/typescript
// From <https://www.omg.org/spec/DDS-XTypes/1.3/PDF>
// ============= NOTE DDS-XTypes spec v1.3 ==========
// "7.4.3.4 Functions related to data types and objects"
// ENC_HEADER
// {0x00, 0x00} -- PLAIN_CDR, BIG_ENDIAN,
// {0x00, 0x01} -- PLAIN_CDR, LITTLE_ENDIAN
// {0x00, 0x02} -- PL_CDR, BIG_ENDIAN,
// {0x00, 0x03} -- PL_CDR, LITTLE_ENDIAN,
// {0x00, 0x10} -- PLAIN_CDR2, BIG_ENDIAN,
// {0x00, 0x11} -- PLAIN_CDR2, LITTLE_ENDIAN
// {0x00, 0x12} -- PL_CDR2, BIG_ENDIAN
// {0x00, 0x13} -- PL_CDR2, LITTLE_ENDIAN
// {0x00, 0x14} -- DELIMIT_CDR, BIG_ENDIAN
// {0x00, 0x15} -- DELIMIT_CDR, LITTLE_ENDIAN
//
// 7.6.2.1.2 RTPS encapsulation identifier
// XCDR VERSION 1
// {0x00, 0x00} -- CDR_BE, BIG_ENDIAN, FINAL
// {0x00, 0x01} -- CDR_LE, LITTLE_ENDIAN, FINAL
// {0x00, 0x00} -- CDR_BE, BIG_ENDIAN, APPENDABLE
// {0x00, 0x01} -- CDR_LE, LITTLE_ENDIAN, APPENDABLE
// {0x00, 0x02} -- PL_CDR_BE, BIG_ENDIAN, MUTABLE
// {0x00, 0x03} -- PL_CDR_LE, LITTLE_ENDIAN, MUTABLE
//
// XCDR VERSION 2
// {0x00, 0x06} -- CDR2_BE, BIG_ENDIAN, FINAL
// {0x00, 0x07} -- CDR2_LE, LITTLE_ENDIAN, FINAL
// {0x00, 0x08} -- D_CDR2_BE, BIG_ENDIAN, APPENDABLE
// {0x00, 0x09} -- D_CDR2_LE, LITTLE_ENDIAN, APPENDABLE
// {0x00, 0x0a} -- PL_CDR2_BE, BIG_ENDIAN, MUTABLE
// {0x00, 0x0b} -- PL_CDR2_LE, LITTLE_ENDIAN, MUTABLE
export enum EncapsulationKind {
// Both RTPS and ENC_HEADER enum values
/** Plain CDR, big-endian */
CDR_BE = 0x00,
/** Plain CDR, little-endian */
CDR_LE = 0x01,
/** Parameter List CDR, big-endian */
PL_CDR_BE = 0x02,
/** Parameter List CDR, little-endian */
PL_CDR_LE = 0x03,
// ENC_HEADER enum values
/** Plain CDR2, big-endian */
CDR2_BE = 0x10,
/** Plain CDR2, little-endian */
CDR2_LE = 0x11,
/** Parameter List CDR2, big-endian */
PL_CDR2_BE = 0x12,
/** Parameter List CDR2, little-endian */
PL_CDR2_LE = 0x13,
/** Delimited CDR, big-endian */
DELIMITED_CDR2_BE = 0x14,
/** Delimited CDR, little-endian */
DELIMITED_CDR2_LE = 0x15,
// RTPS enum values
/** Plain CDR2, big-endian */
RTPS_CDR2_BE = 0x06,
/** Plain CDR2, little-endian */
RTPS_CDR2_LE = 0x07,
/** Delimited CDR, big-endian */
RTPS_DELIMITED_CDR2_BE = 0x08,
/** Delimited CDR, little-endian */
RTPS_DELIMITED_CDR2_LE = 0x09,
/** Parameter List CDR2, big-endian */
RTPS_PL_CDR2_BE = 0x0a,
/** Parameter List CDR2, little-endian */
RTPS_PL_CDR2_LE = 0x0b,
}