blob: 53ce9b735723f54b17265cca91d04a538282f63c [file] [log] [blame]
// Objective-C API for talking to issue10788 Go package.
// gobind -lang=objc issue10788
//
// File is generated by gobind. Do not edit.
#include "GoIssue10788.h"
#include <Foundation/Foundation.h>
#include "seq.h"
static NSString* errDomain = @"go.issue10788";
@protocol goSeqRefInterface
-(GoSeqRef*) _ref;
@end
#define _DESCRIPTOR_ "issue10788"
@class GoIssue10788TestInterface;
@interface GoIssue10788TestInterface : NSObject <GoIssue10788TestInterface> {
}
@property(strong, readonly) id _ref;
- (id)initWithRef:(id)ref;
- (void)doSomeWork:(GoIssue10788TestStruct*)s;
- (void)multipleUnnamedParams:(int)p0 p1:(NSString*)p1 p2:(int64_t)p2;
@end
#define _GO_issue10788_TestStruct_DESCRIPTOR_ "go.issue10788.TestStruct"
#define _GO_issue10788_TestStruct_FIELD_Value_GET_ (0x00f)
#define _GO_issue10788_TestStruct_FIELD_Value_SET_ (0x01f)
@implementation GoIssue10788TestStruct {
}
- (id)initWithRef:(id)ref {
self = [super init];
if (self) { __ref = ref; }
return self;
}
- (NSString*)value {
GoSeq in_ = {};
GoSeq out_ = {};
go_seq_writeRef(&in_, self._ref);
go_seq_send(_GO_issue10788_TestStruct_DESCRIPTOR_, _GO_issue10788_TestStruct_FIELD_Value_GET_, &in_, &out_);
NSString* ret_ = go_seq_readUTF8(&out_);
go_seq_free(&in_);
go_seq_free(&out_);
return ret_;
}
- (void)setValue:(NSString*)v {
GoSeq in_ = {};
GoSeq out_ = {};
go_seq_writeRef(&in_, self._ref);
go_seq_writeUTF8(&in_, v);
go_seq_send(_GO_issue10788_TestStruct_DESCRIPTOR_, _GO_issue10788_TestStruct_FIELD_Value_SET_, &in_, &out_);
go_seq_free(&in_);
go_seq_free(&out_);
}
@end
#define _GO_issue10788_TestInterface_DESCRIPTOR_ "go.issue10788.TestInterface"
#define _GO_issue10788_TestInterface_DoSomeWork_ (0x10a)
#define _GO_issue10788_TestInterface_MultipleUnnamedParams_ (0x20a)
@implementation GoIssue10788TestInterface {
}
- (id)initWithRef:(id)ref {
self = [super init];
if (self) { __ref = ref; }
return self;
}
- (void)doSomeWork:(GoIssue10788TestStruct*)s {
GoSeq in_ = {};
GoSeq out_ = {};
go_seq_writeRef(&in_, self._ref);
if ([(id<NSObject>)(s) isKindOfClass:[GoIssue10788TestStruct class]]) {
id<goSeqRefInterface> s_proxy = (id<goSeqRefInterface>)(s);
go_seq_writeRef(&in_, s_proxy._ref);
} else {
go_seq_writeObjcRef(&in_, s);
}
go_seq_send(_GO_issue10788_TestInterface_DESCRIPTOR_, _GO_issue10788_TestInterface_DoSomeWork_, &in_, &out_);
go_seq_free(&in_);
go_seq_free(&out_);
}
- (void)multipleUnnamedParams:(int)p0 p1:(NSString*)p1 p2:(int64_t)p2 {
GoSeq in_ = {};
GoSeq out_ = {};
go_seq_writeRef(&in_, self._ref);
go_seq_writeInt(&in_, p0);
go_seq_writeUTF8(&in_, p1);
go_seq_writeInt64(&in_, p2);
go_seq_send(_GO_issue10788_TestInterface_DESCRIPTOR_, _GO_issue10788_TestInterface_MultipleUnnamedParams_, &in_, &out_);
go_seq_free(&in_);
go_seq_free(&out_);
}
@end
static void proxyGoIssue10788TestInterface(id obj, int code, GoSeq* in, GoSeq* out) {
switch (code) {
case _GO_issue10788_TestInterface_DoSomeWork_: {
id<GoIssue10788TestInterface> o = (id<GoIssue10788TestInterface>)(obj);
GoSeqRef* s_ref = go_seq_readRef(in);
GoIssue10788TestStruct* s = s_ref.obj;
if (s == NULL) {
s = [[GoIssue10788TestStruct alloc] initWithRef:s_ref];
}
[o doSomeWork:s];
} break;
case _GO_issue10788_TestInterface_MultipleUnnamedParams_: {
id<GoIssue10788TestInterface> o = (id<GoIssue10788TestInterface>)(obj);
int p0 = go_seq_readInt(in);
NSString* p1 = go_seq_readUTF8(in);
int64_t p2 = go_seq_readInt64(in);
[o multipleUnnamedParams:p0 p1:p1 p2:p2];
} break;
default:
NSLog(@"unknown code %x for _GO_issue10788_TestInterface_DESCRIPTOR_", code);
}
}
__attribute__((constructor)) static void init() {
go_seq_register_proxy("go.issue10788.TestInterface", proxyGoIssue10788TestInterface);
}