ПРИМЕЧАНИЕ. Этот сайт устарел. Сайт будет отключен после 31 января 2023 года, и трафик будет перенаправлен на новый сайт по адресу https://protobuf.dev . А пока обновления будут производиться только для protobuf.dev.

С++ API

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.

Пакеты

Вспомогательные классы, используемые для ввода-вывода.
Полезные классы.
Реализация компилятора протокольного буфера.

гугл:: протобуф

Файлы

Этот файл определяет распределитель Arena для повышения производительности распределения.
Этот файл содержит классы, которые описывают тип сообщения протокола.
Буферные представления дескрипторов протокола.
Интерфейс для работы с базами данных дескрипторов.
Определяет реализацию Message , которая может эмулировать типы, неизвестные во время компиляции.
Этот файл определяет контейнер карты и его помощники для поддержки карт protobuf.
Определяет Message , абстрактный интерфейс, реализуемый объектами сообщений необлегченного протокола.
Определяет MessageLite , абстрактный интерфейс, реализованный всеми (упрощенными и неупрощенными) объектами сообщений протокола.
RepeatedField и RepeatedPtrField используются сгенерированными классами протокольных сообщений для управления повторяющимися полями.
УСТАРЕЛО: этот модуль объявляет абстрактные интерфейсы, лежащие в основе сервисов proto2 RPC.
Утилиты для печати и разбора протокольных сообщений в удобочитаемом текстовом формате.
Содержит классы, используемые для отслеживания нераспознанных полей, видимых при анализе сообщения протокола.

гугл::протобуф::ио

Вспомогательные классы, используемые для ввода-вывода.

Библиотека Protocol Buffer использует классы из этого пакета для работы с вводом-выводом и кодированием/декодированием необработанных байтов. Большинству пользователей не нужно иметь дело с этим пакетом. Тем не менее, пользователям, которые хотят адаптировать систему для работы со своими собственными абстракциями ввода-вывода, например, разрешить считывание протокольных буферов из другого типа входного потока без необходимости во временном буфере, следует присмотреться повнимательнее.

Файлы

Этот файл содержит классы CodedInputStream и CodedOutputStream , которые оборачивают ZeroCopyInputStream или ZeroCopyOutputStream соответственно и позволяют читать или записывать отдельные фрагменты данных в различных форматах.
Служебный класс для записи текста в ZeroCopyOutputStream .
Класс для разбора токенизированного текста из ZeroCopyInputStream .
Этот файл содержит интерфейсы ZeroCopyInputStream и ZeroCopyOutputStream , которые представляют собой абстрактные потоки ввода-вывода, в которые и из которых можно считывать и записывать буферы протокола.
Этот файл содержит общие реализации интерфейсов, определенных в zero_copy_stream.h , которые включены только в полную (не облегченную) библиотеку protobuf.
Этот файл содержит общие реализации интерфейсов, определенных в zero_copy_stream.h , которые включены в "облегченную" библиотеку protobuf.

гугл:: протобуф:: утилита

Полезные классы.

Этот пакет содержит различные утилиты для сравнения сообщений, преобразования JSON, общеизвестных типов и т. д.

Файлы

Определяет классы для сравнения полей.
Определяет утилиты для общеизвестного типа FieldMask.
Служебные функции для преобразования между двоичным форматом protobuf и форматом proto3 JSON.
Этот файл определяет статические методы и классы для сравнения сообщений протокола.
Определяет утилиты для хорошо известных типов Timestamp и Duration.
Определяет TypeResolver для любого сообщения.
Определяет утилиты для TypeResolver.

гугл::протобуф::компилятор

Реализация компилятора протокольного буфера.

Этот пакет содержит код для разбора файлов .proto и генерации кода на их основе. Есть две причины, по которым вас может заинтересовать этот пакет:

  • Вы хотите анализировать файлы .proto во время выполнения. В этом случае вы должны посмотреть importer.h . Поскольку эта функциональность широко используется, она включена в базовую библиотеку libprotobuf; вам не нужно связываться с libprotoc.
  • Вы хотите написать собственный компилятор протокола, который генерирует различные виды кода, например, код на другом языке, который не поддерживается официальным компилятором. Для этой цели command_line_interface.h предоставляет вам полный внешний интерфейс компилятора, поэтому все, что вам нужно сделать, это написать собственную реализацию CodeGenerator и тривиальную функцию main(). Вы даже можете заставить свой компилятор поддерживать официальные языки в дополнение к вашему собственному. Поскольку эта функциональность полезна только для тех, кто пишет собственные компиляторы, она находится в отдельной библиотеке под названием «libprotoc», с которой вам придется связываться.

Файлы

Определяет абстрактный интерфейс, реализованный каждым из генераторов кода для конкретного языка.
Реализует внешний интерфейс компилятора протоколов, чтобы его можно было повторно использовать в пользовательских компиляторах, написанных для поддержки других языков.
Этот файл является общедоступным интерфейсом для парсера файлов .proto.
Реализует синтаксический анализ файлов .proto в FileDescriptorProtos.
Внешний интерфейс для плагинов генератора кода протокола, написанных на C++.
API для плагинов protoc.
Генерирует код C++ для заданного файла .proto.
Создает код C# для заданного файла .proto.
Предоставляет механизм сопоставления дескриптора с полным именем соответствующего класса C#.
Генерирует код Java для заданного файла .proto.
Предоставляет механизм сопоставления дескриптора с полным именем соответствующего класса Java.
Генерирует код JavaScript для заданного файла .proto.
Генерирует код ObjectiveC для заданного файла .proto.
Вспомогательные функции для генерации кода ObjectiveC.
Генерирует код Python для заданного файла .proto.
Генерирует код Ruby для заданного файла .proto.