≡ menu
× menu

cnnmmd

Extension: Engine (prc)


The engines used by the servers are called dynamically according to the script name pattern (owner + engine type).

Specification: Between engine and server
- Class Name - (Stt|Tts|Ttt|Sen)Prc
- Methods - system # Settings - infere # Estimation
Specification: Between server and client
- endpoint - /sys # config - /gen # estimate
Specifying the engine from the server script
- --engine <author>/<engine>

Extension: Function node (dyn)


A function node is described by a class and a dictionary. An intermediate connector dynamically expands and executes (eval) the dictionary.

class <class>
  @staticmethod
  def <method>(<list_argument>)

LibMid.dicprc.append(
  "key", "<author>.<key_process>"
  # Process name (optional)
  "frm",
"LibMid.plugin["<plugin>"].<class>.<method>(...)"
  # Processing (class + method) + arguments "syn", (True|False)
  # Asynchronous, false if waiting)
Available global variables
values # values[KEYDAT]
memory # memory[KEYMEM]
dicreq # dicreq[ARGUMENT]

Extending: Workflow


The flow description for the intermediate connector is a combination of three methods, four fixed endpoints, and four polling endpoints:

MidClt.reqset # Send data MidClt.reqget # Receive data MidClt.reqprc # Execute processing (request execution of dynamic library)
/ini # Initialize/set @ Store (returns content key from content)
/get # Get (returns content from content key)
/prc # process (run required dynamic libraries)
/spsNNN # Store: Receive raw data (notify completion of reception)
/sppNNN # Store: Pass data ID (when ready)
/gpsNNN # Get: Receive data ID (notify completion of reception)
/gppNNN # Get: hand over raw data (when ready)

For each method, you provide a dictionary of arguments to specify the endpoint to connect to:

# Store the binary data in the intermediate connector MidClt.reqset({<data>, <address_mid_server>})
# Get binary data from the intermediate connector MidClt.reqget({"keydat": <key_data>},
<address_mid_server>)
# Execute the specified process in the intermediate connector (specify the set class + method)
MidClt.reqprc({"keyprc": "<class>.<method>"},
<address_mid_server>)