00001 #ifndef PROTON_MESSAGE_H
00002 #define PROTON_MESSAGE_H 1
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include <proton/import_export.h>
00026 #include <proton/types.h>
00027 #include <proton/codec.h>
00028 #include <proton/error.h>
00029 #include <proton/type_compat.h>
00030
00031 #ifdef __cplusplus
00032 extern "C" {
00033 #endif
00034
00051 typedef struct pn_message_t pn_message_t;
00052
00056 #define PN_DEFAULT_PRIORITY (4)
00057
00066 PN_EXTERN pn_message_t * pn_message(void);
00067
00073 PN_EXTERN void pn_message_free(pn_message_t *msg);
00074
00084 PN_EXTERN void pn_message_clear(pn_message_t *msg);
00085
00097 PN_EXTERN int pn_message_errno(pn_message_t *msg);
00098
00111 PN_EXTERN pn_error_t *pn_message_error(pn_message_t *msg);
00112
00127 PN_EXTERN bool pn_message_is_inferred(pn_message_t *msg);
00128
00139 PN_EXTERN int pn_message_set_inferred(pn_message_t *msg, bool inferred);
00140
00150 PN_EXTERN bool pn_message_is_durable (pn_message_t *msg);
00151
00162 PN_EXTERN int pn_message_set_durable (pn_message_t *msg, bool durable);
00163
00174 PN_EXTERN uint8_t pn_message_get_priority (pn_message_t *msg);
00175
00185 PN_EXTERN int pn_message_set_priority (pn_message_t *msg, uint8_t priority);
00186
00199 PN_EXTERN pn_millis_t pn_message_get_ttl (pn_message_t *msg);
00200
00210 PN_EXTERN int pn_message_set_ttl (pn_message_t *msg, pn_millis_t ttl);
00211
00224 PN_EXTERN bool pn_message_is_first_acquirer (pn_message_t *msg);
00225
00236 PN_EXTERN int pn_message_set_first_acquirer (pn_message_t *msg, bool first);
00237
00248 PN_EXTERN uint32_t pn_message_get_delivery_count (pn_message_t *msg);
00249
00260 PN_EXTERN int pn_message_set_delivery_count (pn_message_t *msg, uint32_t count);
00261
00275 PN_EXTERN pn_data_t * pn_message_id (pn_message_t *msg);
00276
00289 PN_EXTERN pn_atom_t pn_message_get_id (pn_message_t *msg);
00290
00302 PN_EXTERN int pn_message_set_id (pn_message_t *msg, pn_atom_t id);
00303
00317 PN_EXTERN pn_bytes_t pn_message_get_user_id (pn_message_t *msg);
00318
00329 PN_EXTERN int pn_message_set_user_id (pn_message_t *msg, pn_bytes_t user_id);
00330
00345 PN_EXTERN const char * pn_message_get_address (pn_message_t *msg);
00346
00359 PN_EXTERN int pn_message_set_address (pn_message_t *msg, const char *address);
00360
00375 PN_EXTERN const char * pn_message_get_subject (pn_message_t *msg);
00376
00389 PN_EXTERN int pn_message_set_subject (pn_message_t *msg, const char *subject);
00390
00405 PN_EXTERN const char * pn_message_get_reply_to (pn_message_t *msg);
00406
00419 PN_EXTERN int pn_message_set_reply_to (pn_message_t *msg, const char *reply_to);
00420
00433 PN_EXTERN pn_data_t * pn_message_correlation_id (pn_message_t *msg);
00434
00446 PN_EXTERN pn_atom_t pn_message_get_correlation_id (pn_message_t *msg);
00447
00459 PN_EXTERN int pn_message_set_correlation_id (pn_message_t *msg, pn_atom_t id);
00460
00475 PN_EXTERN const char * pn_message_get_content_type (pn_message_t *msg);
00476
00489 PN_EXTERN int pn_message_set_content_type (pn_message_t *msg, const char *type);
00490
00505 PN_EXTERN const char * pn_message_get_content_encoding (pn_message_t *msg);
00506
00519 PN_EXTERN int pn_message_set_content_encoding (pn_message_t *msg, const char *encoding);
00520
00530 PN_EXTERN pn_timestamp_t pn_message_get_expiry_time (pn_message_t *msg);
00531
00541 PN_EXTERN int pn_message_set_expiry_time (pn_message_t *msg, pn_timestamp_t time);
00542
00552 PN_EXTERN pn_timestamp_t pn_message_get_creation_time (pn_message_t *msg);
00553
00563 PN_EXTERN int pn_message_set_creation_time (pn_message_t *msg, pn_timestamp_t time);
00564
00579 PN_EXTERN const char * pn_message_get_group_id (pn_message_t *msg);
00580
00593 PN_EXTERN int pn_message_set_group_id (pn_message_t *msg, const char *group_id);
00594
00605 PN_EXTERN pn_sequence_t pn_message_get_group_sequence (pn_message_t *msg);
00606
00617 PN_EXTERN int pn_message_set_group_sequence (pn_message_t *msg, pn_sequence_t n);
00618
00633 PN_EXTERN const char * pn_message_get_reply_to_group_id (pn_message_t *msg);
00634
00647 PN_EXTERN int pn_message_set_reply_to_group_id (pn_message_t *msg, const char *reply_to_group_id);
00648
00664 PN_EXTERN pn_data_t *pn_message_instructions(pn_message_t *msg);
00665
00680 PN_EXTERN pn_data_t *pn_message_annotations(pn_message_t *msg);
00681
00696 PN_EXTERN pn_data_t *pn_message_properties(pn_message_t *msg);
00697
00709 PN_EXTERN pn_data_t *pn_message_body(pn_message_t *msg);
00710
00723 PN_EXTERN int pn_message_decode(pn_message_t *msg, const char *bytes, size_t size);
00724
00738 PN_EXTERN int pn_message_encode(pn_message_t *msg, char *bytes, size_t *size);
00739
00743 PN_EXTERN int pn_message_data(pn_message_t *msg, pn_data_t *data);
00744
00748 #ifdef __cplusplus
00749 }
00750 #endif
00751
00752 #endif