Ferreteria/v0.6/sys/Requests
< Ferreteria | v0.6 | sys
Jump to navigation
Jump to search
|
Ferreteria v0.6: Request subsystems
|
There are (currently) the following types of request:
- Requests to a database engine:
- Input requests:
The purpose of engine requests is to allow consolidation of all the pieces needed to perform operations without knowing what engine or connection they will be used on.
Sequence of Events
- Application defines podlings for [WFe]
\boot\caPoingerand App- Poinger podling sets
AppClass()to return the name of the App podling.
- Poinger podling sets
- Application instantiates the Poinger-podling, which instantiates
AppClass()and calls itsGo()function. - Go() results in the following being called:
ReadAppConfig()– read the app's configurationShowAppConfig()– display the app's configuration, where appropriate- CLI apps generally display the app header, with app name and version.
ReadUserCommand()– decode/digest any user request (input) dataDescribeActions()– show what the app intends to try to do, based on the user input (UserCommand)ExecuteActions()– attempt the actions requested by the user input
- (in progress)
outdated docs
2025-10-17 this leaves out a lot of context and may be outdated
- At execution time, something calls
InputRq->Go() - ...which then calls the Engine object or a helper to do the operation, e.g.
Schema->DoImport()- ...which is where the thing is actually done, e.g. SQL code is sent to the DB Engine through the Connection.
...but this also happens somewhere:
Conn->callsDoAdminRequest()ActionRq\Admin->with itself as the argument.AskEngine()- #TODO Both of these functions have been removed or possibly renamed.
ActionRq\Admin->does any necessary calculations, then calls the appropriate Engine object or sub-object to do the operation (e.g.AskEngine()Schema->DoExport()).