138 lines
3.2 KiB
ObjectPascal
138 lines
3.2 KiB
ObjectPascal
/// some common definitions shared by both client and server side
|
|
unit Project20Interface;
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes,
|
|
SynCommons,
|
|
mORMot;
|
|
|
|
type
|
|
TDTOAirport = class(TCollectionItem)
|
|
private
|
|
FDCS: RawUTF8;
|
|
FLocation: RawUTF8;
|
|
FBHS: RawUTF8;
|
|
FGate: TRawUTF8DynArray;
|
|
FTerminal: TRawUTF8DynArray;
|
|
published
|
|
property Location: RawUTF8 read FLocation write FLocation;
|
|
property Terminal: TRawUTF8DynArray read FTerminal write FTerminal;
|
|
property Gate: TRawUTF8DynArray read FGate write FGate;
|
|
property BHS: RawUTF8 read FBHS write FBHS;
|
|
property DCS: RawUTF8 read FDCS write FDCS;
|
|
end;
|
|
|
|
TDTOAirports = class(TInterfacedCollection)
|
|
private
|
|
function GetCollItem(aIndex: Integer): TDTOAirport;
|
|
protected
|
|
class function GetClass: TCollectionItemClass; override;
|
|
public
|
|
function Add: TDTOAirport;
|
|
property Item[aIndex: Integer]: TDTOAirport read GetCollItem; default;
|
|
end;
|
|
|
|
TDTOAirline = class(TCollectionItem)
|
|
private
|
|
FSQ: RawUTF8;
|
|
FET: RawUTF8;
|
|
FQR: TRawUTF8DynArray;
|
|
FCX: TRawUTF8DynArray;
|
|
published
|
|
property CX: TRawUTF8DynArray read FCX write FCX;
|
|
property QR: TRawUTF8DynArray read FQR write FQR;
|
|
property ET: RawUTF8 read FET write FET;
|
|
property SQ: RawUTF8 read FSQ write FSQ;
|
|
end;
|
|
|
|
TDTOAirlines = class(TInterfacedCollection)
|
|
private
|
|
function GetCollItem(aIndex: Integer): TDTOAirline;
|
|
protected
|
|
class function GetClass: TCollectionItemClass; override;
|
|
public
|
|
function Add: TDTOAirline;
|
|
property Item[aIndex: Integer]: TDTOAirline read GetCollItem; default;
|
|
end;
|
|
|
|
TDTOAirportDefinition = class(TPersistentWithCustomCreate)
|
|
private
|
|
fAirline: TDTOAirlines;
|
|
fAirport: TDTOAirports;
|
|
fGroundHandler: TRawUTF8DynArray;
|
|
public
|
|
constructor Create; override;
|
|
destructor Destroy; override;
|
|
published
|
|
property Airport: TDTOAirports read fAirport;
|
|
property Airline: TDTOAirlines read fAirline;
|
|
property GroundHandler: TRawUTF8DynArray read fGroundHandler write fGroundHandler;
|
|
end;
|
|
|
|
IAirportService = interface(IInvokable)
|
|
['{4A613FCE-3B0D-4582-97C5-4244B06C2006}']
|
|
procedure GetAirportDefinition(const AirPortID: integer; out Definition: TDTOAirportDefinition);
|
|
end;
|
|
|
|
const
|
|
ROOT_NAME = 'project20';
|
|
PORT_NAME = '888';
|
|
|
|
implementation
|
|
|
|
|
|
{ TDTOAirports }
|
|
|
|
function TDTOAirports.Add: TDTOAirport;
|
|
begin
|
|
result := TDTOAirport(inherited Add);
|
|
end;
|
|
|
|
class function TDTOAirports.GetClass: TCollectionItemClass;
|
|
begin
|
|
result := TDTOAirport;
|
|
end;
|
|
|
|
function TDTOAirports.GetCollItem(aIndex: Integer): TDTOAirport;
|
|
begin
|
|
result := TDTOAirport(GetItem(aIndex));
|
|
end;
|
|
|
|
|
|
{ TDTOAirlines }
|
|
|
|
function TDTOAirlines.Add: TDTOAirline;
|
|
begin
|
|
result := TDTOAirline(inherited Add);
|
|
end;
|
|
|
|
class function TDTOAirlines.GetClass: TCollectionItemClass;
|
|
begin
|
|
result := TDTOAirline;
|
|
end;
|
|
|
|
function TDTOAirlines.GetCollItem(aIndex: Integer): TDTOAirline;
|
|
begin
|
|
result := TDTOAirline(GetItem(aIndex));
|
|
end;
|
|
|
|
|
|
{ TDTOAirportDefinition }
|
|
|
|
constructor TDTOAirportDefinition.Create;
|
|
begin
|
|
fAirport := TDTOAirports.Create;
|
|
fAirline := TDTOAirlines.Create;
|
|
end;
|
|
|
|
destructor TDTOAirportDefinition.Destroy;
|
|
begin
|
|
fAirline.Free;
|
|
fAirport.Free;
|
|
inherited;
|
|
end;
|
|
|
|
end.
|