[fpc-pascal] HTTPRoute.pas and TRouteObject

Kevin Jesshope kevinofoz at gmail.com
Sun Feb 11 07:24:27 CET 2018


Thanks Michael,

I did consider putting everything in the HandleRequest  but I prefer
the virtual constructor.
Regards

Kevin Jesshope - In Touch Computer Support
Supporting Aberfoyle Hub R-7 and Happy Valley Primary Schools


On Sat, Feb 10, 2018 at 6:06 PM, Michael Van Canneyt
<michael at freepascal.org> wrote:
>
>
> On Sat, 10 Feb 2018, Kevin Jesshope wrote:
>
>> Hi,
>>
>> Working on a standalone web project using the new routing. I have a
>> class descended  from TRouteObject.
>>
>> My problem is that the constructor cannot be marked override so it is
>> not called when the class is created by HTTPRouter.
>>
>> Adding an empty virtual TRouteObject.create resolves this.
>
>
> I have added a virtual constructor in rev. 38180
>
>>
>> Is this a bad idea? Am I missing something?
>
>
> It's not a bad idea, but IMHO unnecessary. The object is created,
> HandlRequest is called and then destroyed. If you need the constructor to
> create extra things,  you can just as well do this in HandleRequest.
>
> To separate the 'initialization' from the actual handling of the request
> you can do
>
> Procedure TMyRouteObject.HandleRequest(aRequest : TRequest; aResponse :
> TResponse);
>
> begin
>   InitObject;
>   // Do whatever;
> end;
>
> and in the destructor you then clean up. If you want to create a hierarchy
> of objects, yoy make InitObject virtual, override it in descendents and
> you're all set;
>
> But I've added a virtual constructor to TRouteObject, save you some hassle
> ;)
>
> Michael.
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal


More information about the fpc-pascal mailing list