Hi Jens,
thanks for the explanation.
Of course I didn't want to say that my getName should be automatically 
detected as a getter. I was just asking if there was a way to declare it 
manually as const method (getter methods should always be const in c++). 
On the other hand, if there are language-specific annotations, it seems 
there is an improvement that could be done on c++ code generation.

Cheers,
Gianni

On 11/02/2020 00:19, Jens Geyer wrote:
> Hi,
>
> first, your example shows a method whoe name starts with "get". That does
> not imply that this is a getter, it's just a method like any other method.
>
> There is no option in the IDL syntax, since it is language agnostic.
> Available options special to c++ are these
>
> cpp (C++):
>     cob_style:       Generate "Continuation OBject"-style classes.
>     no_client_completion:  Omit calls to completion__() in CobClient class.
>     no_default_operators: Omits generation of default operators ==, != and <
>     templates:       Generate templatized reader/writer methods.
>     pure_enums:      Generate pure enums instead of wrapper classes.
>     include_prefix:  Use full include paths in generated files.
>     moveable_types:  Generate move constructors and assignment operators.
>     no_ostream_operators:  Omit generation of ostream definitions.
>     no_skeleton:     Omits generation of skeleton.
>
> In addition, there's the possibility to specify annotations in the IDL:
>
> - cpp.customostream   ... prevents emitting implementations for operator <<
> - cpp.type ..... override C++ type name
> - final ...... adds noexcept to DTORs
>
>
> So I would say no, not possible. You will have to patch the compiler
> yourself to achive that.
>
>
> -----Urspr√ľngliche Nachricht-----
> From: Gianni Ambrosio
> Sent: Monday, February 10, 2020 4:23 PM
> To: user@thrift.apache.org
> Subject: const method
>
> Dear All,
> is it possible to write a .thrift file so that c++ generared getter
> methods are const?
>
> Example:
>
> myservice.thrift
>
> service MyService {
>      string getName(1: i32 id),
>
> MyService.h
>
> class MyServiceClient : virtual public MyServiceIf {
>      void getName(std::string& _return, const int32_t id) const;
>
>
> Regards,
> Gianni
>

Reply via email to