ServerController.pas

<< Click to Display Table of Contents >>

Navigation:  Demos > XIV > Delphi > GoogleSearchDemo >

ServerController.pas

unit ServerController;

 

interface

 

uses

 SysUtils, Classes, IWServerControllerBase, IWBaseForm, HTTPApp,

 // For OnNewSession Event

 UserSessionUnit, IWApplication, IWAppForm, IW.Browser.Browser;

 

type

 TIWServerController = class(TIWServerControllerBase)

 procedure IWServerControllerBaseNewSession(ASession: TIWApplication);

 procedure IWServerControllerBaseConfig(Sender: TObject);

 

 private

 public

 end;

 

 

 function UserSession: TIWUserSession;

 function IWServerController: TIWServerController;

 

implementation

 

{$R *.dfm}

 

uses

 IWInit, IWGlobal, IW.Browser.Other, IW.Browser.InternetExplorer,

 IW.Content.Handlers, IW.ContentBot, IW.ContentBot2,

 IWServerSession;

 

function IWServerController: TIWServerController;

begin

 Result := TIWServerController(GServerController);

end;

 

function UserSession: TIWUserSession;

begin

 Result := TIWUserSession(WebApplication.Data);

end;

 

procedure TIWServerController.IWServerControllerBaseConfig(Sender: TObject);

begin

 SessionOptions.AllowSearchEngines := True;

 

 // Tell IntraWeb to redirect SearchEngine requests to some ContentHandler

 SearchEngineOptions.RedirectToContentHandler := True;

 

 // uncomment this line if you want to use TContentBot to respond

 SearchEngineOptions.ContentHandlerPath := '/bot/';

 

 // uncomment this line if you want to use TContentBot2 to respond

 //SearchEngineOptions.ContentHandlerPath := '/bot2/';

end;

 

procedure TIWServerController.IWServerControllerBaseNewSession(

 ASession: TIWApplication);

begin

 ASession.Data := TIWUserSession.Create(nil);

end;

 

initialization

 TIWServerController.SetServerControllerClass;

 

 // we register both TContentBot handlers, but only one will be used depending on

 // SearchEngineOptions.ContentHandlerPath setting

 with THandlers.Add('/bot/', '', TContentBot.Create) do begin

 CanStartSession := True;

 RequiresSessionStart := False;

 end;

 

 with THandlers.Add('/bot2/', '', TContentBot2.Create) do begin

 CanStartSession := True;

 RequiresSessionStart := False;

 end;

end.