Step 11. Register RPCs

Up until now, it has been assumed that the only user of your application is you, and that you have programmer access and the XUPROGMODE key in the account where your RPCs are accessed.

Under any other circumstance, any RPCs that your application uses must be registered for use by your application on the host system. Registration authorizes the RPC(s) for use by your client based on user privileges.

To register the RPCs used by the tutorial application:

  1. Create an option of type "B" (Broker). For example, create an option called ZxxxTT TERMTYPE for the tutorial application.

  2. In the "B"-type option's RPC multiple, make one entry for each RPC your application calls. In the case of this tutorial, there should be two entries: one for ZxxxTT LIST and one for ZxxxTT RETRIEVE.

  3. Follow the steps in How to Register an RPC to create an application context, using the ZxxxTT TERMTYPE option. Essentially, add a line of code that calls the CreateContext function, and terminates the application if False is returned. The code for Form1's OnCreate event should now look like:
    procedure TForm1.FormCreate(Sender: TObject);
    var   ServerStr: String;
            PortStr: String;
    begin
      TermTypeList:=TStringList.Create;
      // get the correct port and server from Registry
      if GetServerInfo(ServerStr,PortStr)<> mrCancel then
      begin {connectOK}
        RPCBroker1.Server:=ServerStr;
        RPCBroker1.ListenerPort:=StrToInt(PortStr);
        // establish a connection to the RPC Broker server
        try
          RPCBroker1.Connected:=True;
          // Check security
          if not RPCBroker1.CreateContext('ZxxxTT TERMTYPE') then
            Application.Terminate;
        except
          On EBrokerError do
          begin {error}
            ShowMessage('Connection to server could not be established!');
            Application.Terminate;
          end; {error}
        end; {try}
      end {connectOK}
      else
        Application.Terminate;
    end;
  4. Compile and run your application. Try running it both with and without the XUPROGMODE key assigned to yourself. Without XUPROGMODE, you won't be able to run your application unless the ZxxxTT TERMTYPE option is assigned to your menu tree.