Go to the documentation of this file.00001 #ifndef QPID_FRAMING_TYPECODE_H
00002 #define QPID_FRAMING_TYPECODE_H
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00028 
00029 
00030 #include <iosfwd>
00031 #include "qpid/sys/IntegerTypes.h"
00032 
00033 namespace qpid {
00034 namespace framing {
00035 
00036 enum TypeCode {
00037     TYPE_CODE_BIN8 = 0x00,
00038     TYPE_CODE_INT8 = 0x01,
00039     TYPE_CODE_UINT8 = 0x02,
00040     TYPE_CODE_CHAR = 0x04,
00041     TYPE_CODE_BOOLEAN = 0x08,
00042     TYPE_CODE_BIN16 = 0x10,
00043     TYPE_CODE_INT16 = 0x11,
00044     TYPE_CODE_UINT16 = 0x12,
00045     TYPE_CODE_BIN32 = 0x20,
00046     TYPE_CODE_INT32 = 0x21,
00047     TYPE_CODE_UINT32 = 0x22,
00048     TYPE_CODE_FLOAT = 0x23,
00049     TYPE_CODE_CHAR_UTF32 = 0x27,
00050     TYPE_CODE_BIN64 = 0x30,
00051     TYPE_CODE_INT64 = 0x31,
00052     TYPE_CODE_UINT64 = 0x32,
00053     TYPE_CODE_DOUBLE = 0x33,
00054     TYPE_CODE_DATETIME = 0x38,
00055     TYPE_CODE_BIN128 = 0x40,
00056     TYPE_CODE_UUID = 0x48,
00057     TYPE_CODE_BIN256 = 0x50,
00058     TYPE_CODE_BIN512 = 0x60,
00059     TYPE_CODE_BIN1024 = 0x70,
00060     TYPE_CODE_VBIN8 = 0x80,
00061     TYPE_CODE_STR8_LATIN = 0x84,
00062     TYPE_CODE_STR8 = 0x85,
00063     TYPE_CODE_STR8_UTF16 = 0x86,
00064     TYPE_CODE_VBIN16 = 0x90,
00065     TYPE_CODE_STR16_LATIN = 0x94,
00066     TYPE_CODE_STR16 = 0x95,
00067     TYPE_CODE_STR16_UTF16 = 0x96,
00068     TYPE_CODE_VBIN32 = 0xa0,
00069     TYPE_CODE_MAP = 0xa8,
00070     TYPE_CODE_LIST = 0xa9,
00071     TYPE_CODE_ARRAY = 0xaa,
00072     TYPE_CODE_STRUCT32 = 0xab,
00073     TYPE_CODE_BIN40 = 0xc0,
00074     TYPE_CODE_DEC32 = 0xc8,
00075     TYPE_CODE_BIN72 = 0xd0,
00076     TYPE_CODE_DEC64 = 0xd8,
00077     TYPE_CODE_VOID = 0xf0,
00078     TYPE_CODE_BIT = 0xf1
00079 };
00080 
00082 bool isTypeCode(uint8_t t);
00083 
00085 TypeCode typeCode(uint8_t);
00086 
00088 const char* typeName(TypeCode t);
00089 
00090 std::ostream& operator<<(std::ostream&, TypeCode);
00091 
00092 
00093 }} 
00094 
00095 #endif