u-RPC (Python API)  1.0.1
The u-RPC Remote Procedure Call framework
urpc.endpoint.URPC Class Reference

u-RPC endpoint class. More...

Inheritance diagram for urpc.endpoint.URPC:

Public Member Functions

def __init__ (self, send_callback, n_funcs=256)
 u-RPC endpoint class constructor. More...
 
def add_func (self, func, arg_types=None, ret_types=None, name=None)
 Add a function to u-RPC instance. More...
 
def remove_func (self, handle)
 Remove function from u-RPC instance and function lookup table. More...
 
def query (self, func_name, callback=None)
 Query u-RPC function handle. More...
 
def call (self, handle, sig_args, args, callback=None)
 Do u-RPC call. More...
 
def recv_callback (self, data)
 Callback function for incoming u-RPC messages. More...
 

Private Member Functions

def _build_header (self, msg_type, counter)
 Build u-RPC message header. More...
 
def _marshall (self, stream, sig, objects)
 Marshall objects into data stream. More...
 
def _unmarshall (self, stream, sig)
 Unmarshall objects from data stream. More...
 
def _invoke_callback (self, msg_id, result)
 Invoke and remove callback for given message ID. More...
 
def _handle_msg (self, req)
 Handle received u-RPC message. More...
 
def _handle_error (self, res, msg_id)
 u-RPC error result handler. More...
 
def _handle_func_query (self, req, msg_id)
 u-RPC function query handler. More...
 
def _handle_func_resp (self, res, msg_id)
 u-RPC function query response handler. More...
 
def _handle_call (self, req, msg_id)
 u-RPC function call handler. More...
 
def _handle_call_result (self, res, msg_id)
 u-RPC error result handler. More...
 

Private Attributes

 _funcs_store
 Functions store (Handle to function mapping) More...
 
 _func_name_lookup
 Function name to handle mapping. More...
 
 _counters
 Message ID counter. More...
 
 _send_callback
 Send data callback. More...
 
 _oper_callbacks
 Operation callbacks. More...
 

Detailed Description

u-RPC endpoint class.

Constructor & Destructor Documentation

◆ __init__()

def urpc.endpoint.URPC.__init__ (   self,
  send_callback,
  n_funcs = 256 
)

u-RPC endpoint class constructor.

Parameters
send_callbackFunction for sending data
n_funcsMaximum number of functions in store

Member Function Documentation

◆ _build_header()

def urpc.endpoint.URPC._build_header (   self,
  msg_type,
  counter 
)
private

Build u-RPC message header.

(When calling this function, the message counter will be updated)

Parameters
msg_typeMessage type.
counterName of the message counter to use.
Returns
Response stream with message header written.

◆ _handle_call()

def urpc.endpoint.URPC._handle_call (   self,
  req,
  msg_id 
)
private

u-RPC function call handler.

Parameters
reqRequest message stream.
msg_idRequest message ID.
Returns
A u-RPC response message.

◆ _handle_call_result()

def urpc.endpoint.URPC._handle_call_result (   self,
  res,
  msg_id 
)
private

u-RPC error result handler.

Parameters
resResponse message stream.
msg_idResponse message ID.

◆ _handle_error()

def urpc.endpoint.URPC._handle_error (   self,
  res,
  msg_id 
)
private

u-RPC error result handler.

Parameters
resResponse message stream.
msg_idResponse message ID.

◆ _handle_func_query()

def urpc.endpoint.URPC._handle_func_query (   self,
  req,
  msg_id 
)
private

u-RPC function query handler.

Parameters
reqRequest message stream.
msg_idRequest message ID.
Returns
A u-RPC response message.

◆ _handle_func_resp()

def urpc.endpoint.URPC._handle_func_resp (   self,
  res,
  msg_id 
)
private

u-RPC function query response handler.

Parameters
resResponse message stream.
msg_idResponse message ID.

◆ _handle_msg()

def urpc.endpoint.URPC._handle_msg (   self,
  req 
)
private

Handle received u-RPC message.

Parameters
reqRequest message stream.
Returns
Response message stream.

◆ _invoke_callback()

def urpc.endpoint.URPC._invoke_callback (   self,
  msg_id,
  result 
)
private

Invoke and remove callback for given message ID.

Parameters
msg_idRequest message ID.
resultCallback result.

◆ _marshall()

def urpc.endpoint.URPC._marshall (   self,
  stream,
  sig,
  objects 
)
private

Marshall objects into data stream.

Parameters
streamData stream.
sigSignature of objects.
objectsObjects to be marshalled.

◆ _unmarshall()

def urpc.endpoint.URPC._unmarshall (   self,
  stream,
  sig 
)
private

Unmarshall objects from data stream.

Parameters
streamData stream.
sigSignature of objects.
Returns
Objects in an array.

◆ add_func()

def urpc.endpoint.URPC.add_func (   self,
  func,
  arg_types = None,
  ret_types = None,
  name = None 
)

Add a function to u-RPC instance.

Parameters
funcFunction to be added.
arg_typesSignature of arguments.
ret_typesSignature of return values.
nameName of the function.
Returns
Handle for the object.
Exceptions
URPCErrorIf there is no more space for the function.

◆ call()

def urpc.endpoint.URPC.call (   self,
  handle,
  sig_args,
  args,
  callback = None 
)

Do u-RPC call.

Parameters
handleRemote function handle.
sig_argsSignature of arguments.
argsArguments.
callbackCalled when u-RPC call completed.

◆ query()

def urpc.endpoint.URPC.query (   self,
  func_name,
  callback = None 
)

Query u-RPC function handle.

Parameters
func_nameFunction name.
callbackCalled when query completed.

◆ recv_callback()

def urpc.endpoint.URPC.recv_callback (   self,
  data 
)

Callback function for incoming u-RPC messages.

Parameters
datau-RPC message data (in bytes)

◆ remove_func()

def urpc.endpoint.URPC.remove_func (   self,
  handle 
)

Remove function from u-RPC instance and function lookup table.

Parameters
handleHandle for the function.
Exceptions
URPCErrorIf the handle does not correspond to a function.

Member Data Documentation

◆ _counters

urpc.endpoint.URPC._counters
private

Message ID counter.

◆ _func_name_lookup

urpc.endpoint.URPC._func_name_lookup
private

Function name to handle mapping.

◆ _funcs_store

urpc.endpoint.URPC._funcs_store
private

Functions store (Handle to function mapping)

◆ _oper_callbacks

urpc.endpoint.URPC._oper_callbacks
private

Operation callbacks.

◆ _send_callback

urpc.endpoint.URPC._send_callback
private

Send data callback.


The documentation for this class was generated from the following file: