You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
lokinet/contrib/py/ffi-example/llarp.py

42 lines
917 B
Python

#!/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()