[fpc-pascal] Improved FPC JSON-RPC support
    Michael Van Canneyt 
    michael at freepascal.org
       
    Tue Dec 28 23:11:42 CET 2021
    
    
  
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.
    
    
More information about the fpc-pascal
mailing list