[ 
https://issues.apache.org/jira/browse/THRIFT-1712?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14026423#comment-14026423
 ] 

Martin Vogt commented on THRIFT-1712:
-------------------------------------

Hello,

I have already ported this patch to the latest cpp generator changes,
the current one would not apply cleanly.

But what would be nice, if the same can be accomplished with typeid,
so there is no need to generate the classname as ASCII.

But currently I have not tested it. 
Maybe I give it a try this weekend.

regards,

Martin


> Add TBase class for c++
> -----------------------
>
>                 Key: THRIFT-1712
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1712
>             Project: Thrift
>          Issue Type: New Feature
>          Components: C++ - Compiler
>    Affects Versions: 0.8
>            Reporter: Martin Vogt
>            Assignee: Ben Craig
>            Priority: Minor
>              Labels: base, c++, class
>         Attachments: 010_base_struct_gen_140126v1.patch, 
> 010_base_struct_gen_140302v1.patch, 011_base_struct_rest_140126v1.patch, 
> 011_base_struct_rest_140302v1.patch
>
>
> The generated c++ classes for struct's do not have a common base class.
> The patch adds a "base_struct" option to the compiler:
> - thrift --gen cpp:base_struct
> this will use a TBaseStruct in the thrift installation.
> Another option allows to replace the baseclass with an arbitrary one:
> -thrift --gen cpp:base_struct=MyBase,base_struct_inc=\\</path/MyBase.h\\>\n"
> With this it's possible to extend the TBaseStruct class in the thrift 
> installation.
> I like to use this TBase class in QT, as a signal, for example:
> {quote}
> signals:
>        void update(const TBase& tBase);
> {quote}
> And in the receiver slot I then can check which kind of message was send:
> {quote}
>     // compare static pointers
>     if (tBase.ascii_fingerprint == User::ascii_fingerprint) \{
>             User* user=(User*)&tBase;
>             processUserMessage(user);
>    \}
> {quote}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to