message.h 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. /******************************************************************
  2. *
  3. * uEcho for C
  4. *
  5. * Copyright (C) Satoshi Konno 2015
  6. *
  7. * This is licensed under BSD-style license, see file COPYING.
  8. *
  9. ******************************************************************/
  10. #ifndef _UECHO_MESSAGE_H_
  11. #define _UECHO_MESSAGE_H_
  12. #include <uecho/const.h>
  13. #include <uecho/esv.h>
  14. #include <uecho/property.h>
  15. #include <uecho/typedef.h>
  16. #ifdef __cplusplus
  17. extern "C" {
  18. #endif
  19. /****************************************
  20. * Data Type
  21. ****************************************/
  22. typedef unsigned int uEchoTID;
  23. #if !defined(_UECHO_MESSAGE_INTERNAL_H_)
  24. typedef void uEchoMessage;
  25. #endif
  26. /****************************************
  27. * Function
  28. ****************************************/
  29. uEchoMessage* uecho_message_new(void);
  30. bool uecho_message_delete(uEchoMessage* msg);
  31. bool uecho_message_clear(uEchoMessage* msg);
  32. bool uecho_message_parse(uEchoMessage* msg, const byte* data, size_t data_len);
  33. byte uecho_message_getehd1(uEchoMessage* msg);
  34. byte uecho_message_getehd2(uEchoMessage* msg);
  35. bool uecho_message_settid(uEchoMessage* msg, uEchoTID val);
  36. uEchoTID uecho_message_gettid(uEchoMessage* msg);
  37. byte uecho_message_getopc(uEchoMessage* msg);
  38. byte uecho_message_getopcset(uEchoMessage* msg);
  39. byte uecho_message_getopcget(uEchoMessage* msg);
  40. bool uecho_message_setsourceobjectcode(uEchoMessage* msg, int code);
  41. int uecho_message_getsourceobjectcode(uEchoMessage* msg);
  42. bool uecho_message_issourceobjectcode(uEchoMessage* msg, int code);
  43. bool uecho_message_setdestinationobjectcode(uEchoMessage* msg, int code);
  44. int uecho_message_getdestinationobjectcode(uEchoMessage* msg);
  45. bool uecho_message_isdestinationobjectcode(uEchoMessage* msg, int code);
  46. bool uecho_message_setesv(uEchoMessage* msg, uEchoEsv val);
  47. uEchoEsv uecho_message_getesv(uEchoMessage* msg);
  48. bool uecho_message_addproperty(uEchoMessage* msg, uEchoProperty* prop);
  49. bool uecho_message_setproperty(uEchoMessage* msg, uEchoPropertyCode prop_code, const byte* prop_data, size_t prop_data_size);
  50. uEchoProperty* uecho_message_getproperty(uEchoMessage* msg, size_t n);
  51. uEchoProperty* uecho_message_getpropertybycode(uEchoMessage* msg, uEchoPropertyCode code);
  52. bool uecho_message_addpropertyset(uEchoMessage* msg, uEchoProperty* prop);
  53. bool uecho_message_setpropertyset(uEchoMessage* msg, uEchoPropertyCode prop_code, const byte* prop_data, size_t prop_data_size);
  54. uEchoProperty* uecho_message_getpropertyset(uEchoMessage* msg, size_t n);
  55. uEchoProperty* uecho_message_getpropertysetbycode(uEchoMessage* msg, uEchoPropertyCode code);
  56. bool uecho_message_addpropertyget(uEchoMessage* msg, uEchoProperty* prop);
  57. bool uecho_message_setpropertyget(uEchoMessage* msg, uEchoPropertyCode prop_code, const byte* prop_data, size_t prop_data_size);
  58. uEchoProperty* uecho_message_getpropertyget(uEchoMessage* msg, size_t n);
  59. uEchoProperty* uecho_message_getpropertygetbycode(uEchoMessage* msg, uEchoPropertyCode code);
  60. size_t uecho_message_size(uEchoMessage* msg);
  61. byte* uecho_message_getbytes(uEchoMessage* msg);
  62. void uecho_message_setsourceaddress(uEchoMessage* msg, const char* addr);
  63. const char* uecho_message_getsourceaddress(uEchoMessage* msg);
  64. bool uecho_message_issourceaddress(uEchoMessage* msg, const char* addr);
  65. void uecho_message_setdestinationaddress(uEchoMessage* msg, const char* addr);
  66. const char* uecho_message_getdestinationaddress(uEchoMessage* msg);
  67. bool uecho_message_isdestinationaddress(uEchoMessage* msg, const char* addr);
  68. bool uecho_message_set(uEchoMessage* msg, uEchoMessage* src_msg);
  69. uEchoMessage* uecho_message_copy(uEchoMessage* msg);
  70. bool uecho_message_equals(uEchoMessage* msg1, uEchoMessage* msg2);
  71. bool uecho_message_isresponserequired(uEchoMessage* msg);
  72. bool uecho_message_isresponsemessage(uEchoMessage* msg, uEchoMessage* res_meg);
  73. /****************************************
  74. * Function
  75. ****************************************/
  76. uEchoMessage* uecho_message_search_new(void);
  77. bool uecho_message_isnotification(uEchoMessage* msg);
  78. bool uecho_message_iswriterequest(uEchoMessage* msg);
  79. bool uecho_message_isreadrequest(uEchoMessage* msg);
  80. bool uecho_message_isnotifyrequest(uEchoMessage* msg);
  81. bool uecho_message_iswriteresponse(uEchoMessage* msg);
  82. bool uecho_message_isreadresponse(uEchoMessage* msg);
  83. bool uecho_message_isnotifyresponse(uEchoMessage* msg);
  84. bool uecho_message_issearchrequest(uEchoMessage* msg);
  85. bool uecho_message_issearchresponse(uEchoMessage* msg);
  86. bool uecho_message_isrequest(uEchoMessage* msg);
  87. bool uecho_message_isresponse(uEchoMessage* msg);
  88. #ifdef __cplusplus
  89. } /* extern C */
  90. #endif
  91. #endif /* _UECHO_MESSAGE_H_ */