CGEchoMessage.m 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. /******************************************************************
  2. *
  3. * uEcho for ObjC
  4. *
  5. * Copyright (C) Satoshi Konno 2015
  6. *
  7. * This is licensed under BSD-style license, see file COPYING.
  8. *
  9. ******************************************************************/
  10. #import "CGEchoMessage.h"
  11. #import "CGEchoProperty.h"
  12. #include <uecho/message.h>
  13. @implementation CGEchoMessage {
  14. BOOL isWeakObject;
  15. }
  16. @synthesize cObject;
  17. - (id)init
  18. {
  19. if ((self = [super init]) == nil)
  20. return nil;
  21. cObject = uecho_message_new();
  22. isWeakObject = NO;
  23. return self;
  24. }
  25. - (id)initWithCObject:(uEchoMessage*)cobj
  26. {
  27. if ((self = [super init]) == nil)
  28. return nil;
  29. cObject = cobj;
  30. isWeakObject = YES;
  31. return self;
  32. }
  33. - (void)dealloc
  34. {
  35. if (!isWeakObject) {
  36. uecho_message_delete(cObject);
  37. }
  38. }
  39. - (NSArray*)properties;
  40. {
  41. if (!cObject)
  42. return [NSArray array];
  43. NSMutableArray* props = [NSMutableArray array];
  44. for (int n = 0; n < (int)uecho_message_getopc(cObject); n++) {
  45. uEchoProperty* cProp = uecho_message_getproperty(cObject, n);
  46. if (!cProp)
  47. continue;
  48. [props addObject:[[CGEchoProperty alloc] initWithCObject:cProp]];
  49. }
  50. return props;
  51. }
  52. - (NSArray*)setproperties;
  53. {
  54. if (!cObject)
  55. return [NSArray array];
  56. NSMutableArray* props = [NSMutableArray array];
  57. for (int n = 0; n < (int)uecho_message_getopcset(cObject); n++) {
  58. uEchoProperty* cProp = uecho_message_getpropertyset(cObject, n);
  59. if (!cProp)
  60. continue;
  61. [props addObject:[[CGEchoProperty alloc] initWithCObject:cProp]];
  62. }
  63. return props;
  64. }
  65. - (NSArray*)getproperties;
  66. {
  67. if (!cObject)
  68. return [NSArray array];
  69. NSMutableArray* props = [NSMutableArray array];
  70. for (int n = 0; n < (int)uecho_message_getopcget(cObject); n++) {
  71. uEchoProperty* cProp = uecho_message_getpropertyget(cObject, n);
  72. if (!cProp)
  73. continue;
  74. [props addObject:[[CGEchoProperty alloc] initWithCObject:cProp]];
  75. }
  76. return props;
  77. }
  78. - (BOOL)setESV:(CGEchoESV)esv
  79. {
  80. if (!cObject)
  81. return NO;
  82. uecho_message_setesv(cObject, esv);
  83. return YES;
  84. }
  85. - (CGEchoESV)ESV;
  86. {
  87. if (!cObject)
  88. return 0;
  89. return uecho_message_getesv(cObject);
  90. }
  91. - (BOOL)setDestination:(int)code
  92. {
  93. if (!cObject)
  94. return NO;
  95. uecho_message_setdestinationobjectcode(cObject, code);
  96. return YES;
  97. }
  98. - (int)destination
  99. {
  100. if (!cObject)
  101. return 0;
  102. return uecho_message_getdestinationobjectcode(cObject);
  103. }
  104. - (BOOL)addProperty:(Byte)code data:(Byte*)data size:(size_t)size
  105. {
  106. if (!cObject)
  107. return 0;
  108. return uecho_message_setproperty(cObject, code, data, size);
  109. }
  110. - (BOOL)addGetProperty:(Byte)code data:(Byte*)data size:(size_t)size
  111. {
  112. if (!cObject)
  113. return 0;
  114. return uecho_message_setpropertyget(cObject, code, data, size);
  115. }
  116. - (BOOL)addSetProperty:(Byte)code data:(Byte*)data size:(size_t)size
  117. {
  118. if (!cObject)
  119. return 0;
  120. return uecho_message_setpropertyset(cObject, code, data, size);
  121. }
  122. @end