This file is indexed.

/usr/include/proton/codec.h is in libqpid-proton2-dev 0.7-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  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
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
#ifndef PROTON_CODEC_H
#define PROTON_CODEC_H 1

/*
 *
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 *
 */

#include <proton/import_export.h>
#include <proton/object.h>
#include <proton/types.h>
#include <proton/error.h>
#include <proton/type_compat.h>
#include <stdarg.h>

#ifdef __cplusplus
extern "C" {
#endif

typedef enum {
  PN_NULL = 1,
  PN_BOOL = 2,
  PN_UBYTE = 3,
  PN_BYTE = 4,
  PN_USHORT = 5,
  PN_SHORT = 6,
  PN_UINT = 7,
  PN_INT = 8,
  PN_CHAR = 9,
  PN_ULONG = 10,
  PN_LONG = 11,
  PN_TIMESTAMP = 12,
  PN_FLOAT = 13,
  PN_DOUBLE = 14,
  PN_DECIMAL32 = 15,
  PN_DECIMAL64 = 16,
  PN_DECIMAL128 = 17,
  PN_UUID = 18,
  PN_BINARY = 19,
  PN_STRING = 20,
  PN_SYMBOL = 21,
  PN_DESCRIBED = 22,
  PN_ARRAY = 23,
  PN_LIST = 24,
  PN_MAP = 25
} pn_type_t;

PN_EXTERN const char *pn_type_name(pn_type_t type);

typedef struct {
  pn_type_t type;
  union {
    bool as_bool;
    uint8_t as_ubyte;
    int8_t as_byte;
    uint16_t as_ushort;
    int16_t as_short;
    uint32_t as_uint;
    int32_t as_int;
    pn_char_t as_char;
    uint64_t as_ulong;
    int64_t as_long;
    pn_timestamp_t as_timestamp;
    float as_float;
    double as_double;
    pn_decimal32_t as_decimal32;
    pn_decimal64_t as_decimal64;
    pn_decimal128_t as_decimal128;
    pn_uuid_t as_uuid;
    pn_bytes_t as_bytes;
  } u;
} pn_atom_t;

// data

typedef struct pn_data_t pn_data_t;

PN_EXTERN pn_data_t *pn_data(size_t capacity);
PN_EXTERN void pn_data_free(pn_data_t *data);
PN_EXTERN int pn_data_errno(pn_data_t *data);
PN_EXTERN pn_error_t *pn_data_error(pn_data_t *data);
PN_EXTERN int pn_data_vfill(pn_data_t *data, const char *fmt, va_list ap);
PN_EXTERN int pn_data_fill(pn_data_t *data, const char *fmt, ...);
PN_EXTERN int pn_data_vscan(pn_data_t *data, const char *fmt, va_list ap);
PN_EXTERN int pn_data_scan(pn_data_t *data, const char *fmt, ...);

PN_EXTERN void pn_data_clear(pn_data_t *data);
PN_EXTERN size_t pn_data_size(pn_data_t *data);
PN_EXTERN void pn_data_rewind(pn_data_t *data);
PN_EXTERN bool pn_data_next(pn_data_t *data);
PN_EXTERN bool pn_data_prev(pn_data_t *data);
PN_EXTERN bool pn_data_enter(pn_data_t *data);
PN_EXTERN bool pn_data_exit(pn_data_t *data);
PN_EXTERN bool pn_data_lookup(pn_data_t *data, const char *name);

PN_EXTERN pn_type_t pn_data_type(pn_data_t *data);

PN_EXTERN int pn_data_print(pn_data_t *data);
PN_EXTERN int pn_data_format(pn_data_t *data, char *bytes, size_t *size);
PN_EXTERN ssize_t pn_data_encode(pn_data_t *data, char *bytes, size_t size);
PN_EXTERN ssize_t pn_data_decode(pn_data_t *data, const char *bytes, size_t size);

PN_EXTERN int pn_data_put_list(pn_data_t *data);
PN_EXTERN int pn_data_put_map(pn_data_t *data);
PN_EXTERN int pn_data_put_array(pn_data_t *data, bool described, pn_type_t type);
PN_EXTERN int pn_data_put_described(pn_data_t *data);
PN_EXTERN int pn_data_put_null(pn_data_t *data);
PN_EXTERN int pn_data_put_bool(pn_data_t *data, bool b);
PN_EXTERN int pn_data_put_ubyte(pn_data_t *data, uint8_t ub);
PN_EXTERN int pn_data_put_byte(pn_data_t *data, int8_t b);
PN_EXTERN int pn_data_put_ushort(pn_data_t *data, uint16_t us);
PN_EXTERN int pn_data_put_short(pn_data_t *data, int16_t s);
PN_EXTERN int pn_data_put_uint(pn_data_t *data, uint32_t ui);
PN_EXTERN int pn_data_put_int(pn_data_t *data, int32_t i);
PN_EXTERN int pn_data_put_char(pn_data_t *data, pn_char_t c);
PN_EXTERN int pn_data_put_ulong(pn_data_t *data, uint64_t ul);
PN_EXTERN int pn_data_put_long(pn_data_t *data, int64_t l);
PN_EXTERN int pn_data_put_timestamp(pn_data_t *data, pn_timestamp_t t);
PN_EXTERN int pn_data_put_float(pn_data_t *data, float f);
PN_EXTERN int pn_data_put_double(pn_data_t *data, double d);
PN_EXTERN int pn_data_put_decimal32(pn_data_t *data, pn_decimal32_t d);
PN_EXTERN int pn_data_put_decimal64(pn_data_t *data, pn_decimal64_t d);
PN_EXTERN int pn_data_put_decimal128(pn_data_t *data, pn_decimal128_t d);
PN_EXTERN int pn_data_put_uuid(pn_data_t *data, pn_uuid_t u);
PN_EXTERN int pn_data_put_binary(pn_data_t *data, pn_bytes_t bytes);
PN_EXTERN int pn_data_put_string(pn_data_t *data, pn_bytes_t string);
PN_EXTERN int pn_data_put_symbol(pn_data_t *data, pn_bytes_t symbol);
PN_EXTERN int pn_data_put_atom(pn_data_t *data, pn_atom_t atom);

PN_EXTERN size_t pn_data_get_list(pn_data_t *data);
PN_EXTERN size_t pn_data_get_map(pn_data_t *data);
PN_EXTERN size_t pn_data_get_array(pn_data_t *data);
PN_EXTERN bool pn_data_is_array_described(pn_data_t *data);
PN_EXTERN pn_type_t pn_data_get_array_type(pn_data_t *data);
PN_EXTERN bool pn_data_is_described(pn_data_t *data);
PN_EXTERN bool pn_data_is_null(pn_data_t *data);
PN_EXTERN bool pn_data_get_bool(pn_data_t *data);
PN_EXTERN uint8_t pn_data_get_ubyte(pn_data_t *data);
PN_EXTERN int8_t pn_data_get_byte(pn_data_t *data);
PN_EXTERN uint16_t pn_data_get_ushort(pn_data_t *data);
PN_EXTERN int16_t pn_data_get_short(pn_data_t *data);
PN_EXTERN uint32_t pn_data_get_uint(pn_data_t *data);
PN_EXTERN int32_t pn_data_get_int(pn_data_t *data);
PN_EXTERN pn_char_t pn_data_get_char(pn_data_t *data);
PN_EXTERN uint64_t pn_data_get_ulong(pn_data_t *data);
PN_EXTERN int64_t pn_data_get_long(pn_data_t *data);
PN_EXTERN pn_timestamp_t pn_data_get_timestamp(pn_data_t *data);
PN_EXTERN float pn_data_get_float(pn_data_t *data);
PN_EXTERN double pn_data_get_double(pn_data_t *data);
PN_EXTERN pn_decimal32_t pn_data_get_decimal32(pn_data_t *data);
PN_EXTERN pn_decimal64_t pn_data_get_decimal64(pn_data_t *data);
PN_EXTERN pn_decimal128_t pn_data_get_decimal128(pn_data_t *data);
PN_EXTERN pn_uuid_t pn_data_get_uuid(pn_data_t *data);
PN_EXTERN pn_bytes_t pn_data_get_binary(pn_data_t *data);
PN_EXTERN pn_bytes_t pn_data_get_string(pn_data_t *data);
PN_EXTERN pn_bytes_t pn_data_get_symbol(pn_data_t *data);
PN_EXTERN pn_bytes_t pn_data_get_bytes(pn_data_t *data);
PN_EXTERN pn_atom_t pn_data_get_atom(pn_data_t *data);

PN_EXTERN int pn_data_copy(pn_data_t *data, pn_data_t *src);
PN_EXTERN int pn_data_append(pn_data_t *data, pn_data_t *src);
PN_EXTERN int pn_data_appendn(pn_data_t *data, pn_data_t *src, int limit);
PN_EXTERN void pn_data_narrow(pn_data_t *data);
PN_EXTERN void pn_data_widen(pn_data_t *data);
PN_EXTERN pn_handle_t pn_data_point(pn_data_t *data);
PN_EXTERN bool pn_data_restore(pn_data_t *data, pn_handle_t point);


PN_EXTERN void pn_data_dump(pn_data_t *data);

#ifdef __cplusplus
}
#endif

#endif /* codec.h */