123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- /******************************************************************
- *
- * uEcho for ObjC
- *
- * Copyright (C) Satoshi Konno 2015
- *
- * This is licensed under BSD-style license, see file COPYING.
- *
- ******************************************************************/
- #import "CGEchoMessage.h"
- #import "CGEchoProperty.h"
- #include <uecho/message.h>
- @implementation CGEchoMessage {
- BOOL isWeakObject;
- }
- @synthesize cObject;
- - (id)init
- {
- if ((self = [super init]) == nil)
- return nil;
- cObject = uecho_message_new();
- isWeakObject = NO;
- return self;
- }
- - (id)initWithCObject:(uEchoMessage*)cobj
- {
- if ((self = [super init]) == nil)
- return nil;
- cObject = cobj;
- isWeakObject = YES;
- return self;
- }
- - (void)dealloc
- {
- if (!isWeakObject) {
- uecho_message_delete(cObject);
- }
- }
- - (NSArray*)properties;
- {
- if (!cObject)
- return [NSArray array];
- NSMutableArray* props = [NSMutableArray array];
- for (int n = 0; n < (int)uecho_message_getopc(cObject); n++) {
- uEchoProperty* cProp = uecho_message_getproperty(cObject, n);
- if (!cProp)
- continue;
- [props addObject:[[CGEchoProperty alloc] initWithCObject:cProp]];
- }
- return props;
- }
- - (NSArray*)setproperties;
- {
- if (!cObject)
- return [NSArray array];
- NSMutableArray* props = [NSMutableArray array];
- for (int n = 0; n < (int)uecho_message_getopcset(cObject); n++) {
- uEchoProperty* cProp = uecho_message_getpropertyset(cObject, n);
- if (!cProp)
- continue;
- [props addObject:[[CGEchoProperty alloc] initWithCObject:cProp]];
- }
- return props;
- }
- - (NSArray*)getproperties;
- {
- if (!cObject)
- return [NSArray array];
- NSMutableArray* props = [NSMutableArray array];
- for (int n = 0; n < (int)uecho_message_getopcget(cObject); n++) {
- uEchoProperty* cProp = uecho_message_getpropertyget(cObject, n);
- if (!cProp)
- continue;
- [props addObject:[[CGEchoProperty alloc] initWithCObject:cProp]];
- }
- return props;
- }
- - (BOOL)setESV:(CGEchoESV)esv
- {
- if (!cObject)
- return NO;
- uecho_message_setesv(cObject, esv);
- return YES;
- }
- - (CGEchoESV)ESV;
- {
- if (!cObject)
- return 0;
- return uecho_message_getesv(cObject);
- }
- - (BOOL)setDestination:(int)code
- {
- if (!cObject)
- return NO;
- uecho_message_setdestinationobjectcode(cObject, code);
- return YES;
- }
- - (int)destination
- {
- if (!cObject)
- return 0;
- return uecho_message_getdestinationobjectcode(cObject);
- }
- - (BOOL)addProperty:(Byte)code data:(Byte*)data size:(size_t)size
- {
- if (!cObject)
- return 0;
- return uecho_message_setproperty(cObject, code, data, size);
- }
- - (BOOL)addGetProperty:(Byte)code data:(Byte*)data size:(size_t)size
- {
- if (!cObject)
- return 0;
- return uecho_message_setpropertyget(cObject, code, data, size);
- }
- - (BOOL)addSetProperty:(Byte)code data:(Byte*)data size:(size_t)size
- {
- if (!cObject)
- return 0;
- return uecho_message_setpropertyset(cObject, code, data, size);
- }
- @end
|