From f32e3109526f2d4e980c03dd65f7c94edff4d2b2 Mon Sep 17 00:00:00 2001 From: Determinant Date: Thu, 6 Jun 2019 17:00:25 -0400 Subject: init --- salticidae.go | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 salticidae.go (limited to 'salticidae.go') diff --git a/salticidae.go b/salticidae.go new file mode 100644 index 0000000..4a8712a --- /dev/null +++ b/salticidae.go @@ -0,0 +1,40 @@ +package salticidae + + +// #cgo CFLAGS: -I${SRCDIR}/salticidae/include/ +// #cgo LDFLAGS: ${SRCDIR}/salticidae/libsalticidae.so -Wl,-rpath=${SRCDIR}/salticidae/ +// #include +// #include "salticidae/netaddr.h" +// #include "salticidae/network.h" +import "C" +import "unsafe" + +type rawptr_t = unsafe.Pointer + +type NetAddr = *C.struct_netaddr_t + +func NewAddrFromIPPortString(addr string) (res NetAddr) { + c_str := C.CString(addr) + res = C.netaddr_new_from_sipport(c_str) + C.free(rawptr_t(c_str)) + return +} + +type MsgNetwork = *C.struct_msgnetwork_t + +type EventContext = *C.struct_eventcontext_t + +func NewEventContext() EventContext { return C.eventcontext_new() } +func (self EventContext) Dispatch() { C.eventcontext_dispatch(self) } + +type MsgNetworkConfig = *C.struct_msgnetwork_config_t + +func NewMsgNetworkConfig() MsgNetworkConfig { return C.msgnetwork_config_new() } + +func NewMsgNetwork(ec EventContext, config MsgNetworkConfig) MsgNetwork { + return C.msgnetwork_new(ec, config) +} + +func (self MsgNetwork) Start() { C.msgnetwork_start(self) } +func (self MsgNetwork) Listen(addr NetAddr) { C.msgnetwork_listen(self, addr) } +func (self MsgNetwork) Connect(addr NetAddr) { C.msgnetwork_connect(self, addr) } -- cgit v1.2.3