MCPcopy Create free account
hub / github.com/apache/qpid-proton / pn_node2code

Function pn_node2code

c/src/core/encoder.c:85–143  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

83}
84
85static uint8_t pn_node2code(pn_encoder_t *encoder, pni_node_t *node)
86{
87 switch (node->atom.type) {
88 case PN_LONG:
89 if (-128 <= node->atom.u.as_long && node->atom.u.as_long <= 127) {
90 return PNE_SMALLLONG;
91 } else {
92 return PNE_LONG;
93 }
94 case PN_INT:
95 if (-128 <= node->atom.u.as_int && node->atom.u.as_int <= 127) {
96 return PNE_SMALLINT;
97 } else {
98 return PNE_INT;
99 }
100 case PN_ULONG:
101 if (node->atom.u.as_ulong == 0) {
102 return PNE_ULONG0;
103 } else if (node->atom.u.as_ulong < 256) {
104 return PNE_SMALLULONG;
105 } else {
106 return PNE_ULONG;
107 }
108 case PN_UINT:
109 if (node->atom.u.as_uint == 0) {
110 return PNE_UINT0;
111 } else if (node->atom.u.as_uint < 256) {
112 return PNE_SMALLUINT;
113 } else {
114 return PNE_UINT;
115 }
116 case PN_BOOL:
117 if (node->atom.u.as_bool) {
118 return PNE_TRUE;
119 } else {
120 return PNE_FALSE;
121 }
122 case PN_STRING:
123 if (node->atom.u.as_bytes.size < 256) {
124 return PNE_STR8_UTF8;
125 } else {
126 return PNE_STR32_UTF8;
127 }
128 case PN_SYMBOL:
129 if (node->atom.u.as_bytes.size < 256) {
130 return PNE_SYM8;
131 } else {
132 return PNE_SYM32;
133 }
134 case PN_BINARY:
135 if (node->atom.u.as_bytes.size < 256) {
136 return PNE_VBIN8;
137 } else {
138 return PNE_VBIN32;
139 }
140 default:
141 return pn_type2code(encoder, node->atom.type);
142 }

Callers 1

pni_encoder_enterFunction · 0.85

Calls 1

pn_type2codeFunction · 0.85

Tested by

no test coverage detected