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