I have a webservice constructed as follows
Main unit (a TForm
):
private
FWebBrokerBridge: TIdHTTPWebBrokerBridge;
In the create:
FWebBrokerBridge := TIdHTTPWebBrokerBridge.Create(Self); // TIdHTTPWebBrokerBridge = class(TIdCustomHTTPServer), in IdHTTPWebBrokerBridge.pas
FWebBrokerBridge.RegisterWebModuleClass(TWebModuleWebServices);
FWebBrokerBridge.... set some properties
FWebBrokerBridge.DefaultPort := FPort;
FWebBrokerBridge.Active := True;
The TWebModuleWebServices
is in:
unit DMWebServices;
interface
type
TWebModuleWebServices = class(TWebModule)
procedure WebModuleCreate(Sender: TObject);
procedure WebModuleAfterDispatch(Sender: TObject; Request: TWebRequest;
Response: TWebResponse; var Handled: Boolean);
procedure WebModuleBeforeDispatch(Sender: TObject; Request: TWebRequest;
Response: TWebResponse; var Handled: Boolean);
procedure WebModuleWebServicesTTInfoAction(Sender: TObject;
Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
... other actions
The main unit reads a boolean setting from an INI file and I want that value to be known in each TWebModuleWebServices
instance.
But how to do that?
- The
WebModuleCreate
sender is aTWebModuleWebServices
so I don't see much opportunity there. Maybe override the Create? - Use the
TWebModuleWebServices
Tag property? - Use a global variable or a singleton (it's a global boolean setting, nothing complicated)?
What would be a smart approach?