[fpc-pascal] Improved FPC JSON-RPC support

Don Duvall shout at tazdij.com
Tue Dec 28 23:14:16 CET 2021


Has any performance tests been ran, to see what the runtime impact of 
utilizing RTTI is? Hopefully negligent in the grand scheme...

Thanks,
Don

On 12/28/2021 2:11 PM, Michael Van Canneyt via fpc-pascal wrote:
>
>
> On Tue, 28 Dec 2021, Graeme Geldenhuys via fpc-pascal wrote:
>
>> On 2021-12-28 15:25, Michael Van Canneyt via fpc-pascal wrote:
>>>
>>> Thanks to the magic of RTTI and Invoke(), creating a JSON-RPC server 
>>> has
>>> just become significantly easier !
>>
>> That's pretty neat - nicely done Michael.
>
> We do our best.
>
>>> // Create a class that implements the interface
>>> Type
>>>    TIntf2Impl = class(TInterfacedObject, IMyOtherInterface)
>>>    public
>>>      function Echo(args: TStringArray): String;
>>>      function SayHello: string;
>>>    end;
>>
>> ...snip...
>>
>>> // Register the class using an interface factory:
>>> Function GetMyOtherInterface(Const aName : string) : IInterface;
>>> begin
>>>    Result:=TIntf2Impl.Create as IInterface;
>>> end;
>>
>>
>> Slightly off topic, and my Object Pascal is getting a bit rusty as 
>> the years go by. <grin> ;-) In your factory above, is the "as 
>> IInterface" part needed. Can't the FPC compiler automatically cast 
>> the return type based on the function return type, and the fact that 
>> the compiler should know that TIntf2Impl type implements 
>> TInterfacedObject?
>
> No, theoretically it probably could, but type inference is not 
> implemented in Pascal.
>
> Michael.
>
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal


More information about the fpc-pascal mailing list