| Server IP : 209.209.40.120 / Your IP : 216.73.217.112 Web Server : Microsoft-IIS/10.0 System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586 User : NEWWWW$ ( 0) PHP Version : 8.3.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/Program Files/SMSC client .NET/samples/delphi/ |
Upload File : |
//------------------------------------------------------------------------------
// SMSC Relay components sample application
//
// $Header: $
// Copyright (c) 2003-2013 Tops. All rights reserved.
//------------------------------------------------------------------------------
unit EventLog;
interface
uses
SysUtils, Classes, StdCtrls, TypInfo, OleCtrls, OleServer;
type
TEventDirection = (edOutgoing, edIncoming);
TEventLog = class(TObject)
private
FLogWindow: TMemo;
public
constructor Create(LogWindow: TMemo);
procedure AddEvent(Text: string; Details: string; Direction: TEventDirection); overload;
procedure AddEvent(Text: string; Details: string); overload;
procedure AddEvent(Text: string); overload;
procedure AddConnectingEvent;
procedure AddConnectedEvent;
procedure AddConnectionErrorEvent(ErrorCode: integer);
procedure AddDisconnectedEvent(Reason: integer);
procedure AddInitializedEvent;
procedure AddInitializationErrorEvent(ErrorCode: integer);
procedure AddMessageSubmitedEvent(MessageID: string; TimeStamp: TDateTime); overload;
procedure AddMessageSubmitedEvent(MessageID: string); overload;
procedure AddMessageSubmitedEvent(SequenceNumber: integer); overload;
procedure AddMessageSubmitedEvent(TimeStamp: TDateTime); overload;
procedure AddMessageSubmissionErrorEvent(ErrorCode: integer);
procedure AddMessageReceivedEvent(Destination: string; Originator: string;
SMText: string; Encoding: TOleEnum; UserDataHeader: string;
TimeStamp: TDateTime); overload;
procedure AddMessageReceivedEvent(Destination: string; Originator: string;
SMText: string; Encoding: TOleEnum; UserDataHeader: string); overload;
procedure AddSubmitResponseAsyncReceivedEvent(SequenceNumber: integer);
procedure AddStatusReportReceivedEvent(MessageID: string;
MessageTimeStamp: TDateTime; Destination: string; Originator: string;
SMStatus: byte; FailureReason: integer; TimeStamp: TDateTime); overload;
procedure AddStatusReportReceivedEvent(MessageTimeStamp: TDateTime;
Destination: string; SMStatus: byte; FailureReason: integer;
TimeStamp: TDateTime); overload;
procedure AddStatusReportReceivedEvent(MessageTimeStamp: TDateTime;
Destination: string; Originator: string; SMStatus: byte;
FailureReason: integer; TimeStamp: TDateTime); overload;
procedure AddStatusReportReceivedEvent(MessageID: string;
Destination: string; Originator: string; SMStatus: byte;
FailureReason: integer); overload;
end;
implementation
const
Cr = #13;
constructor TEventLog.Create(LogWindow: TMemo);
begin
FLogWindow := LogWindow;
end;
procedure TEventLog.AddEvent(Text: string; Details: string; Direction: TEventDirection);
var
Prefix: string;
Lines: TStringList;
i: integer;
begin
Lines := TStringList.Create;
if Direction = edIncoming then
Prefix := '<<< '
else
Prefix := '>>> ';
FLogWindow.Lines.Add(Prefix + Text);
if Details <> '' then
Lines.Text := Details;
for i := 0 to Lines.Count - 1 do
FLogWindow.Lines.Add(' ' + Lines[i]);
Lines.Free;
end;
procedure TEventLog.AddEvent(Text: string; Details: string);
begin
AddEvent(Text, Details, edOutgoing);
end;
procedure TEventLog.AddEvent(Text: string);
begin
AddEvent(Text, '', edOutgoing);
end;
procedure TEventLog.AddConnectingEvent;
begin
AddEvent('Connecting (this may take a while).');
end;
procedure TEventLog.AddConnectedEvent;
begin
AddEvent('Connected');
end;
procedure TEventLog.AddConnectionErrorEvent(ErrorCode: integer);
begin
AddEvent('Connection Failed. Error: ' + IntToStr(ErrorCode));
end;
procedure TEventLog.AddDisconnectedEvent(Reason: integer);
begin
AddEvent('Disconnected. Reason: ' + IntToStr(Reason));
end;
procedure TEventLog.AddInitializedEvent;
begin
AddEvent('Initialized');
end;
procedure TEventLog.AddInitializationErrorEvent(ErrorCode: integer);
begin
AddEvent('Initialization failed. Error: ' + IntToStr(ErrorCode))
end;
procedure TEventLog.AddMessageSubmitedEvent(MessageID: string; TimeStamp: TDateTime);
var
Details: string;
begin
Details := '';
if MessageID <> '' then
Details := Details + 'MessageID: ' + MessageID + Cr;
if TimeStamp <> 0 then
Details := Details + 'TimeStamp: ' + DateTimeToStr(TimeStamp) + Cr;
Details := TrimRight(Details);
AddEvent('Message submited', Details)
end;
procedure TEventLog.AddMessageSubmitedEvent(SequenceNumber: integer);
var
Details: string;
begin
Details := Details + 'SequenceNumber: ' + IntToStr(SequenceNumber) + Cr;
Details := TrimRight(Details);
AddEvent('Message submited', Details)
end;
procedure TEventLog.AddMessageSubmitedEvent(MessageID: string);
begin
AddMessageSubmitedEvent(MessageID, 0);
end;
procedure TEventLog.AddMessageSubmitedEvent(TimeStamp: TDateTime);
begin
AddMessageSubmitedEvent('', TimeStamp);
end;
procedure TEventLog.AddMessageSubmissionErrorEvent(ErrorCode: integer);
begin
AddEvent('Message submit failed. Error: ' + IntToStr(ErrorCode));
end;
procedure TEventLog.AddMessageReceivedEvent(Destination: string;
Originator: string; SMText: string; Encoding: TOleEnum;
UserDataHeader: string; TimeStamp: TDateTime);
var
Details: string;
begin
Details := '';
Details := Details + 'Destination: ' + Destination + Cr;
Details := Details + 'Originator: ' + Originator + Cr;
Details := Details + 'SMText: ' + SMText + Cr;
Details := Details + 'Encoding: ' +
GetEnumName(TypeInfo(TOleEnum), integer(Encoding)) + Cr;
if UserDataHeader <> '' then
Details := Details + 'UDH: ' + UserDataHeader + Cr;
if TimeStamp <> 0 then
Details := Details + 'TimeStamp: ' + DateTimeToStr(TimeStamp) + Cr;
Details := TrimRight(Details);
AddEvent('Message received', Details, edIncoming);
end;
procedure TEventLog.AddSubmitResponseAsyncReceivedEvent(SequenceNumber: integer);
var
Details: string;
begin
Details := Details + 'SequenceNumber: ' + IntToStr(SequenceNumber) + Cr;
AddEvent('SubmitResponseAsyncReceived received', Details);
end;
procedure TEventLog.AddMessageReceivedEvent(Destination: string;
Originator: string; SMText: string; Encoding: TOleEnum;
UserDataHeader: string);
begin
AddMessageReceivedEvent(Destination, Originator, SMText, Encoding, UserDataHeader, 0);
end;
procedure TEventLog.AddStatusReportReceivedEvent(MessageID: string;
MessageTimeStamp: TDateTime; Destination: string; Originator: string;
SMStatus: byte; FailureReason: integer; TimeStamp: TDateTime);
var
Details: string;
begin
Details := '';
if MessageID <> '' then
Details := Details + 'MessageID: ' + MessageID + Cr;
if MessageTimeStamp <> 0 then
Details := Details + 'MessageTimeStamp: ' + DateTimeToStr(MessageTimeStamp) + Cr;
Details := Details + 'Destination: ' + Destination + Cr;
if Originator <> '' then
Details := Details + 'Originator: ' + Originator + Cr;
Details := Details + 'SMStatus: ' + IntToStr(SMStatus) + Cr;
Details := Details + 'FailureReason: ' + IntToStr(FailureReason) + Cr;
if TimeStamp <> 0 then
Details := Details + 'TimeStamp: ' + DateTimeToStr(TimeStamp) + Cr;
Details := TrimRight(Details);
AddEvent('Status report received', Details, edIncoming);
end;
procedure TEventLog.AddStatusReportReceivedEvent(MessageTimeStamp: TDateTime;
Destination: string; SMStatus: byte; FailureReason: integer;
TimeStamp: TDateTime);
begin
AddStatusReportReceivedEvent('', MessageTimeStamp, Destination, '', SMStatus,
FailureReason, TimeStamp);
end;
procedure TEventLog.AddStatusReportReceivedEvent(MessageTimeStamp: TDateTime;
Destination: string; Originator: string; SMStatus: byte;
FailureReason: integer; TimeStamp: TDateTime);
begin
AddStatusReportReceivedEvent('', MessageTimeStamp, Destination, Originator,
SMStatus, FailureReason, TimeStamp);
end;
procedure TEventLog.AddStatusReportReceivedEvent(MessageID: string;
Destination: string; Originator: string; SMStatus: byte; FailureReason: integer);
begin
AddStatusReportReceivedEvent(MessageID, 0, Destination, Originator, SMStatus,
FailureReason, 0);
end;
end.