If the code you were given was generated by protoc, then it should declare
some message classes which inherit from google::protobuf::Message or
google::protobuf::MessageLite. If you are OK with posting the code
somewhere then I could take a look and tell you for sure.

Probably the best way to tell if your file contains a serialized protocol
buffer is to run it through protoc --decode_raw and see if that returns
reasonable results. But protobuf doesn't really define a file format so
there is not a surefire way to tell. (For example there's no magic number
and no official format for storing a sequence of separate messages.)

On Sun, Oct 14, 2018 at 10:51 PM Steven Lutz <[email protected]> wrote:

> Is there a tool that I can use to verify that I'm actually working with a
> file created with protobuf?
>
> On Sunday, October 14, 2018 at 10:04:26 PM UTC-7, Steven Lutz wrote:
>>
>> Yes, that is correct that I have a file that is encoded with protobuf. I
>> need to both read and write this file type.
>> I'll use the tools as you mentioned and see what I come up with.
>>
>> The code that I have doesn't have the generated comments, just user
>> comments. I don't know how to replicated the same class structure in the
>> proto file based on the code that I have.
>>
>> On Sunday, October 14, 2018 at 11:29:11 AM UTC-7, Adam Cozzette wrote:
>>>
>>> Do I understand right that you have a raw data file encoded in the
>>> protobuf binary format? Are you just trying to read that one file, or do
>>> you want to be able to read and write other files with that same message
>>> type?
>>>
>>> One quick thing you can do is pipe the raw data to protoc --decode_raw.
>>> That will give you an incomplete view of the data because protoc can't
>>> fully interpret it without knowing the schema, but it could at least give
>>> you a rough idea of what the data contains. If you want to recreate the
>>> .proto file from the pb.h and pb.cc files, that should be fairly easy to
>>> do--you can look in the generated pb.h file and just look at the comments
>>> next to the field accessors. That should tell you the type and field number
>>> associated with each field.
>>>
>>> On Sat, Oct 13, 2018 at 12:02 AM Steven Lutz <[email protected]> wrote:
>>>
>>>> I'm working with a file that was created using protocol buffers. the
>>>> application that writes these files was written in c++. I put in a request
>>>> to the 3rd party that created this software to get the file definition/spec
>>>> and I was given the c++ code/header file. (not the entire application)
>>>> I'm having some trouble understanding the structure defined in the code
>>>> (i'm c++ rusty) so I was thinking that if there was a way to recreate the
>>>> c++ code using a protofile I'd have the generated example code to go along
>>>> with it. The original author doesn't seem to know anything about a
>>>> protofile which makes me wonder how it was all created in the first place.
>>>>
>>>> I figure I can either:
>>>> Try to untangle this confusion without a protofile,
>>>> or
>>>> Figure out how to create the protofile from the code I was given.
>>>>
>>>> Can someone shed some advice on this?
>>>> Thank you
>>>>
>>>>
>>>> --
>>>> 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.
>>>>
>>> --
> 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.
>

-- 
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.

Reply via email to