Understood but this is not what I wanted in the first place.
Does someone has any idea about what makes it difficult to implement this?
Also, is there a clever way to have the same behaviour?
Basically, here I want to avoid copy pasting same fields over and over
again (makes code less maintainable).
Any ideas are welcome.
On Thursday, October 20, 2016 at 1:33:04 AM UTC+5:30, Feng Xiao wrote:
>
> I meant something like:
>
> message Header {
> string account = 1;
> string symbol = 1;
> }
>
> message Msg1 {
> Header header = 1;
> ...
> }
>
> message Msg2 {
> Header header = 1;
> ...
> }
>
> On Wed, Oct 19, 2016 at 12:42 PM, Saurabh Kumar <[email protected]
> <javascript:>> wrote:
>
>> Thanks for the reply. What exactly do you mean by common header?
>>
>> On Thu, 20 Oct 2016 at 1:06 AM, Feng Xiao <[email protected]
>> <javascript:>> wrote:
>>
>>>
>>>
>>> On Wed, Oct 19, 2016 at 4:03 AM, Saurabh Kumar <[email protected]
>>> <javascript:>> wrote:
>>>
>>>> Hi,
>>>>
>>>> This question is regarding inheritance in protobuf C++ library. I will
>>>> explain what I am looking for with a concrete example.
>>>>
>>>> I have this message definition:
>>>>
>>>> message MSG1
>>>> {
>>>> required string account = 0;
>>>> required string symbol = 1;
>>>> }
>>>>
>>>> Now I want to extend this message and define a new message like this:
>>>> message MSG2
>>>> {
>>>> required string account = 0;
>>>> required string symbol = 1;
>>>> required int32 id = 2;
>>>> }
>>>>
>>>> You will notice that first two fields of MSG2 are exactly same as MSG1
>>>> (they are intended to be like that). But here I had to copy paste the
>>>> common fields again.
>>>> Can I do something like this?
>>>>
>>>> message MSG2 extends MSG1
>>>> {
>>>> required int32 id = 2;
>>>> }
>>>>
>>>> I have already thought about using it like:
>>>> message MSG2
>>>> {
>>>> required MSG1 msg1 = 0;
>>>> required int32 id = 2;
>>>> }
>>>> But this is not really what I want.
>>>>
>>>> What's the best way to achieve this?
>>>>
>>> Protobuf doesn't support inheritance. Having a common header and using
>>> composition is the best solution.
>>>
>>>
>>>>
>>>> Thanks,
>>>> Saurabh
>>>>
>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Protocol Buffers" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected] <javascript:>.
>>>> To post to this group, send email to [email protected]
>>>> <javascript:>.
>>>> Visit this group at https://groups.google.com/group/protobuf.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>> --
>> You received this message because you are subscribed to the Google Groups
>> "Protocol Buffers" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected] <javascript:>.
>> To post to this group, send email to [email protected]
>> <javascript:>.
>> Visit this group at https://groups.google.com/group/protobuf.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
--
You received this message because you are subscribed to the Google Groups
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.