Thanks for the update Jason. I'll make sure to iterate over the directory 
and call FindFileByName() on each .proto I plan to use

On Monday, June 4, 2012 4:06:39 PM UTC-7, Jason Hsueh wrote:
>
> This is a result of SourceTreeDescirptorDatabase not implementing 
> FindFileContainingSymbol() - it doesn't maintain an index of the types 
> available in the database within the database, just the list of files that 
> are available. This is a sufficient implementation for the proto compiler, 
> where one specifies the files to build and thus FindFileByName() is always 
> called.
>
> I'm not aware of any DescriptorDatabase implementations that have all the 
> types within a source tree indexed - various Google-internal 
> implementations don't support this either, as there are so many .proto 
> files that it's typically not useful to load all of them, and we have 
> clients specify the leaf file explicitly.
>
> On Wed, May 30, 2012 at 1:16 PM, Dan <dashegh...@gmail.com> wrote:
>
>> Hi,
>> In the code below, I've found that the returned Descriptor* is NULL after 
>> I call FindMessageTypeByName(), *unless* I first call FindFileByName() 
>> on the .proto which contains the Message I am looking for.
>>
>> Is this a bug? Is there another way to do this? I would really like to be 
>> able to setup a SourceTreeDescriptorDatabase to a directory that contains 
>> all of the .proto files I plan to use and not have to search for each file 
>> individually.
>>
>> Any advice is much appreciated.
>>
>> thanks,
>> Dan
>>
>>
>> string sProtoRoot("/home/dan/tests/new-protobuf/protos");
>>
>> DiskSourceTree dst;
>> dst.MapPath("", sProtoRoot);
>>
>> SourceTreeDescriptorDatabase stdb(&dst);
>>
>> DescriptorPool dp(&stdb);
>> const FileDescriptor* pfd = dp.FindFileByName("TestMessage.proto");
>> const Descriptor* pd = dp.FindMessageTypeByName("Test.TestMessage");
>>
>>  -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Protocol Buffers" group.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msg/protobuf/-/V3u8UREKOEAJ.
>> To post to this group, send email to protobuf@googlegroups.com.
>> To unsubscribe from this group, send email to 
>> protobuf+unsubscr...@googlegroups.com.
>> 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 view this discussion on the web visit 
https://groups.google.com/d/msg/protobuf/-/K0hsd8JOtLQJ.
To post to this group, send email to protobuf@googlegroups.com.
To unsubscribe from this group, send email to 
protobuf+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/protobuf?hl=en.

Reply via email to