#include <sstream>
#include <algorithm>
#include <map>
#include <google/protobuf/compiler/code_generator.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/descriptor.pb.h>
#include <google/protobuf/io/printer.h>
#include <google/protobuf/io/zero_copy_stream.h>
#include <google/protobuf/stubs/strutil.h>
#include <google/protobuf/wire_format.h>
#include <google/protobuf/wire_format_lite.h>
#include <google/protobuf/compiler/csharp/csharp_options.h>
#include <google/protobuf/compiler/csharp/csharp_doc_comment.h>
#include <google/protobuf/compiler/csharp/csharp_enum.h>
#include <google/protobuf/compiler/csharp/csharp_field_base.h>
#include <google/protobuf/compiler/csharp/csharp_helpers.h>
#include <google/protobuf/compiler/csharp/csharp_message.h>
#include <google/protobuf/compiler/csharp/csharp_names.h>
namespace google {
namespace protobuf {
namespace compiler {
namespace csharp {
bool CompareFieldNumbers(const FieldDescriptor* d1, const FieldDescriptor* d2) { … }
MessageGenerator::MessageGenerator(const Descriptor* descriptor,
const Options* options)
: … { … }
MessageGenerator::~MessageGenerator() { … }
std::string MessageGenerator::class_name() { … }
std::string MessageGenerator::full_class_name() { … }
const std::vector<const FieldDescriptor*>& MessageGenerator::fields_by_number() { … }
void MessageGenerator::AddDeprecatedFlag(io::Printer* printer) { … }
void MessageGenerator::AddSerializableAttribute(io::Printer* printer) { … }
void MessageGenerator::Generate(io::Printer* printer) { … }
bool MessageGenerator::HasNestedGeneratedTypes()
{ … }
void MessageGenerator::GenerateCloningCode(io::Printer* printer) { … }
void MessageGenerator::GenerateFreezingCode(io::Printer* printer) { … }
void MessageGenerator::GenerateFrameworkMethods(io::Printer* printer) { … }
void MessageGenerator::GenerateMessageSerializationMethods(io::Printer* printer) { … }
void MessageGenerator::GenerateWriteToBody(io::Printer* printer, bool use_write_context) { … }
void MessageGenerator::GenerateMergingMethods(io::Printer* printer) { … }
void MessageGenerator::GenerateMainParseLoop(io::Printer* printer, bool use_parse_context) { … }
int MessageGenerator::GetPresenceIndex(const FieldDescriptor* descriptor) { … }
FieldGeneratorBase* MessageGenerator::CreateFieldGeneratorInternal(
const FieldDescriptor* descriptor) { … }
}
}
}
}