grpc added node/session event streaming requests

This commit is contained in:
bharnden 2019-03-16 13:48:25 -07:00
parent d9ae7d5c34
commit f24376d66c
3 changed files with 108 additions and 14 deletions

View file

@ -1,6 +1,7 @@
from __future__ import print_function
import logging
import os
import threading
from contextlib import contextmanager
import grpc
@ -64,6 +65,30 @@ class CoreApiClient(object):
request.state = state.value
return self.stub.SetSessionState(request)
def node_events(self, _id, handler):
request = core_pb2.NodeEventsRequest()
request.id = _id
def listen():
for event in self.stub.NodeEvents(request):
handler(event)
thread = threading.Thread(target=listen)
thread.daemon = True
thread.start()
def session_events(self, _id, handler):
request = core_pb2.SessionEventsRequest()
request.id = _id
def listen():
for event in self.stub.SessionEvents(request):
handler(event)
thread = threading.Thread(target=listen)
thread.daemon = True
thread.start()
def create_node(self, session, _type=NodeTypes.DEFAULT, _id=None, node_options=None, emane=None):
if not node_options:
node_options = NodeOptions()