TDADBEventRepository

Overview

The TDADBEventRepository class is a specialization of the TROEventRepository class in an implementation of the Event Sinks and Server Callbacks to store session events in a database accessed using Data Abstract.

DB script

CREATE TABLE [Messages](
    [MessageInc] [int] IDENTITY(1,1) NOT NULL,
    [Created] [datetime] NULL,
    [SourceSessionID] [char](38) NOT NULL,
    [Data] [image] NULL,
 CONSTRAINT [PK_Messages] PRIMARY KEY
([MessageInc] ASC)
)

GO

CREATE INDEX [Messages_IDX1] ON [Messages] ([Created] ASC)

GO

CREATE TABLE [MessagesPerSession](
    [SessionID] [char](38) NOT NULL,
    [MessageInc] [int] NOT NULL,
 CONSTRAINT [PK_MessagesPerSession] PRIMARY KEY
(  [SessionID] ASC, [MessageInc] ASC)
)

GO

CREATE INDEX [MessagesPerSession_IDX1] ON [MessagesPerSession] ([MessageInc] ASC)

GO

CREATE TABLE [dbo].[SessionsEvents] (
    [SessionID] [char] (38) NOT NULL ,
    [Created] [datetime] NOT NULL ,
    [LastAccessed] [datetime] NOT NULL ,
    [Data] [image] NULL 
)

GO

CREATE TABLE [EventsSubscriptions] (
  [SessionID] char(38) NOT NULL,
  [EventSinkID] varchar(255) NOT NULL,
  PRIMARY KEY CLUSTERED ([SessionID], [EventSinkID])
)
GO

Required Datasets/Commands:

Name SQL
AddSessionsEvent INSERT INTO SessionsEvents ([SessionID], [Created], [LastAccessed], [Data]) VALUES (:SessionID, :Created, :LastAccessed, :Data)
AddSubscription INSERT INTO EventsSubscriptions (SessionID, EventSinkID) VALUES (:SessionID, :EventSinkID)
CheckSubscription SELECT COUNT(*) FROM EventsSubscriptions WHERE ((EventSinkID = :EventSinkID) OR (EventSinkID = '*')) AND SessionID = :SessionID
ClearSessionsEvents DELETE FROM SessionsEvents
ClearSubscriptions DELETE FROM EventsSubscriptions
DeleteMessages DELETE FROM Messages WHERE MessageInc = :MessageInc
DeleteMessagesPerSession DELETE FROM MessagesPerSession WHERE SessionID = :SessionID AND MessageInc = :MessageInc
DeleteOldMessages DELETE FROM Messages WHERE Created < :Created
DeleteOldMessagesPerSession DELETE FROM MessagesPerSession WHERE MessageInc IN (SELECT MessageInc FROM Messages WHERE Created < :Created)
DeleteSessionsEvent DELETE FROM SessionsEvents WHERE SessionID = :SessionID
DeleteSubscription DELETE FROM EventsSubscriptions WHERE (SessionID = :SessionID) AND (EventSinkID = :EventSinkID)
DeleteSubscriptionPerSession DELETE FROM EventsSubscriptions WHERE SessionID = :SessionID
DeleteUnusedMessages DELETE FROM Messages WHERE MessageInc NOT IN (SELECT distinct MessageInc FROM MessagesPerSession)
GetAllSessionsEvents SELECT * FROM SessionsEvents
GetMessageInc SELECT ISNULL(Ident_Current('Messages'), 0) AS LastInc
GetMessages SELECT m.MessageInc, m.Data FROM MessagesPerSession mps JOIN Messages m ON (m.MessageInc = mps.MessageInc) WHERE mps.SessionID = :SessionID
GetSessionsEvent SELECT * FROM SessionsEvents WHERE SessionID = :SessionID
InsertMessages INSERT INTO Messages (Created, SourceSessionID, Data) VALUES ( :Created, :SourceSessionID, :Data)
InsertMessagesPerSession INSERT INTO MessagesPerSession (SessionID, MessageInc) VALUES ( :SessionID, :MessageInc)

Location


 

constructor Create  override

Standard component constructor

constructor Create(aOwner: TComponent)

Parameters:

  • aOwner: Owner

AddActiveListener  deprecated    (declared in TROEventRepository)

Registers aSessionID as an event sink with an aActiveEventServer instance of the IROActiveEventServer as an event dispatcher.

function AddActiveListener(aSessionID: TGUID; aActiveEventServer: IROActiveEventServer): Boolean

Parameters:

  • aSessionID: Unique session GUID
  • aActiveEventServer: Custom event dispatcher

AddSession (TGUID)  overload    (declared in TROEventRepository)

Performs registration of a given session.

procedure AddSession(aSessionID: TGUID)

Parameters:

  • aSessionID: Session ID

AddSession (TGUID, IROActiveEventServer)  overload    (declared in TROEventRepository)

Performs registration of a given session and event dispatcher.

procedure AddSession(aSessionID: TGUID; aActiveEventServer: IROActiveEventServer)

Parameters:

  • aSessionID: Unique session GUID
  • aActiveEventServer: Custom event dispatcher

AddSession (TGUID, IROActiveEventServer, string)  overload    (declared in TROEventRepository)

Performs registration of a given session and event dispatcher.

procedure AddSession(aSessionID: TGUID; aActiveEventServer: IROActiveEventServer; aEventSinkId: string)

Parameters:

  • aSessionID: Session ID
  • aActiveEventServer: Custom event dispatcher
  • aEventSinkId: Event sink

AddSession (TGUID, string)  overload    (declared in TROEventRepository)

Performs registration of a given session.

procedure AddSession(aSessionID: TGUID; aEventSinkId: string)

Parameters:

  • aSessionID: Session ID
  • aEventSinkId: Event sink

AddSessionsEventCommand

Command that will be used for adding a session to the repository.

property AddSessionsEventCommand: string read write

AddSubscriptionCommand

Command that will be used for subscribing the session to events of a certain event sink.

property AddSubscriptionCommand: string read write

Assign  override

Copies the contents of another, similar object.

procedure Assign(Source: TPersistent)

Parameters:

  • Source: Instance whose properties will be copied

AutoTransaction

Controls of using implicit (True) or explicit (False) database transactions.

property AutoTransaction: Boolean read write

CheckProperties  override

Validates the event repository properties.

procedure CheckProperties

CheckSubscriptionDataset

Dataset that will be used for checking wether the session is subscribed to events of a certain event sink.

property CheckSubscriptionDataset: string read write

ClearSessionsEvents

Removes all stored sessions

procedure ClearSessionsEvents

ClearSessionsEventsCommand

Command that will be used for removing all stored sessions.

property ClearSessionsEventsCommand: string read write

ClearSessionsOnCreate

When set to true, this property clears all sessions stored at the moment of component creation and lets the server 'forget' all sessions at start.

property ClearSessionsOnCreate: Boolean read write

ClearSessionsOnDestroy

When set to true, this property clears all sessions stored at the moment of component destruction (usually happening at the server application/service shutdown).

property ClearSessionsOnDestroy: Boolean read write

ClearSubscriptionsCommand

Command that will be used for removing all stored events subscriptions.

property ClearSubscriptionsCommand: string read write

Connection

Sets the name of the connection to the database that contains the session data.

property Connection: string read write

DeleteMessagesCommand

Command that will be used to delete messages from the database when they expire or are explicitly deleted.

property DeleteMessagesCommand: string read write

DeleteMessagesPerSessionCommand

Command that will be used to delete messages for given session from the database when they expire or are explicitly deleted.

property DeleteMessagesPerSessionCommand: string read write

DeleteOldMessages

Removes messages which are older then 30 days from the database.

procedure DeleteOldMessages

DeleteOldMessagesCommand

Command that will be used to DELETE messages which are older then 30 days from the database.

property DeleteOldMessagesCommand: string read write

DeleteOldMessagesPerSessionCommand

Command that will be used to DELETE messages for given session which are older then 30 days from the database.

property DeleteOldMessagesPerSessionCommand: string read write

DeleteSessionsEventCommand

Command that will be used for deleting the given session from the storage.

property DeleteSessionsEventCommand: string read write

DeleteSubscriptionCommand

Command that will be used for deleting (canceling) the subscription for the given session for the given event sink.

property DeleteSubscriptionCommand: string read write

DeleteSubscriptionPerSessionCommand

Command that will be used for deleting (canceling) all subscriptions for the given session.

property DeleteSubscriptionPerSessionCommand: string read write

DeleteUnusedMessages

Removes unused messages from the database.

procedure DeleteUnusedMessages

DeleteUnusedMessagesCommand

Command that will be used to DELETE unused messages from the database.

property DeleteUnusedMessagesCommand: string read write

DoAddSession (TGUID, IROActiveEventServer, string)  protected override

Performs registration of a given session and event dispatcher.

procedure DoAddSession(aSessionID: TGUID; aActiveEventServer: IROActiveEventServer; const aEventSinkId: string)

Parameters:

  • aSessionID: Session ID
  • aActiveEventServer: Custom event dispatcher
  • aEventSinkId: Event sink

DoAddSession (TGUID, string)  protected overload virtual    (declared in TROEventRepository)

Performs registration of a given session.

procedure DoAddSession(aSessionID: TGUID; const aEventSinkId: string)

Parameters:

  • aSessionID: Session ID
  • aEventSinkId: Event sink

DoConvertGUID  protected virtual

Calls to OnConvertGUID (if set) or uses GUIDToString for getting a text representation of given aGUID.

function DoConvertGUID(const aGUID: TGUID): string

Parameters:

  • aGUID: given GUID.

DoGetEventData  protected virtual    (declared in TROEventRepository)

Retrieves data of an event for a given session.

function DoGetEventData(SessionID: TGUID; var TargetStream: TROBinaryMemoryStream): Integer

Parameters:

  • SessionID: Unique session GUID
  • TargetStream: Event data container

DoGetEventData2  protected override

Retrieves data of an event for a given session.

function DoGetEventData2(SessionID: TGUID; out Target: TROEventDataArray; aMaxEvents: Integer; out aEventsLeft: Integer): Integer

Parameters:

  • SessionID: Session ID
  • Target: Array of events
  • aMaxEvents: Max possible count of eventsMax count of events per request
  • aEventsLeft: Rest of events

DoRemoveSession  protected override

Removes a given session from the list of registered sessions.

procedure DoRemoveSession(aSessionID: TGUID; const aEventSinkId: string)

Parameters:

  • aSessionID: Session ID
  • aEventSinkId: Event sink

DoStoreEventData  protected override

Stores event data from a given session.

procedure DoStoreEventData(SourceSessionID: TGUID; Data: TROBinaryMemoryStream; const ExcludeSender: Boolean; const ExcludeSessionList: Boolean; const SessionList: string; const EventSinkId: string)

Parameters:

  • SourceSessionID: Unique session GUID
  • Data: Event data container
  • ExcludeSender: If true, the SourceSessionID will be excluded from the destination list.
  • ExcludeSessionList: If true, the SessionList will be used as an exclusion list, otherwise as an inclusion list.
  • SessionList: Comma delimited list of session GUIDs
  • EventSinkId: Event sink

FieldName_Created

Database field used to store the time and date the message was originally created.

property FieldName_Created: string read write

FieldName_Data

Database field used to store the message data. This must be a BLOB field.

property FieldName_Data: string read write

FieldName_EventSinkID

Database field used to store the event sink name.

property FieldName_EventSinkID: string read write

FieldName_MessageInc

Database field used to store the link between the messages and the sessions.

property FieldName_MessageInc: string read write

FieldName_SessionID

Specifies the database field used to store the session ID.

property FieldName_SessionID: string read write

FieldName_SessionsCreated

Database field used to store the time and date the session was originally created.

property FieldName_SessionsCreated: string read write

FieldName_SessionsData

Database field used to store the session data. This must be a BLOB field.

property FieldName_SessionsData: string read write

FieldName_SessionsLastAccessed

Database field used to store the time and date the session was last accessed.

property FieldName_SessionsLastAccessed: string read write

FieldName_SessionsSessionID

Database field used to store the session ID. This must be a GUID field, or a string field of 38 characters.

property FieldName_SessionsSessionID: string read write

FieldName_SourceSessionID

Database field used to store the session ID that raises the event.

property FieldName_SourceSessionID: string read write

GetAllSessionsEventsDataset

Specifies the dataset (data table) used to store the sessions data.

property GetAllSessionsEventsDataset: string read write

GetEventData    (declared in TROEventRepository)

Implements IROEventRepository to retrieve data of events for a given session via %#DoGetEventData%.

function GetEventData(SessionID: TGUID; var TargetStream: TROBinaryMemoryStream): Integer

Parameters:

  • SessionID: Session ID
  • TargetStream: Target stream

GetEventData2    (declared in TROEventRepository)

Implements IROEventRepository to retrieve data of events for a given session via %#DoGetEventData2%.

function GetEventData2(SessionID: TGUID; out Target: TROEventDataArray; aMaxEvents: Integer; out aEventsLeft: Integer): Integer

Parameters:

  • SessionID: Session ID
  • Target: Array of events
  • aMaxEvents: Max count of events per request
  • aEventsLeft: Rest of events

GetEventDataEx    (declared in TROEventRepository)

Retrieves data of events for a given session.

procedure GetEventDataEx(SessionID: TGUID; out Target: TROEventDataArray)

Parameters:

  • SessionID: Session ID
  • Target: Array of events

GetEventWriter    (declared in TROEventRepository)

Retrieves an event proxy registered by the generated RODL Files.

function GetEventWriter(const IID: TGUID): IROEventWriter

Parameters:

  • IID: GUID of the required interface

GetMessageIncDataset

Dataset (data table) used to getting of the last message identifier autoincremented value.

property GetMessageIncDataset: string read write

GetMessagesDataset

Dataset (data table) used to store the messages data.

property GetMessagesDataset: string read write

GetSessionsEventDataset

Dataset that will be used for getting all data for the given session (by the session identifier).

property GetSessionsEventDataset: string read write

InsertMessagesCommand

Command that will be used to INSERT new messages into the database.

property InsertMessagesCommand: string read write

InsertMessagesPerSessionCommand

Command that will be used to INSERT new messages for given session into the database.

property InsertMessagesPerSessionCommand: string read write

IsSessionPresentinSessionManager  protected    (declared in TROEventRepository)

Checks given session id in SessionManager

function IsSessionPresentinSessionManager(const aSessionID: TGUID): Boolean

Parameters:

  • aSessionID: Session ID.

Message    (declared in TROEventRepository)

The message format used to encode event data. This must match the message format used on the client-side TROEventReceiver.

property Message: TROMessage read write

Notification  protected override

Forwards notification messages to all owned components.

procedure Notification(aComponent: TComponent; Operation: TOperation)

Parameters:

  • aComponent: component
  • Operation: operation

OnAfterAddSession    (declared in TROEventRepository)

Fired by AddSession after addition.

property OnAfterAddSession: TROSessionEvent read write
delegate: procedure OnAfterAddSession(Sender: TROEventRepository; const SessionID: TGUID)

OnAfterRemoveSession    (declared in TROEventRepository)

Fired by RemoveSession after removing.

property OnAfterRemoveSession: TROSessionEvent read write
delegate: procedure OnAfterRemoveSession(Sender: TROEventRepository; const SessionID: TGUID)

OnBeforeAddSession    (declared in TROEventRepository)

Fired by AddSession before addition.

property OnBeforeAddSession: TROSessionEvent read write
delegate: procedure OnBeforeAddSession(Sender: TROEventRepository; const SessionID: TGUID)

OnBeforeRemoveSession    (declared in TROEventRepository)

Fired by RemoveSession before removing.

property OnBeforeRemoveSession: TROSessionEvent read write
delegate: procedure OnBeforeRemoveSession(Sender: TROEventRepository; const SessionID: TGUID)

OnConvertGUID

Fires whenever a Session ID is used to access the database, allowing to convert the actual GUIDs used by the Remoting SDK's session management to a different format for storage in a database.

property OnConvertGUID: TDADBEventRepositoryConvertGUIDEvent read write
delegate: function OnConvertGUID(Sender: TDADBEventRepository; const aGUID: TGUID): string

RemoveSession (TGUID)  overload    (declared in TROEventRepository)

Removes a given session from the list of registered sessions.

procedure RemoveSession(aSessionID: TGUID)

Parameters:

  • aSessionID: Session ID

RemoveSession (TGUID, string)  overload    (declared in TROEventRepository)

Removes a given session from the list of registered sessions.

procedure RemoveSession(aSessionID: TGUID; aEventSinkId: string)

Parameters:

  • aSessionID: Session ID
  • aEventSinkId: Event sink

RemoveSessionActiveListener  protected override

Removes session active listener.

procedure RemoveSessionActiveListener(Sender: TObject; aSessionID: TGUID)

Parameters:


ROFreeNotification    (declared in TROComponent)

Forwards notification messages to all owned components.

procedure ROFreeNotification(aComponent: TComponent)

Parameters:

  • aComponent: component

RORemoveFreeNotification    (declared in TROComponent)

Forwards notification messages to all owned components.

procedure RORemoveFreeNotification(aComponent: TComponent)

Parameters:

  • aComponent: component

Schema

Sets the TDASchema used to access the message data. This is the schema that must define all used tables and commands.

property Schema: TDASchema read write

SendRemoveNotification  protected    (declared in TROComponent)

Forwards notification messages to all owned components.

procedure SendRemoveNotification(aComponent: TComponent)

Parameters:

  • aComponent: component

SessionManager    (declared in TROEventRepository)

The session manager that maintains the server's user sessions. Remoting SDK events are tied to user sessions. Fired events are stored in the session until delivered to clients, while undelivered events expire and are discarded when the session expires. Therefore, to function, every Event Repository must have a session manager assigned.

property SessionManager: TROCustomSessionManager read write

StoreAsUTCTimeStamp

Store timestamp as UTC in DB

property StoreAsUTCTimeStamp: Boolean read write

StoreEventData    (declared in TROEventRepository)

Stores the provided event data in the repository.

procedure StoreEventData(SourceSessionID: TGUID; Data: TROBinaryMemoryStream; const ExcludeSender: Boolean; const ExcludeSessionList: Boolean; const SessionList: string; const EventSinkId: string)

Parameters:

  • SourceSessionID: Session ID
  • Data: Event data container
  • ExcludeSender: If true, the SourceSessionID will be excluded from the destination list.
  • ExcludeSessionList: If true, the SessionList will be used as an exclusion list, otherwise as an inclusion list.
  • SessionList: Comma delimited list of session GUIDs
  • EventSinkId: Event sink

Timeout

Timeout. default value = 30 days.

property Timeout: Integer read write

 

AddSessionsEventCommand

Command that will be used for adding a session to the repository.

property AddSessionsEventCommand: string read write

AddSubscriptionCommand

Command that will be used for subscribing the session to events of a certain event sink.

property AddSubscriptionCommand: string read write

AutoTransaction

Controls of using implicit (True) or explicit (False) database transactions.

property AutoTransaction: Boolean read write

CheckSubscriptionDataset

Dataset that will be used for checking wether the session is subscribed to events of a certain event sink.

property CheckSubscriptionDataset: string read write

ClearSessionsEventsCommand

Command that will be used for removing all stored sessions.

property ClearSessionsEventsCommand: string read write

ClearSessionsOnCreate

When set to true, this property clears all sessions stored at the moment of component creation and lets the server 'forget' all sessions at start.

property ClearSessionsOnCreate: Boolean read write

ClearSessionsOnDestroy

When set to true, this property clears all sessions stored at the moment of component destruction (usually happening at the server application/service shutdown).

property ClearSessionsOnDestroy: Boolean read write

ClearSubscriptionsCommand

Command that will be used for removing all stored events subscriptions.

property ClearSubscriptionsCommand: string read write

Connection

Sets the name of the connection to the database that contains the session data.

property Connection: string read write

DeleteMessagesCommand

Command that will be used to delete messages from the database when they expire or are explicitly deleted.

property DeleteMessagesCommand: string read write

DeleteMessagesPerSessionCommand

Command that will be used to delete messages for given session from the database when they expire or are explicitly deleted.

property DeleteMessagesPerSessionCommand: string read write

DeleteOldMessagesCommand

Command that will be used to DELETE messages which are older then 30 days from the database.

property DeleteOldMessagesCommand: string read write

DeleteOldMessagesPerSessionCommand

Command that will be used to DELETE messages for given session which are older then 30 days from the database.

property DeleteOldMessagesPerSessionCommand: string read write

DeleteSessionsEventCommand

Command that will be used for deleting the given session from the storage.

property DeleteSessionsEventCommand: string read write

DeleteSubscriptionCommand

Command that will be used for deleting (canceling) the subscription for the given session for the given event sink.

property DeleteSubscriptionCommand: string read write

DeleteSubscriptionPerSessionCommand

Command that will be used for deleting (canceling) all subscriptions for the given session.

property DeleteSubscriptionPerSessionCommand: string read write

DeleteUnusedMessagesCommand

Command that will be used to DELETE unused messages from the database.

property DeleteUnusedMessagesCommand: string read write

FieldName_Created

Database field used to store the time and date the message was originally created.

property FieldName_Created: string read write

FieldName_Data

Database field used to store the message data. This must be a BLOB field.

property FieldName_Data: string read write

FieldName_EventSinkID

Database field used to store the event sink name.

property FieldName_EventSinkID: string read write

FieldName_MessageInc

Database field used to store the link between the messages and the sessions.

property FieldName_MessageInc: string read write

FieldName_SessionID

Specifies the database field used to store the session ID.

property FieldName_SessionID: string read write

FieldName_SessionsCreated

Database field used to store the time and date the session was originally created.

property FieldName_SessionsCreated: string read write

FieldName_SessionsData

Database field used to store the session data. This must be a BLOB field.

property FieldName_SessionsData: string read write

FieldName_SessionsLastAccessed

Database field used to store the time and date the session was last accessed.

property FieldName_SessionsLastAccessed: string read write

FieldName_SessionsSessionID

Database field used to store the session ID. This must be a GUID field, or a string field of 38 characters.

property FieldName_SessionsSessionID: string read write

FieldName_SourceSessionID

Database field used to store the session ID that raises the event.

property FieldName_SourceSessionID: string read write

GetAllSessionsEventsDataset

Specifies the dataset (data table) used to store the sessions data.

property GetAllSessionsEventsDataset: string read write

GetMessageIncDataset

Dataset (data table) used to getting of the last message identifier autoincremented value.

property GetMessageIncDataset: string read write

GetMessagesDataset

Dataset (data table) used to store the messages data.

property GetMessagesDataset: string read write

GetSessionsEventDataset

Dataset that will be used for getting all data for the given session (by the session identifier).

property GetSessionsEventDataset: string read write

InsertMessagesCommand

Command that will be used to INSERT new messages into the database.

property InsertMessagesCommand: string read write

InsertMessagesPerSessionCommand

Command that will be used to INSERT new messages for given session into the database.

property InsertMessagesPerSessionCommand: string read write

Message    (declared in TROEventRepository)

The message format used to encode event data. This must match the message format used on the client-side TROEventReceiver.

property Message: TROMessage read write

Schema

Sets the TDASchema used to access the message data. This is the schema that must define all used tables and commands.

property Schema: TDASchema read write

SessionManager    (declared in TROEventRepository)

The session manager that maintains the server's user sessions. Remoting SDK events are tied to user sessions. Fired events are stored in the session until delivered to clients, while undelivered events expire and are discarded when the session expires. Therefore, to function, every Event Repository must have a session manager assigned.

property SessionManager: TROCustomSessionManager read write

StoreAsUTCTimeStamp

Store timestamp as UTC in DB

property StoreAsUTCTimeStamp: Boolean read write

Timeout

Timeout. default value = 30 days.

property Timeout: Integer read write

 

constructor Create  override

Standard component constructor

constructor Create(aOwner: TComponent)

Parameters:

  • aOwner: Owner

AddActiveListener  deprecated    (declared in TROEventRepository)

Registers aSessionID as an event sink with an aActiveEventServer instance of the IROActiveEventServer as an event dispatcher.

function AddActiveListener(aSessionID: TGUID; aActiveEventServer: IROActiveEventServer): Boolean

Parameters:

  • aSessionID: Unique session GUID
  • aActiveEventServer: Custom event dispatcher

AddSession (TGUID)  overload    (declared in TROEventRepository)

Performs registration of a given session.

procedure AddSession(aSessionID: TGUID)

Parameters:

  • aSessionID: Session ID

AddSession (TGUID, IROActiveEventServer)  overload    (declared in TROEventRepository)

Performs registration of a given session and event dispatcher.

procedure AddSession(aSessionID: TGUID; aActiveEventServer: IROActiveEventServer)

Parameters:

  • aSessionID: Unique session GUID
  • aActiveEventServer: Custom event dispatcher

AddSession (TGUID, IROActiveEventServer, string)  overload    (declared in TROEventRepository)

Performs registration of a given session and event dispatcher.

procedure AddSession(aSessionID: TGUID; aActiveEventServer: IROActiveEventServer; aEventSinkId: string)

Parameters:

  • aSessionID: Session ID
  • aActiveEventServer: Custom event dispatcher
  • aEventSinkId: Event sink

AddSession (TGUID, string)  overload    (declared in TROEventRepository)

Performs registration of a given session.

procedure AddSession(aSessionID: TGUID; aEventSinkId: string)

Parameters:

  • aSessionID: Session ID
  • aEventSinkId: Event sink

Assign  override

Copies the contents of another, similar object.

procedure Assign(Source: TPersistent)

Parameters:

  • Source: Instance whose properties will be copied

CheckProperties  override

Validates the event repository properties.

procedure CheckProperties

ClearSessionsEvents

Removes all stored sessions

procedure ClearSessionsEvents

DeleteOldMessages

Removes messages which are older then 30 days from the database.

procedure DeleteOldMessages

DeleteUnusedMessages

Removes unused messages from the database.

procedure DeleteUnusedMessages

DoAddSession (TGUID, IROActiveEventServer, string)  protected override

Performs registration of a given session and event dispatcher.

procedure DoAddSession(aSessionID: TGUID; aActiveEventServer: IROActiveEventServer; const aEventSinkId: string)

Parameters:

  • aSessionID: Session ID
  • aActiveEventServer: Custom event dispatcher
  • aEventSinkId: Event sink

DoAddSession (TGUID, string)  protected overload virtual    (declared in TROEventRepository)

Performs registration of a given session.

procedure DoAddSession(aSessionID: TGUID; const aEventSinkId: string)

Parameters:

  • aSessionID: Session ID
  • aEventSinkId: Event sink

DoConvertGUID  protected virtual

Calls to OnConvertGUID (if set) or uses GUIDToString for getting a text representation of given aGUID.

function DoConvertGUID(const aGUID: TGUID): string

Parameters:

  • aGUID: given GUID.

DoGetEventData  protected virtual    (declared in TROEventRepository)

Retrieves data of an event for a given session.

function DoGetEventData(SessionID: TGUID; var TargetStream: TROBinaryMemoryStream): Integer

Parameters:

  • SessionID: Unique session GUID
  • TargetStream: Event data container

DoGetEventData2  protected override

Retrieves data of an event for a given session.

function DoGetEventData2(SessionID: TGUID; out Target: TROEventDataArray; aMaxEvents: Integer; out aEventsLeft: Integer): Integer

Parameters:

  • SessionID: Session ID
  • Target: Array of events
  • aMaxEvents: Max possible count of eventsMax count of events per request
  • aEventsLeft: Rest of events

DoRemoveSession  protected override

Removes a given session from the list of registered sessions.

procedure DoRemoveSession(aSessionID: TGUID; const aEventSinkId: string)

Parameters:

  • aSessionID: Session ID
  • aEventSinkId: Event sink

DoStoreEventData  protected override

Stores event data from a given session.

procedure DoStoreEventData(SourceSessionID: TGUID; Data: TROBinaryMemoryStream; const ExcludeSender: Boolean; const ExcludeSessionList: Boolean; const SessionList: string; const EventSinkId: string)

Parameters:

  • SourceSessionID: Unique session GUID
  • Data: Event data container
  • ExcludeSender: If true, the SourceSessionID will be excluded from the destination list.
  • ExcludeSessionList: If true, the SessionList will be used as an exclusion list, otherwise as an inclusion list.
  • SessionList: Comma delimited list of session GUIDs
  • EventSinkId: Event sink

GetEventData    (declared in TROEventRepository)

Implements IROEventRepository to retrieve data of events for a given session via %#DoGetEventData%.

function GetEventData(SessionID: TGUID; var TargetStream: TROBinaryMemoryStream): Integer

Parameters:

  • SessionID: Session ID
  • TargetStream: Target stream

GetEventData2    (declared in TROEventRepository)

Implements IROEventRepository to retrieve data of events for a given session via %#DoGetEventData2%.

function GetEventData2(SessionID: TGUID; out Target: TROEventDataArray; aMaxEvents: Integer; out aEventsLeft: Integer): Integer

Parameters:

  • SessionID: Session ID
  • Target: Array of events
  • aMaxEvents: Max count of events per request
  • aEventsLeft: Rest of events

GetEventDataEx    (declared in TROEventRepository)

Retrieves data of events for a given session.

procedure GetEventDataEx(SessionID: TGUID; out Target: TROEventDataArray)

Parameters:

  • SessionID: Session ID
  • Target: Array of events

GetEventWriter    (declared in TROEventRepository)

Retrieves an event proxy registered by the generated RODL Files.

function GetEventWriter(const IID: TGUID): IROEventWriter

Parameters:

  • IID: GUID of the required interface

IsSessionPresentinSessionManager  protected    (declared in TROEventRepository)

Checks given session id in SessionManager

function IsSessionPresentinSessionManager(const aSessionID: TGUID): Boolean

Parameters:

  • aSessionID: Session ID.

Notification  protected override

Forwards notification messages to all owned components.

procedure Notification(aComponent: TComponent; Operation: TOperation)

Parameters:

  • aComponent: component
  • Operation: operation

RemoveSession (TGUID)  overload    (declared in TROEventRepository)

Removes a given session from the list of registered sessions.

procedure RemoveSession(aSessionID: TGUID)

Parameters:

  • aSessionID: Session ID

RemoveSession (TGUID, string)  overload    (declared in TROEventRepository)

Removes a given session from the list of registered sessions.

procedure RemoveSession(aSessionID: TGUID; aEventSinkId: string)

Parameters:

  • aSessionID: Session ID
  • aEventSinkId: Event sink

RemoveSessionActiveListener  protected override

Removes session active listener.

procedure RemoveSessionActiveListener(Sender: TObject; aSessionID: TGUID)

Parameters:


ROFreeNotification    (declared in TROComponent)

Forwards notification messages to all owned components.

procedure ROFreeNotification(aComponent: TComponent)

Parameters:

  • aComponent: component

RORemoveFreeNotification    (declared in TROComponent)

Forwards notification messages to all owned components.

procedure RORemoveFreeNotification(aComponent: TComponent)

Parameters:

  • aComponent: component

SendRemoveNotification  protected    (declared in TROComponent)

Forwards notification messages to all owned components.

procedure SendRemoveNotification(aComponent: TComponent)

Parameters:

  • aComponent: component

StoreEventData    (declared in TROEventRepository)

Stores the provided event data in the repository.

procedure StoreEventData(SourceSessionID: TGUID; Data: TROBinaryMemoryStream; const ExcludeSender: Boolean; const ExcludeSessionList: Boolean; const SessionList: string; const EventSinkId: string)

Parameters:

  • SourceSessionID: Session ID
  • Data: Event data container
  • ExcludeSender: If true, the SourceSessionID will be excluded from the destination list.
  • ExcludeSessionList: If true, the SessionList will be used as an exclusion list, otherwise as an inclusion list.
  • SessionList: Comma delimited list of session GUIDs
  • EventSinkId: Event sink

 

OnAfterAddSession    (declared in TROEventRepository)

Fired by AddSession after addition.

property OnAfterAddSession: TROSessionEvent read write
delegate: procedure OnAfterAddSession(Sender: TROEventRepository; const SessionID: TGUID)

OnAfterRemoveSession    (declared in TROEventRepository)

Fired by RemoveSession after removing.

property OnAfterRemoveSession: TROSessionEvent read write
delegate: procedure OnAfterRemoveSession(Sender: TROEventRepository; const SessionID: TGUID)

OnBeforeAddSession    (declared in TROEventRepository)

Fired by AddSession before addition.

property OnBeforeAddSession: TROSessionEvent read write
delegate: procedure OnBeforeAddSession(Sender: TROEventRepository; const SessionID: TGUID)

OnBeforeRemoveSession    (declared in TROEventRepository)

Fired by RemoveSession before removing.

property OnBeforeRemoveSession: TROSessionEvent read write
delegate: procedure OnBeforeRemoveSession(Sender: TROEventRepository; const SessionID: TGUID)

OnConvertGUID

Fires whenever a Session ID is used to access the database, allowing to convert the actual GUIDs used by the Remoting SDK's session management to a different format for storage in a database.

property OnConvertGUID: TDADBEventRepositoryConvertGUIDEvent read write
delegate: function OnConvertGUID(Sender: TDADBEventRepository; const aGUID: TGUID): string