You can use something like the code below. FileDescriptor's interface has
methods to produce the FileDescriptorProto; you just need to walk the
dependencies.
FileDescriptorSet output;
const FileDescriptor* file_desc = ConcreteMessage::descriptor()->file();
for (int i = 0; i < file_desc->dependency_count(); ++i) {
file_desc->dependency(i)->CopyTo(output.add_file());
}
file_desc->CopyTo(output.add_file());
On Mon, Feb 13, 2012 at 7:52 AM, msr <[email protected]> wrote:
> Hi,
> For a message that is compiled into the binary, is there any way to
> generate the FileDescriptorSet given the ConcreteMessage object (i.e.
> the same output that protoc would generate for the proto file)?
> Basically a way to serialize the FileDescriptor that we get from a
> Concrete Message to a stream that can loaded back when reading.
>
> I am writing a simple wrapper to store a message to file. I would like
> to also save the FileDescriptorSet for that message into the same file
> so that users can read the file without having to have the message
> compiled in during read phase or have seperate file with
> FileDescriptoSet. If possible, I would like the users not having to
> know anything about generating FileDescriptorSet.
>
>
> Thanks,
> MSR
>
> --
> You received this message because you are subscribed to the Google Groups
> "Protocol Buffers" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/protobuf?hl=en.
>
>
--
You received this message because you are subscribed to the Google Groups
"Protocol Buffers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/protobuf?hl=en.