26#ifndef PROTOCORE_AMQP_H
27#define PROTOCORE_AMQP_H
37#define AMQP_FRAME_METHOD 1
38#define AMQP_FRAME_HEADER 2
39#define AMQP_FRAME_BODY 3
40#define AMQP_FRAME_HEARTBEAT 8
42#define AMQP_FRAME_END 0xCE
43#define AMQP_FRAME_OVERHEAD 8
46size_t pc_amqp_protocol_header(uint8_t *buf,
size_t cap);
49size_t pc_amqp_build_frame(uint8_t *buf,
size_t cap, uint8_t type, uint16_t channel,
const uint8_t *payload,
53size_t pc_amqp_build_method(uint8_t *buf,
size_t cap, uint16_t channel, uint16_t class_id, uint16_t method_id,
54 const uint8_t *args,
size_t args_len);
63size_t pc_amqp_build_content_header(uint8_t *buf,
size_t cap, uint16_t channel, uint16_t class_id, uint64_t body_size,
64 uint16_t property_flags,
const uint8_t *properties,
size_t properties_len);
67size_t pc_amqp_build_heartbeat(uint8_t *buf,
size_t cap);
74 const uint8_t *payload;
83bool pc_amqp_parse_frame(
const uint8_t *buf,
size_t len, AmqpFrame *out,
size_t *consumed);
86bool pc_amqp_parse_method(
const uint8_t *payload,
size_t payload_len, uint16_t *class_id, uint16_t *method_id,
87 const uint8_t **args,
size_t *args_len);
User-facing configuration for ProtoCore.