// Objective-C API for talking to interfaces Go package. // gobind -lang=objc interfaces // // File is generated by gobind. Do not edit. #include "GoInterfaces.h" #include #include "seq.h" static NSString* errDomain = @"go.interfaces"; @protocol goSeqRefInterface -(GoSeqRef*) ref; @end #define _DESCRIPTOR_ "interfaces" #define _CALL_Add3_ 1 #define _CALL_CallErr_ 2 #define _CALL_Seven_ 3 #define _GO_interfaces_Error_DESCRIPTOR_ "go.interfaces.Error" #define _GO_interfaces_Error_Err_ (0x10a) @interface GoInterfacesError : NSObject { } @property(strong, readonly) id ref; - (id)initWithRef:(id)ref; - (BOOL)Err:(NSError**)error; @end @implementation GoInterfacesError { } - (id)initWithRef:(id)ref { self = [super init]; if (self) { _ref = ref; } return self; } - (BOOL)Err:(NSError**)error { GoSeq in_ = {}; GoSeq out_ = {}; go_seq_writeRef(&in_, self.ref); go_seq_send(_GO_interfaces_Error_DESCRIPTOR_, _GO_interfaces_Error_Err_, &in_, &out_); NSString* _error = go_seq_readUTF8(&out_); if ([_error length] != 0 && error != nil) { NSMutableDictionary* details = [NSMutableDictionary dictionary]; [details setValue:_error forKey:NSLocalizedDescriptionKey]; *error = [NSError errorWithDomain:errDomain code:1 userInfo:details]; } go_seq_free(&in_); go_seq_free(&out_); return ([_error length] == 0); } @end static void proxyGoInterfacesError(id obj, int code, GoSeq* in, GoSeq* out) { switch (code) { case _GO_interfaces_Error_Err_: { id o = (id)(obj); NSError* error = NULL; BOOL returnVal = [o Err:&error]; if (returnVal) { go_seq_writeUTF8(out, NULL); } else { NSString* errorDesc = [error localizedDescription]; if (errorDesc == NULL || errorDesc.length == 0) { errorDesc = @"gobind: unknown error"; } go_seq_writeUTF8(out, errorDesc); } } break; default: NSLog(@"unknown code %x for _GO_interfaces_Error_DESCRIPTOR_", code); } } #define _GO_interfaces_I_DESCRIPTOR_ "go.interfaces.I" #define _GO_interfaces_I_Rand_ (0x10a) @interface GoInterfacesI : NSObject { } @property(strong, readonly) id ref; - (id)initWithRef:(id)ref; - (int32_t)Rand; @end @implementation GoInterfacesI { } - (id)initWithRef:(id)ref { self = [super init]; if (self) { _ref = ref; } return self; } - (int32_t)Rand { GoSeq in_ = {}; GoSeq out_ = {}; go_seq_writeRef(&in_, self.ref); go_seq_send(_GO_interfaces_I_DESCRIPTOR_, _GO_interfaces_I_Rand_, &in_, &out_); int32_t ret0_ = go_seq_readInt32(&out_); go_seq_free(&in_); go_seq_free(&out_); return ret0_; } @end static void proxyGoInterfacesI(id obj, int code, GoSeq* in, GoSeq* out) { switch (code) { case _GO_interfaces_I_Rand_: { id o = (id)(obj); int32_t returnVal = [o Rand]; go_seq_writeInt32(out, returnVal); } break; default: NSLog(@"unknown code %x for _GO_interfaces_I_DESCRIPTOR_", code); } } #define _GO_interfaces_I1_DESCRIPTOR_ "go.interfaces.I1" #define _GO_interfaces_I1_J_ (0x10a) @implementation GoInterfacesI1 { } - (id)initWithRef:(id)ref { self = [super init]; if (self) { _ref = ref; } return self; } - (void)J { GoSeq in_ = {}; GoSeq out_ = {}; go_seq_writeRef(&in_, self.ref); go_seq_send(_GO_interfaces_I1_DESCRIPTOR_, _GO_interfaces_I1_J_, &in_, &out_); go_seq_free(&in_); go_seq_free(&out_); } @end #define _GO_interfaces_I2_DESCRIPTOR_ "go.interfaces.I2" #define _GO_interfaces_I2_G_ (0x10a) @implementation GoInterfacesI2 { } - (id)initWithRef:(id)ref { self = [super init]; if (self) { _ref = ref; } return self; } - (void)G { GoSeq in_ = {}; GoSeq out_ = {}; go_seq_writeRef(&in_, self.ref); go_seq_send(_GO_interfaces_I2_DESCRIPTOR_, _GO_interfaces_I2_G_, &in_, &out_); go_seq_free(&in_); go_seq_free(&out_); } @end #define _GO_interfaces_I3_DESCRIPTOR_ "go.interfaces.I3" #define _GO_interfaces_I3_F_ (0x10a) @interface GoInterfacesI3 : NSObject { } @property(strong, readonly) id ref; - (id)initWithRef:(id)ref; - (GoInterfacesI1*)F; @end @implementation GoInterfacesI3 { } - (id)initWithRef:(id)ref { self = [super init]; if (self) { _ref = ref; } return self; } - (GoInterfacesI1*)F { GoSeq in_ = {}; GoSeq out_ = {}; go_seq_writeRef(&in_, self.ref); go_seq_send(_GO_interfaces_I3_DESCRIPTOR_, _GO_interfaces_I3_F_, &in_, &out_); GoSeqRef* ret0__ref = go_seq_readRef(&out_); GoInterfacesI1* ret0_ = ret0__ref.obj; if (ret0_ == NULL) { ret0_ = [[GoInterfacesI1 alloc] initWithRef:ret0__ref]; } go_seq_free(&in_); go_seq_free(&out_); return ret0_; } @end static void proxyGoInterfacesI3(id obj, int code, GoSeq* in, GoSeq* out) { switch (code) { case _GO_interfaces_I3_F_: { id o = (id)(obj); GoInterfacesI1* returnVal = [o F]; if ([(id)(returnVal) isKindOfClass:[GoInterfacesI1 class]]) { idretVal_proxy = (id)(returnVal); go_seq_writeRef(out, retVal_proxy.ref); } else { go_seq_writeRef(out, returnVal); } } break; default: NSLog(@"unknown code %x for _GO_interfaces_I3_DESCRIPTOR_", code); } } #define _GO_interfaces_WithParam_DESCRIPTOR_ "go.interfaces.WithParam" #define _GO_interfaces_WithParam_HasParam_ (0x10a) @interface GoInterfacesWithParam : NSObject { } @property(strong, readonly) id ref; - (id)initWithRef:(id)ref; - (void)HasParam:(BOOL)p0; @end @implementation GoInterfacesWithParam { } - (id)initWithRef:(id)ref { self = [super init]; if (self) { _ref = ref; } return self; } - (void)HasParam:(BOOL)p0 { GoSeq in_ = {}; GoSeq out_ = {}; go_seq_writeRef(&in_, self.ref); go_seq_writeBool(&in_, p0); go_seq_send(_GO_interfaces_WithParam_DESCRIPTOR_, _GO_interfaces_WithParam_HasParam_, &in_, &out_); go_seq_free(&in_); go_seq_free(&out_); } @end static void proxyGoInterfacesWithParam(id obj, int code, GoSeq* in, GoSeq* out) { switch (code) { case _GO_interfaces_WithParam_HasParam_: { id o = (id)(obj); BOOL p0 = go_seq_readBool(in); [o HasParam:p0]; } break; default: NSLog(@"unknown code %x for _GO_interfaces_WithParam_DESCRIPTOR_", code); } } int32_t GoInterfacesAdd3(id r) { GoSeq in_ = {}; GoSeq out_ = {}; if ([(id)(r) isKindOfClass:[GoInterfacesI class]]) { id r_proxy = (id)(r); go_seq_writeRef(&in_, r_proxy.ref); } else { go_seq_writeObjcRef(&in_, r); } go_seq_send(_DESCRIPTOR_, _CALL_Add3_, &in_, &out_); int32_t ret0_ = go_seq_readInt32(&out_); go_seq_free(&in_); go_seq_free(&out_); return ret0_; } BOOL GoInterfacesCallErr(id e, NSError** error) { GoSeq in_ = {}; GoSeq out_ = {}; if ([(id)(e) isKindOfClass:[GoInterfacesError class]]) { id e_proxy = (id)(e); go_seq_writeRef(&in_, e_proxy.ref); } else { go_seq_writeObjcRef(&in_, e); } go_seq_send(_DESCRIPTOR_, _CALL_CallErr_, &in_, &out_); NSString* _error = go_seq_readUTF8(&out_); if ([_error length] != 0 && error != nil) { NSMutableDictionary* details = [NSMutableDictionary dictionary]; [details setValue:_error forKey:NSLocalizedDescriptionKey]; *error = [NSError errorWithDomain:errDomain code:1 userInfo:details]; } go_seq_free(&in_); go_seq_free(&out_); return ([_error length] == 0); } id GoInterfacesSeven() { GoSeq in_ = {}; GoSeq out_ = {}; go_seq_send(_DESCRIPTOR_, _CALL_Seven_, &in_, &out_); GoSeqRef* ret0__ref = go_seq_readRef(&out_); id ret0_ = ret0__ref.obj; if (ret0_ == NULL) { ret0_ = [[GoInterfacesI alloc] initWithRef:ret0__ref]; } go_seq_free(&in_); go_seq_free(&out_); return ret0_; } __attribute__((constructor)) static void init() { go_seq_register_proxy("go.interfaces.Error", proxyGoInterfacesError); go_seq_register_proxy("go.interfaces.I", proxyGoInterfacesI); go_seq_register_proxy("go.interfaces.I3", proxyGoInterfacesI3); go_seq_register_proxy("go.interfaces.WithParam", proxyGoInterfacesWithParam); }