source upload
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
/// SOA interface methods definition to circumvent FPC missing RTTI
|
||||
// - generated at 2016-07-27 09:30:40
|
||||
unit mORMotRESTFPCInterfaces;
|
||||
|
||||
{
|
||||
WARNING:
|
||||
This unit has been generated by a mORMot 1.18.2797 server.
|
||||
Any manual modification of this file may be lost after regeneration.
|
||||
|
||||
Synopse mORMot framework. Copyright (C) 2020 Arnaud Bouchez
|
||||
Synopse Informatique - https://synopse.info
|
||||
|
||||
This unit is released under a MPL/GPL/LGPL tri-license,
|
||||
and therefore may be freely included in any application.
|
||||
|
||||
This unit is intended to work on older FPC compilers, which lack of RTTI
|
||||
for interfaces - see http://bugs.freepascal.org/view.php?id=26774
|
||||
|
||||
USAGE:
|
||||
|
||||
Add this mORMotRESTFPCInterfaces unit to your uses clause, so that the following
|
||||
interfaces would be defined as expected by mORMot under FPC:
|
||||
|
||||
- IRestMethods
|
||||
|
||||
}
|
||||
|
||||
interface
|
||||
|
||||
{$I Synopse.inc} // needed for setting HASINTERFACERTTI and proper FPC modes
|
||||
|
||||
uses
|
||||
SysUtils,
|
||||
Classes,
|
||||
SynCommons,
|
||||
SynLog,
|
||||
mORMot,
|
||||
RestMethodsInterfaceUnit;
|
||||
|
||||
|
||||
implementation
|
||||
|
||||
{$ifndef HASINTERFACERTTI} // circumvent old FPC bug of missing RTTI
|
||||
|
||||
{ TInterfaceFactoryDefinition }
|
||||
|
||||
type
|
||||
/// define and manage missing interface RTTI for the following interfaces:
|
||||
// - IRestMethods
|
||||
TInterfaceFactoryDefinition = class(TInterfaceFactoryGenerated)
|
||||
protected
|
||||
procedure AddMethodsFromTypeInfo(aInterface: PTypeInfo); override;
|
||||
end;
|
||||
|
||||
procedure TInterfaceFactoryDefinition.AddMethodsFromTypeInfo(aInterface: PTypeInfo);
|
||||
begin
|
||||
if aInterface=TypeInfo(IRestMethods) then begin
|
||||
AddMethod('HelloWorld',[
|
||||
ord(smdresult),'Result',TypeInfo(AnsiString)]);
|
||||
AddMethod('Sum',[
|
||||
ord(smdconst),'val1',TypeInfo(Double),
|
||||
ord(smdconst),'val2',TypeInfo(Double),
|
||||
ord(smdresult),'Result',TypeInfo(Double)]);
|
||||
AddMethod('GetCustomRecord',[
|
||||
ord(smdresult),'Result',TypeInfo(rCustomRecord)]);
|
||||
AddMethod('SendCustomRecord',[
|
||||
ord(smdconst),'CustomResult',TypeInfo(rCustomRecord),
|
||||
ord(smdresult),'Result',TypeInfo(Boolean)]);
|
||||
AddMethod('SendMultipleCustomRecords',[
|
||||
ord(smdconst),'CustomResult',TypeInfo(rCustomRecord),
|
||||
ord(smdconst),'CustomComplicatedRecord',TypeInfo(rCustomComplicatedRecord),
|
||||
ord(smdresult),'Result',TypeInfo(Boolean)]);
|
||||
AddMethod('GetMethodCustomResult',[
|
||||
ord(smdresult),'Result',TypeInfo(TServiceCustomAnswer)]);
|
||||
exit;
|
||||
end;
|
||||
end;
|
||||
|
||||
initialization
|
||||
TInterfaceFactoryDefinition.RegisterInterface(TypeInfo(IRestMethods));
|
||||
|
||||
{$endif HASINTERFACERTTI}
|
||||
end.
|
Reference in New Issue
Block a user