How to enable reflection for message created with DynamicMessageFactory?

33 views Asked by At

Code that creates a message:

std::unique_ptr<Message> MessagePacker::BuildMessage() const {
  google::protobuf::DynamicMessageFactory factory;
  Message* msg = factory.GetPrototype(descriptor_)->New();
  return std::unique_ptr<Message>(msg);
}

Test code:

  MessagePacker packer(HelloRequest::descriptor());
  auto result = packer.BuildMessage();
  ASSERT_NE(result, nullptr);
  std::cerr << result->GetReflection() << std::endl;

Reflection is null. Can't get field values, can't do DebugString.

How can I enable the reflection?

This returns a non-null pointer: HelloRequest().GetReflection()

0

There are 0 answers