Ferreteria/v0.6/code/sys/Requests: Difference between revisions

From Woozle Writes Code
Jump to navigation Jump to search
No edit summary
m (Woozle moved page Code/sys/Requests to Ferreteria/v0.6/code/sys/Requests without leaving a redirect: was in the wrong place, not sure how that happened)
(No difference)

Revision as of 14:38, 11 March 2025

Request subsystems

There are (currently) the following types of request:

  • Requests to a database engine:
    • AdminRq is for administration operations: backup, restore, user management, etc.
    • CommRq is for data (should probably be renamed)
  • 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

  • At execution time, something calls InputReq->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:

  • DbConn->DoAdminRequest() calls AdminRq->AskEngine() with itself as the argument.
  • AdminRq->AskEngine() does any necessary calculations, then calls the appropriate Engine object or sub-object to do the operation (e.g. Schema->DoExport).