aboutsummaryrefslogtreecommitdiff
path: root/salticidae.go
diff options
context:
space:
mode:
authorDeterminant <tederminant@gmail.com>2019-06-06 17:00:25 -0400
committerDeterminant <tederminant@gmail.com>2019-06-06 17:00:25 -0400
commitf32e3109526f2d4e980c03dd65f7c94edff4d2b2 (patch)
tree990cd76066550bb6402e5c85d462ce86a570beb0 /salticidae.go
init
Diffstat (limited to 'salticidae.go')
-rw-r--r--salticidae.go40
1 files changed, 40 insertions, 0 deletions
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 <stdlib.h>
+// #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) }