[ 
https://issues.apache.org/jira/browse/THRIFT-1712?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Martin Vogt updated THRIFT-1712:
--------------------------------

    Description: 
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}

  was:
The generated c++ classes for struct's does not have a common base class.

The patch adds a "base_struct" option to the compiler:

- thrift --gen cpp:base_base

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);

And in the receiver slot I then can check which kind of message was send:
    // compare static pointers
    if (tBase.ascii_fingerprint == User::ascii_fingerprint) {
            User* user=(User*)&tBase;
            processUserMessage(user);
   }

{quote}


> 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: base_struct_131224v4.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.1.5#6160)

Reply via email to