#include <userver/ugrpc/protobuf_visit.hpp>
Base class for FieldsVisitor and MessagesVisitor. Provides the interface and contains common code to use the data collected in the VisitorCompiler.
Definition at line 170 of file protobuf_visit.hpp.
 Inheritance diagram for ugrpc::BaseVisitor< Callback >:Public Types | |
| enum class | LockBehavior {  kNone = 0 , kShared = 1 }  | 
Public Member Functions | |
| void | Visit (google::protobuf::Message &message, Callback callback) | 
| Execute a callback without recursion.   | |
| void | VisitRecursive (google::protobuf::Message &message, Callback callback) | 
| Execute a callback recursively.   | |
| void | Compile (const google::protobuf::Descriptor *descriptor) | 
| Compiles the visitor for the given message type and its dependent types.  | |
| void | Compile (const DescriptorList &descriptors) | 
| Compiles the visitor for the given message types and their dependent types.  | |
| void | CompileAllGenerated () | 
| Compiles the visitor for all message types we can find. Not guaranteed to find all message types.  | |
| void | CompileGenerated (std::string_view message_name) | 
| Compiles the visitor for the given generated message type and its dependent types.  | |
| void | CompileGenerated (utils::span< std::string_view > message_names) | 
| Compiles the visitor for the given generated message type and their dependent types.  | |
| bool | ContainsSelected (const google::protobuf::Descriptor *descriptor) | 
| Efficiently checks if the message contains any selected structures.   | |
| virtual void | CompileOne (const google::protobuf::Descriptor &descriptor)=0 | 
| Compile one message without nested.  | |
| virtual bool | IsSelected (const google::protobuf::Descriptor &) const =0 | 
| Checks if the message is selected or has anything selected.  | |
Protected Member Functions | |
| BaseVisitor (LockBehavior lock_behavior) | |
| virtual void | DoVisit (google::protobuf::Message &message, Callback callback) const =0 | 
| Execute a callback without recursion.  | |
      
  | 
  stronginherited | 
| Enumerator | |
|---|---|
| kNone | Do not take shared_mutex locks for any operation on the visitor.  | 
| kShared | Take shared_lock for all read operations on the visitor and unique_lock for all Compile operations.  | 
Definition at line 72 of file protobuf_visit.hpp.
      
  | 
  inlineexplicitprotected | 
Definition at line 198 of file protobuf_visit.hpp.
      
  | 
  inherited | 
Efficiently checks if the message contains any selected structures.
You may want to call this before BaseVisitor::Visit and BaseVisitor::VisitRecursive to avoid a copy of the message beforehand if you require one.
      
  | 
  inline | 
Execute a callback without recursion.
Equivalent to VisitFields but utilizes the precompilation data from Compile
Definition at line 176 of file protobuf_visit.hpp.
      
  | 
  inline | 
Execute a callback recursively.
Equivalent to VisitFieldsRecursive and VisitMessagesRecursive but utilizes the precompilation data from Compile
Definition at line 188 of file protobuf_visit.hpp.