mirror of https://github.com/oxen-io/lokinet
add python ffi example wrapper code
parent
3f21cc5865
commit
e58bd10b23
@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
|
||||
from ctypes import *
|
||||
import signal
|
||||
import time
|
||||
import threading
|
||||
|
||||
class LLARP(threading.Thread):
|
||||
|
||||
lib = None
|
||||
ctx = None
|
||||
|
||||
def signal(self, sig):
|
||||
if self.ctx and self.lib:
|
||||
self.lib.llarp_main_signal(self.ctx, int(sig))
|
||||
|
||||
def run(self):
|
||||
code = self.lib.llarp_main_run(self.ctx)
|
||||
print ("llarp_main_run exited with status {}".format(code))
|
||||
|
||||
|
||||
def main():
|
||||
llarp = LLARP()
|
||||
llarp.lib = CDLL("./libllarp.so")
|
||||
llarp.ctx = llarp.lib.llarp_main_init(b'daemon.ini')
|
||||
if llarp.ctx:
|
||||
llarp.start()
|
||||
try:
|
||||
while True:
|
||||
print("busy loop")
|
||||
time.sleep(1)
|
||||
except KeyboardInterrupt:
|
||||
llarp.signal(signal.SIGINT)
|
||||
finally:
|
||||
llarp.lib.llarp_main_free(llarp.ctx)
|
||||
return
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
Loading…
Reference in New Issue