- Recompilación de RO para poner RemObjects_Core_D10 como paquete de runtime/designtime. git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.RemObjects@3 b6239004-a887-0f4b-9937-50029ccdca16
370 lines
11 KiB
ObjectPascal
370 lines
11 KiB
ObjectPascal
unit SuperTCPChannelChatLibrary_Intf;
|
|
|
|
{----------------------------------------------------------------------------}
|
|
{ This unit was automatically generated by the RemObjects SDK after reading }
|
|
{ the RODL file associated with this project . }
|
|
{ }
|
|
{ Do not modify this unit manually, or your changes will be lost when this }
|
|
{ unit is regenerated the next time you compile the project. }
|
|
{----------------------------------------------------------------------------}
|
|
|
|
interface
|
|
|
|
uses
|
|
{vcl:} Classes, TypInfo,
|
|
{RemObjects:} uROClasses, uROClient, uROTypes, uROClientIntf;
|
|
|
|
const
|
|
{ Library ID }
|
|
LibraryUID = '{8A53A750-1F2B-4060-AAC0-77B4FC071D2D}';
|
|
|
|
{ Service Interface ID's }
|
|
IChatServerService_IID : TGUID = '{6CC2111F-DDD6-4CF5-AB57-2CD98EF4FF5B}';
|
|
ILoginService_IID : TGUID = '{3D19AEB1-6D2F-4142-B937-B97367133A2F}';
|
|
|
|
{ Event ID's }
|
|
EID_ChatEvents = 'ChatEvents';
|
|
|
|
type
|
|
{ Forward declarations }
|
|
IChatServerService = interface;
|
|
ILoginService = interface;
|
|
|
|
IChatEvents = interface;
|
|
|
|
|
|
{ IChatServerService }
|
|
IChatServerService = interface
|
|
['{6CC2111F-DDD6-4CF5-AB57-2CD98EF4FF5B}']
|
|
procedure TalkPrivate(const TargetNickname: String; const Message: String);
|
|
procedure Talk(const Message: String);
|
|
end;
|
|
|
|
{ CoChatServerService }
|
|
CoChatServerService = class
|
|
class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IChatServerService;
|
|
end;
|
|
|
|
{ TChatServerService_Proxy }
|
|
TChatServerService_Proxy = class(TROProxy, IChatServerService)
|
|
protected
|
|
function __GetInterfaceName:string; override;
|
|
|
|
procedure TalkPrivate(const TargetNickname: String; const Message: String);
|
|
procedure Talk(const Message: String);
|
|
end;
|
|
|
|
{ ILoginService }
|
|
ILoginService = interface
|
|
['{3D19AEB1-6D2F-4142-B937-B97367133A2F}']
|
|
procedure Login(const Nickname: String);
|
|
procedure Logout;
|
|
end;
|
|
|
|
{ CoLoginService }
|
|
CoLoginService = class
|
|
class function Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): ILoginService;
|
|
end;
|
|
|
|
{ TLoginService_Proxy }
|
|
TLoginService_Proxy = class(TROProxy, ILoginService)
|
|
protected
|
|
function __GetInterfaceName:string; override;
|
|
|
|
procedure Login(const Nickname: String);
|
|
procedure Logout;
|
|
end;
|
|
|
|
{ IChatEvents }
|
|
IChatEvents = interface
|
|
['{C456D3B2-E44A-4FA6-8F71-3838D7F7525B}']
|
|
procedure Message(const From: String; const Target: String; const Message: String);
|
|
procedure UserLogin(const Nickname: String);
|
|
procedure UserLogout(const Nickname: String);
|
|
procedure ShutdownServer;
|
|
end;
|
|
|
|
{ IChatEvents_Writer }
|
|
IChatEvents_Writer = interface(IROEventsWriter)
|
|
['{C456D3B2-E44A-4FA6-8F71-3838D7F7525B}']
|
|
procedure Message(const __Sender : TGUID; const From: String; const Target: String; const Message: String);
|
|
procedure UserLogin(const __Sender : TGUID; const Nickname: String);
|
|
procedure UserLogout(const __Sender : TGUID; const Nickname: String);
|
|
procedure ShutdownServer(const __Sender : TGUID);
|
|
end;
|
|
|
|
implementation
|
|
|
|
uses
|
|
{vcl:} SysUtils,
|
|
{RemObjects:} uROEventRepository, uRORes;
|
|
|
|
{ CoChatServerService }
|
|
|
|
class function CoChatServerService.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): IChatServerService;
|
|
begin
|
|
result := TChatServerService_Proxy.Create(aMessage, aTransportChannel);
|
|
end;
|
|
|
|
{ TChatServerService_Proxy }
|
|
|
|
function TChatServerService_Proxy.__GetInterfaceName:string;
|
|
begin
|
|
result := 'ChatServerService';
|
|
end;
|
|
|
|
procedure TChatServerService_Proxy.TalkPrivate(const TargetNickname: String; const Message: String);
|
|
begin
|
|
try
|
|
__Message.InitializeRequestMessage(__TransportChannel, 'SuperTCPChannelChatLibrary', __InterfaceName, 'TalkPrivate');
|
|
__Message.Write('TargetNickname', TypeInfo(String), TargetNickname, []);
|
|
__Message.Write('Message', TypeInfo(String), Message, []);
|
|
__Message.Finalize;
|
|
|
|
__TransportChannel.Dispatch(__Message);
|
|
|
|
finally
|
|
__Message.FreeStream;
|
|
end
|
|
end;
|
|
|
|
procedure TChatServerService_Proxy.Talk(const Message: String);
|
|
begin
|
|
try
|
|
__Message.InitializeRequestMessage(__TransportChannel, 'SuperTCPChannelChatLibrary', __InterfaceName, 'Talk');
|
|
__Message.Write('Message', TypeInfo(String), Message, []);
|
|
__Message.Finalize;
|
|
|
|
__TransportChannel.Dispatch(__Message);
|
|
|
|
finally
|
|
__Message.FreeStream;
|
|
end
|
|
end;
|
|
|
|
{ CoLoginService }
|
|
|
|
class function CoLoginService.Create(const aMessage: IROMessage; aTransportChannel: IROTransportChannel): ILoginService;
|
|
begin
|
|
result := TLoginService_Proxy.Create(aMessage, aTransportChannel);
|
|
end;
|
|
|
|
{ TLoginService_Proxy }
|
|
|
|
function TLoginService_Proxy.__GetInterfaceName:string;
|
|
begin
|
|
result := 'LoginService';
|
|
end;
|
|
|
|
procedure TLoginService_Proxy.Login(const Nickname: String);
|
|
begin
|
|
try
|
|
__Message.InitializeRequestMessage(__TransportChannel, 'SuperTCPChannelChatLibrary', __InterfaceName, 'Login');
|
|
__Message.Write('Nickname', TypeInfo(String), Nickname, []);
|
|
__Message.Finalize;
|
|
|
|
__TransportChannel.Dispatch(__Message);
|
|
|
|
finally
|
|
__Message.FreeStream;
|
|
end
|
|
end;
|
|
|
|
procedure TLoginService_Proxy.Logout;
|
|
begin
|
|
try
|
|
__Message.InitializeRequestMessage(__TransportChannel, 'SuperTCPChannelChatLibrary', __InterfaceName, 'Logout');
|
|
__Message.Finalize;
|
|
|
|
__TransportChannel.Dispatch(__Message);
|
|
|
|
finally
|
|
__Message.FreeStream;
|
|
end
|
|
end;
|
|
|
|
type
|
|
{ TChatEvents_Writer }
|
|
TChatEvents_Writer = class(TROEventWriter, IChatEvents_Writer)
|
|
protected
|
|
procedure Message(const __Sender : TGUID; const From: String; const Target: String; const Message: String);
|
|
procedure UserLogin(const __Sender : TGUID; const Nickname: String);
|
|
procedure UserLogout(const __Sender : TGUID; const Nickname: String);
|
|
procedure ShutdownServer(const __Sender : TGUID);
|
|
end;
|
|
|
|
procedure TChatEvents_Writer.Message(const __Sender : TGUID; const From: String; const Target: String; const Message: String);
|
|
var __eventdata : Binary;
|
|
begin
|
|
__eventdata := Binary.Create;
|
|
try
|
|
__Message.InitializeEventMessage(NIL, 'SuperTCPChannelChatLibrary', EID_ChatEvents, 'Message');
|
|
__Message.Write('From', TypeInfo(String), From, []);
|
|
__Message.Write('Target', TypeInfo(String), Target, []);
|
|
__Message.Write('Message', TypeInfo(String), Message, []);
|
|
__Message.Finalize;
|
|
|
|
__Message.WriteToStream(__eventdata);
|
|
|
|
Repository.StoreEventData(__Sender, __eventdata, ExcludeSender, ExcludeSessionList, SessionList.CommaText);
|
|
except
|
|
__eventdata.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TChatEvents_Writer.UserLogin(const __Sender : TGUID; const Nickname: String);
|
|
var __eventdata : Binary;
|
|
begin
|
|
__eventdata := Binary.Create;
|
|
try
|
|
__Message.InitializeEventMessage(NIL, 'SuperTCPChannelChatLibrary', EID_ChatEvents, 'UserLogin');
|
|
__Message.Write('Nickname', TypeInfo(String), Nickname, []);
|
|
__Message.Finalize;
|
|
|
|
__Message.WriteToStream(__eventdata);
|
|
|
|
Repository.StoreEventData(__Sender, __eventdata, ExcludeSender, ExcludeSessionList, SessionList.CommaText);
|
|
except
|
|
__eventdata.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TChatEvents_Writer.UserLogout(const __Sender : TGUID; const Nickname: String);
|
|
var __eventdata : Binary;
|
|
begin
|
|
__eventdata := Binary.Create;
|
|
try
|
|
__Message.InitializeEventMessage(NIL, 'SuperTCPChannelChatLibrary', EID_ChatEvents, 'UserLogout');
|
|
__Message.Write('Nickname', TypeInfo(String), Nickname, []);
|
|
__Message.Finalize;
|
|
|
|
__Message.WriteToStream(__eventdata);
|
|
|
|
Repository.StoreEventData(__Sender, __eventdata, ExcludeSender, ExcludeSessionList, SessionList.CommaText);
|
|
except
|
|
__eventdata.Free;
|
|
end;
|
|
end;
|
|
|
|
procedure TChatEvents_Writer.ShutdownServer(const __Sender : TGUID);
|
|
var __eventdata : Binary;
|
|
begin
|
|
__eventdata := Binary.Create;
|
|
try
|
|
__Message.InitializeEventMessage(NIL, 'SuperTCPChannelChatLibrary', EID_ChatEvents, 'ShutdownServer');
|
|
__Message.Finalize;
|
|
|
|
__Message.WriteToStream(__eventdata);
|
|
|
|
Repository.StoreEventData(__Sender, __eventdata, ExcludeSender, ExcludeSessionList, SessionList.CommaText);
|
|
except
|
|
__eventdata.Free;
|
|
end;
|
|
end;
|
|
|
|
type
|
|
{ TChatEvents_Invoker }
|
|
TChatEvents_Invoker = class(TROEventInvoker)
|
|
published
|
|
procedure Invoke_Message(__EventReceiver : TROEventReceiver; const __Message : IROMessage; const __Target : IUnknown);
|
|
procedure Invoke_UserLogin(__EventReceiver : TROEventReceiver; const __Message : IROMessage; const __Target : IUnknown);
|
|
procedure Invoke_UserLogout(__EventReceiver : TROEventReceiver; const __Message : IROMessage; const __Target : IUnknown);
|
|
procedure Invoke_ShutdownServer(__EventReceiver : TROEventReceiver; const __Message : IROMessage; const __Target : IUnknown);
|
|
end;
|
|
|
|
procedure TChatEvents_Invoker.Invoke_Message(__EventReceiver : TROEventReceiver; const __Message : IROMessage; const __Target : IUnknown);
|
|
var
|
|
__lObjectDisposer: TROObjectDisposer;
|
|
From: String;
|
|
Target: String;
|
|
Message: String;
|
|
begin
|
|
|
|
try
|
|
__Message.Read('From', TypeInfo(String), From, []);
|
|
__Message.Read('Target', TypeInfo(String), Target, []);
|
|
__Message.Read('Message', TypeInfo(String), Message, []);
|
|
|
|
(__Target as IChatEvents).Message(From, Target, Message);
|
|
|
|
finally
|
|
__lObjectDisposer:= TROObjectDisposer.Create(__EventReceiver);
|
|
try
|
|
finally
|
|
__lObjectDisposer.Free();
|
|
end
|
|
end
|
|
end;
|
|
|
|
procedure TChatEvents_Invoker.Invoke_UserLogin(__EventReceiver : TROEventReceiver; const __Message : IROMessage; const __Target : IUnknown);
|
|
var
|
|
__lObjectDisposer: TROObjectDisposer;
|
|
Nickname: String;
|
|
begin
|
|
|
|
try
|
|
__Message.Read('Nickname', TypeInfo(String), Nickname, []);
|
|
|
|
(__Target as IChatEvents).UserLogin(Nickname);
|
|
|
|
finally
|
|
__lObjectDisposer:= TROObjectDisposer.Create(__EventReceiver);
|
|
try
|
|
finally
|
|
__lObjectDisposer.Free();
|
|
end
|
|
end
|
|
end;
|
|
|
|
procedure TChatEvents_Invoker.Invoke_UserLogout(__EventReceiver : TROEventReceiver; const __Message : IROMessage; const __Target : IUnknown);
|
|
var
|
|
__lObjectDisposer: TROObjectDisposer;
|
|
Nickname: String;
|
|
begin
|
|
|
|
try
|
|
__Message.Read('Nickname', TypeInfo(String), Nickname, []);
|
|
|
|
(__Target as IChatEvents).UserLogout(Nickname);
|
|
|
|
finally
|
|
__lObjectDisposer:= TROObjectDisposer.Create(__EventReceiver);
|
|
try
|
|
finally
|
|
__lObjectDisposer.Free();
|
|
end
|
|
end
|
|
end;
|
|
|
|
procedure TChatEvents_Invoker.Invoke_ShutdownServer(__EventReceiver : TROEventReceiver; const __Message : IROMessage; const __Target : IUnknown);
|
|
var
|
|
__lObjectDisposer: TROObjectDisposer;
|
|
begin
|
|
try
|
|
|
|
(__Target as IChatEvents).ShutdownServer();
|
|
|
|
finally
|
|
__lObjectDisposer:= TROObjectDisposer.Create(__EventReceiver);
|
|
try
|
|
finally
|
|
__lObjectDisposer.Free();
|
|
end
|
|
end
|
|
end;
|
|
|
|
initialization
|
|
RegisterProxyClass(IChatServerService_IID, TChatServerService_Proxy);
|
|
RegisterProxyClass(ILoginService_IID, TLoginService_Proxy);
|
|
|
|
RegisterEventWriterClass(IChatEvents_Writer, TChatEvents_Writer);
|
|
RegisterEventInvokerClass(EID_ChatEvents, TChatEvents_Invoker);
|
|
|
|
finalization
|
|
UnregisterProxyClass(IChatServerService_IID);
|
|
UnregisterProxyClass(ILoginService_IID);
|
|
|
|
UnregisterEventWriterClass(IChatEvents_Writer);
|
|
UnregisterEventInvokerClass(EID_ChatEvents);
|
|
end.
|