Introduction > Configuration and Expansion > Expansion
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>)