horovod/common/wire/message_generated.h (533 lines of code) (raw):
// Copyright 2019 Uber Technologies, Inc. All Rights Reserved.
// Modifications copyright Microsoft
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// =============================================================================
// automatically generated by the FlatBuffers compiler, do not modify
#ifndef FLATBUFFERS_GENERATED_MESSAGE_HOROVOD_COMMON_WIRE_H_
#define FLATBUFFERS_GENERATED_MESSAGE_HOROVOD_COMMON_WIRE_H_
#include "flatbuffers/flatbuffers.h"
namespace horovod {
namespace common {
namespace wire {
struct Request;
struct RequestList;
struct Response;
struct ResponseList;
enum DataType {
DataType_HOROVOD_UINT8 = 0,
DataType_HOROVOD_INT8 = 1,
DataType_HOROVOD_UINT16 = 2,
DataType_HOROVOD_INT16 = 3,
DataType_HOROVOD_INT32 = 4,
DataType_HOROVOD_INT64 = 5,
DataType_HOROVOD_FLOAT16 = 6,
DataType_HOROVOD_FLOAT32 = 7,
DataType_HOROVOD_FLOAT64 = 8,
DataType_HOROVOD_BOOL = 9,
DataType_MIN = DataType_HOROVOD_UINT8,
DataType_MAX = DataType_HOROVOD_BOOL
};
inline const DataType (&EnumValuesDataType())[10] {
static const DataType values[] = {
DataType_HOROVOD_UINT8,
DataType_HOROVOD_INT8,
DataType_HOROVOD_UINT16,
DataType_HOROVOD_INT16,
DataType_HOROVOD_INT32,
DataType_HOROVOD_INT64,
DataType_HOROVOD_FLOAT16,
DataType_HOROVOD_FLOAT32,
DataType_HOROVOD_FLOAT64,
DataType_HOROVOD_BOOL
};
return values;
}
inline const char * const *EnumNamesDataType() {
static const char * const names[11] = {
"HOROVOD_UINT8",
"HOROVOD_INT8",
"HOROVOD_UINT16",
"HOROVOD_INT16",
"HOROVOD_INT32",
"HOROVOD_INT64",
"HOROVOD_FLOAT16",
"HOROVOD_FLOAT32",
"HOROVOD_FLOAT64",
"HOROVOD_BOOL",
nullptr
};
return names;
}
inline const char *EnumNameDataType(DataType e) {
if (e < DataType_HOROVOD_UINT8 || e > DataType_HOROVOD_BOOL) return "";
const size_t index = static_cast<size_t>(e);
return EnumNamesDataType()[index];
}
enum RequestType {
RequestType_ALLREDUCE = 0,
RequestType_ALLGATHER = 1,
RequestType_BROADCAST = 2,
RequestType_JOIN = 3,
RequestType_MIN = RequestType_ALLREDUCE,
RequestType_MAX = RequestType_JOIN
};
inline const RequestType (&EnumValuesRequestType())[4] {
static const RequestType values[] = {
RequestType_ALLREDUCE,
RequestType_ALLGATHER,
RequestType_BROADCAST,
RequestType_JOIN
};
return values;
}
inline const char * const *EnumNamesRequestType() {
static const char * const names[5] = {
"ALLREDUCE",
"ALLGATHER",
"BROADCAST",
"JOIN",
nullptr
};
return names;
}
inline const char *EnumNameRequestType(RequestType e) {
if (e < RequestType_ALLREDUCE || e > RequestType_JOIN) return "";
const size_t index = static_cast<size_t>(e);
return EnumNamesRequestType()[index];
}
enum ResponseType {
ResponseType_ALLREDUCE = 0,
ResponseType_ALLGATHER = 1,
ResponseType_BROADCAST = 2,
ResponseType_JOIN = 3,
ResponseType_ADASUM = 4,
ResponseType_ERROR = 5,
ResponseType_MIN = ResponseType_ALLREDUCE,
ResponseType_MAX = ResponseType_ERROR
};
inline const ResponseType (&EnumValuesResponseType())[6] {
static const ResponseType values[] = {
ResponseType_ALLREDUCE,
ResponseType_ALLGATHER,
ResponseType_BROADCAST,
ResponseType_JOIN,
ResponseType_ADASUM,
ResponseType_ERROR
};
return values;
}
inline const char * const *EnumNamesResponseType() {
static const char * const names[7] = {
"ALLREDUCE",
"ALLGATHER",
"BROADCAST",
"JOIN",
"ADASUM",
"ERROR",
nullptr
};
return names;
}
inline const char *EnumNameResponseType(ResponseType e) {
if (e < ResponseType_ALLREDUCE || e > ResponseType_ERROR) return "";
const size_t index = static_cast<size_t>(e);
return EnumNamesResponseType()[index];
}
struct Request FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
VT_REQUEST_RANK = 4,
VT_REQUEST_TYPE = 6,
VT_TENSOR_TYPE = 8,
VT_TENSOR_NAME = 10,
VT_ROOT_RANK = 12,
VT_DEVICE = 14,
VT_TENSOR_SHAPE = 16,
VT_PRESCALE_FACTOR = 18,
VT_POSTSCALE_FACTOR = 20
};
int32_t request_rank() const {
return GetField<int32_t>(VT_REQUEST_RANK, 0);
}
horovod::common::wire::RequestType request_type() const {
return static_cast<horovod::common::wire::RequestType>(GetField<int8_t>(VT_REQUEST_TYPE, 0));
}
horovod::common::wire::DataType tensor_type() const {
return static_cast<horovod::common::wire::DataType>(GetField<int8_t>(VT_TENSOR_TYPE, 0));
}
const flatbuffers::String *tensor_name() const {
return GetPointer<const flatbuffers::String *>(VT_TENSOR_NAME);
}
int32_t root_rank() const {
return GetField<int32_t>(VT_ROOT_RANK, 0);
}
int32_t device() const {
return GetField<int32_t>(VT_DEVICE, 0);
}
const flatbuffers::Vector<int64_t> *tensor_shape() const {
return GetPointer<const flatbuffers::Vector<int64_t> *>(VT_TENSOR_SHAPE);
}
double prescale_factor() const {
return GetField<double>(VT_PRESCALE_FACTOR, 0.0);
}
double postscale_factor() const {
return GetField<double>(VT_POSTSCALE_FACTOR, 0.0);
}
bool Verify(flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
VerifyField<int32_t>(verifier, VT_REQUEST_RANK) &&
VerifyField<int8_t>(verifier, VT_REQUEST_TYPE) &&
VerifyField<int8_t>(verifier, VT_TENSOR_TYPE) &&
VerifyOffset(verifier, VT_TENSOR_NAME) &&
verifier.VerifyString(tensor_name()) &&
VerifyField<int32_t>(verifier, VT_ROOT_RANK) &&
VerifyField<int32_t>(verifier, VT_DEVICE) &&
VerifyOffset(verifier, VT_TENSOR_SHAPE) &&
verifier.VerifyVector(tensor_shape()) &&
VerifyField<double>(verifier, VT_PRESCALE_FACTOR) &&
VerifyField<double>(verifier, VT_POSTSCALE_FACTOR) &&
verifier.EndTable();
}
};
struct RequestBuilder {
flatbuffers::FlatBufferBuilder &fbb_;
flatbuffers::uoffset_t start_;
void add_request_rank(int32_t request_rank) {
fbb_.AddElement<int32_t>(Request::VT_REQUEST_RANK, request_rank, 0);
}
void add_request_type(horovod::common::wire::RequestType request_type) {
fbb_.AddElement<int8_t>(Request::VT_REQUEST_TYPE, static_cast<int8_t>(request_type), 0);
}
void add_tensor_type(horovod::common::wire::DataType tensor_type) {
fbb_.AddElement<int8_t>(Request::VT_TENSOR_TYPE, static_cast<int8_t>(tensor_type), 0);
}
void add_tensor_name(flatbuffers::Offset<flatbuffers::String> tensor_name) {
fbb_.AddOffset(Request::VT_TENSOR_NAME, tensor_name);
}
void add_root_rank(int32_t root_rank) {
fbb_.AddElement<int32_t>(Request::VT_ROOT_RANK, root_rank, 0);
}
void add_device(int32_t device) {
fbb_.AddElement<int32_t>(Request::VT_DEVICE, device, 0);
}
void add_tensor_shape(flatbuffers::Offset<flatbuffers::Vector<int64_t>> tensor_shape) {
fbb_.AddOffset(Request::VT_TENSOR_SHAPE, tensor_shape);
}
void add_prescale_factor(double prescale_factor) {
fbb_.AddElement<double>(Request::VT_PRESCALE_FACTOR, prescale_factor, 0.0);
}
void add_postscale_factor(double postscale_factor) {
fbb_.AddElement<double>(Request::VT_POSTSCALE_FACTOR, postscale_factor, 0.0);
}
explicit RequestBuilder(flatbuffers::FlatBufferBuilder &_fbb)
: fbb_(_fbb) {
start_ = fbb_.StartTable();
}
RequestBuilder &operator=(const RequestBuilder &);
flatbuffers::Offset<Request> Finish() {
const auto end = fbb_.EndTable(start_);
auto o = flatbuffers::Offset<Request>(end);
return o;
}
};
inline flatbuffers::Offset<Request> CreateRequest(
flatbuffers::FlatBufferBuilder &_fbb,
int32_t request_rank = 0,
horovod::common::wire::RequestType request_type = horovod::common::wire::RequestType_ALLREDUCE,
horovod::common::wire::DataType tensor_type = horovod::common::wire::DataType_HOROVOD_UINT8,
flatbuffers::Offset<flatbuffers::String> tensor_name = 0,
int32_t root_rank = 0,
int32_t device = 0,
flatbuffers::Offset<flatbuffers::Vector<int64_t>> tensor_shape = 0,
double prescale_factor = 0.0,
double postscale_factor = 0.0) {
RequestBuilder builder_(_fbb);
builder_.add_postscale_factor(postscale_factor);
builder_.add_prescale_factor(prescale_factor);
builder_.add_tensor_shape(tensor_shape);
builder_.add_device(device);
builder_.add_root_rank(root_rank);
builder_.add_tensor_name(tensor_name);
builder_.add_request_rank(request_rank);
builder_.add_tensor_type(tensor_type);
builder_.add_request_type(request_type);
return builder_.Finish();
}
inline flatbuffers::Offset<Request> CreateRequestDirect(
flatbuffers::FlatBufferBuilder &_fbb,
int32_t request_rank = 0,
horovod::common::wire::RequestType request_type = horovod::common::wire::RequestType_ALLREDUCE,
horovod::common::wire::DataType tensor_type = horovod::common::wire::DataType_HOROVOD_UINT8,
const char *tensor_name = nullptr,
int32_t root_rank = 0,
int32_t device = 0,
const std::vector<int64_t> *tensor_shape = nullptr,
double prescale_factor = 0.0,
double postscale_factor = 0.0) {
auto tensor_name__ = tensor_name ? _fbb.CreateString(tensor_name) : 0;
auto tensor_shape__ = tensor_shape ? _fbb.CreateVector<int64_t>(*tensor_shape) : 0;
return horovod::common::wire::CreateRequest(
_fbb,
request_rank,
request_type,
tensor_type,
tensor_name__,
root_rank,
device,
tensor_shape__,
prescale_factor,
postscale_factor);
}
struct RequestList FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
VT_REQUESTS = 4,
VT_SHUTDOWN = 6
};
const flatbuffers::Vector<flatbuffers::Offset<horovod::common::wire::Request>> *requests() const {
return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<horovod::common::wire::Request>> *>(VT_REQUESTS);
}
bool shutdown() const {
return GetField<uint8_t>(VT_SHUTDOWN, 0) != 0;
}
bool Verify(flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
VerifyOffset(verifier, VT_REQUESTS) &&
verifier.VerifyVector(requests()) &&
verifier.VerifyVectorOfTables(requests()) &&
VerifyField<uint8_t>(verifier, VT_SHUTDOWN) &&
verifier.EndTable();
}
};
struct RequestListBuilder {
flatbuffers::FlatBufferBuilder &fbb_;
flatbuffers::uoffset_t start_;
void add_requests(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<horovod::common::wire::Request>>> requests) {
fbb_.AddOffset(RequestList::VT_REQUESTS, requests);
}
void add_shutdown(bool shutdown) {
fbb_.AddElement<uint8_t>(RequestList::VT_SHUTDOWN, static_cast<uint8_t>(shutdown), 0);
}
explicit RequestListBuilder(flatbuffers::FlatBufferBuilder &_fbb)
: fbb_(_fbb) {
start_ = fbb_.StartTable();
}
RequestListBuilder &operator=(const RequestListBuilder &);
flatbuffers::Offset<RequestList> Finish() {
const auto end = fbb_.EndTable(start_);
auto o = flatbuffers::Offset<RequestList>(end);
return o;
}
};
inline flatbuffers::Offset<RequestList> CreateRequestList(
flatbuffers::FlatBufferBuilder &_fbb,
flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<horovod::common::wire::Request>>> requests = 0,
bool shutdown = false) {
RequestListBuilder builder_(_fbb);
builder_.add_requests(requests);
builder_.add_shutdown(shutdown);
return builder_.Finish();
}
inline flatbuffers::Offset<RequestList> CreateRequestListDirect(
flatbuffers::FlatBufferBuilder &_fbb,
const std::vector<flatbuffers::Offset<horovod::common::wire::Request>> *requests = nullptr,
bool shutdown = false) {
auto requests__ = requests ? _fbb.CreateVector<flatbuffers::Offset<horovod::common::wire::Request>>(*requests) : 0;
return horovod::common::wire::CreateRequestList(
_fbb,
requests__,
shutdown);
}
struct Response FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
VT_RESPONSE_TYPE = 4,
VT_TENSOR_NAMES = 6,
VT_ERROR_MESSAGE = 8,
VT_DEVICES = 10,
VT_TENSOR_SIZES = 12,
VT_TENSOR_TYPE = 14,
VT_PRESCALE_FACTOR = 16,
VT_POSTSCALE_FACTOR = 18
};
horovod::common::wire::ResponseType response_type() const {
return static_cast<horovod::common::wire::ResponseType>(GetField<int8_t>(VT_RESPONSE_TYPE, 0));
}
const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *tensor_names() const {
return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>> *>(VT_TENSOR_NAMES);
}
const flatbuffers::String *error_message() const {
return GetPointer<const flatbuffers::String *>(VT_ERROR_MESSAGE);
}
const flatbuffers::Vector<int32_t> *devices() const {
return GetPointer<const flatbuffers::Vector<int32_t> *>(VT_DEVICES);
}
const flatbuffers::Vector<int64_t> *tensor_sizes() const {
return GetPointer<const flatbuffers::Vector<int64_t> *>(VT_TENSOR_SIZES);
}
horovod::common::wire::DataType tensor_type() const {
return static_cast<horovod::common::wire::DataType>(GetField<int8_t>(VT_TENSOR_TYPE, 0));
}
double prescale_factor() const {
return GetField<double>(VT_PRESCALE_FACTOR, 0.0);
}
double postscale_factor() const {
return GetField<double>(VT_POSTSCALE_FACTOR, 0.0);
}
bool Verify(flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
VerifyField<int8_t>(verifier, VT_RESPONSE_TYPE) &&
VerifyOffset(verifier, VT_TENSOR_NAMES) &&
verifier.VerifyVector(tensor_names()) &&
verifier.VerifyVectorOfStrings(tensor_names()) &&
VerifyOffset(verifier, VT_ERROR_MESSAGE) &&
verifier.VerifyString(error_message()) &&
VerifyOffset(verifier, VT_DEVICES) &&
verifier.VerifyVector(devices()) &&
VerifyOffset(verifier, VT_TENSOR_SIZES) &&
verifier.VerifyVector(tensor_sizes()) &&
VerifyField<int8_t>(verifier, VT_TENSOR_TYPE) &&
VerifyField<double>(verifier, VT_PRESCALE_FACTOR) &&
VerifyField<double>(verifier, VT_POSTSCALE_FACTOR) &&
verifier.EndTable();
}
};
struct ResponseBuilder {
flatbuffers::FlatBufferBuilder &fbb_;
flatbuffers::uoffset_t start_;
void add_response_type(horovod::common::wire::ResponseType response_type) {
fbb_.AddElement<int8_t>(Response::VT_RESPONSE_TYPE, static_cast<int8_t>(response_type), 0);
}
void add_tensor_names(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> tensor_names) {
fbb_.AddOffset(Response::VT_TENSOR_NAMES, tensor_names);
}
void add_error_message(flatbuffers::Offset<flatbuffers::String> error_message) {
fbb_.AddOffset(Response::VT_ERROR_MESSAGE, error_message);
}
void add_devices(flatbuffers::Offset<flatbuffers::Vector<int32_t>> devices) {
fbb_.AddOffset(Response::VT_DEVICES, devices);
}
void add_tensor_sizes(flatbuffers::Offset<flatbuffers::Vector<int64_t>> tensor_sizes) {
fbb_.AddOffset(Response::VT_TENSOR_SIZES, tensor_sizes);
}
void add_tensor_type(horovod::common::wire::DataType tensor_type) {
fbb_.AddElement<int8_t>(Response::VT_TENSOR_TYPE, static_cast<int8_t>(tensor_type), 0);
}
void add_prescale_factor(double prescale_factor) {
fbb_.AddElement<double>(Response::VT_PRESCALE_FACTOR, prescale_factor, 0.0);
}
void add_postscale_factor(double postscale_factor) {
fbb_.AddElement<double>(Response::VT_POSTSCALE_FACTOR, postscale_factor, 0.0);
}
explicit ResponseBuilder(flatbuffers::FlatBufferBuilder &_fbb)
: fbb_(_fbb) {
start_ = fbb_.StartTable();
}
ResponseBuilder &operator=(const ResponseBuilder &);
flatbuffers::Offset<Response> Finish() {
const auto end = fbb_.EndTable(start_);
auto o = flatbuffers::Offset<Response>(end);
return o;
}
};
inline flatbuffers::Offset<Response> CreateResponse(
flatbuffers::FlatBufferBuilder &_fbb,
horovod::common::wire::ResponseType response_type = horovod::common::wire::ResponseType_ALLREDUCE,
flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<flatbuffers::String>>> tensor_names = 0,
flatbuffers::Offset<flatbuffers::String> error_message = 0,
flatbuffers::Offset<flatbuffers::Vector<int32_t>> devices = 0,
flatbuffers::Offset<flatbuffers::Vector<int64_t>> tensor_sizes = 0,
horovod::common::wire::DataType tensor_type = horovod::common::wire::DataType_HOROVOD_UINT8,
double prescale_factor = 0.0,
double postscale_factor = 0.0) {
ResponseBuilder builder_(_fbb);
builder_.add_postscale_factor(postscale_factor);
builder_.add_prescale_factor(prescale_factor);
builder_.add_tensor_sizes(tensor_sizes);
builder_.add_devices(devices);
builder_.add_error_message(error_message);
builder_.add_tensor_names(tensor_names);
builder_.add_tensor_type(tensor_type);
builder_.add_response_type(response_type);
return builder_.Finish();
}
inline flatbuffers::Offset<Response> CreateResponseDirect(
flatbuffers::FlatBufferBuilder &_fbb,
horovod::common::wire::ResponseType response_type = horovod::common::wire::ResponseType_ALLREDUCE,
const std::vector<flatbuffers::Offset<flatbuffers::String>> *tensor_names = nullptr,
const char *error_message = nullptr,
const std::vector<int32_t> *devices = nullptr,
const std::vector<int64_t> *tensor_sizes = nullptr,
horovod::common::wire::DataType tensor_type = horovod::common::wire::DataType_HOROVOD_UINT8,
double prescale_factor = 0.0,
double postscale_factor = 0.0) {
auto tensor_names__ = tensor_names ? _fbb.CreateVector<flatbuffers::Offset<flatbuffers::String>>(*tensor_names) : 0;
auto error_message__ = error_message ? _fbb.CreateString(error_message) : 0;
auto devices__ = devices ? _fbb.CreateVector<int32_t>(*devices) : 0;
auto tensor_sizes__ = tensor_sizes ? _fbb.CreateVector<int64_t>(*tensor_sizes) : 0;
return horovod::common::wire::CreateResponse(
_fbb,
response_type,
tensor_names__,
error_message__,
devices__,
tensor_sizes__,
tensor_type,
prescale_factor,
postscale_factor);
}
struct ResponseList FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE {
VT_RESPONSES = 4,
VT_SHUTDOWN = 6
};
const flatbuffers::Vector<flatbuffers::Offset<horovod::common::wire::Response>> *responses() const {
return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<horovod::common::wire::Response>> *>(VT_RESPONSES);
}
bool shutdown() const {
return GetField<uint8_t>(VT_SHUTDOWN, 0) != 0;
}
bool Verify(flatbuffers::Verifier &verifier) const {
return VerifyTableStart(verifier) &&
VerifyOffset(verifier, VT_RESPONSES) &&
verifier.VerifyVector(responses()) &&
verifier.VerifyVectorOfTables(responses()) &&
VerifyField<uint8_t>(verifier, VT_SHUTDOWN) &&
verifier.EndTable();
}
};
struct ResponseListBuilder {
flatbuffers::FlatBufferBuilder &fbb_;
flatbuffers::uoffset_t start_;
void add_responses(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<horovod::common::wire::Response>>> responses) {
fbb_.AddOffset(ResponseList::VT_RESPONSES, responses);
}
void add_shutdown(bool shutdown) {
fbb_.AddElement<uint8_t>(ResponseList::VT_SHUTDOWN, static_cast<uint8_t>(shutdown), 0);
}
explicit ResponseListBuilder(flatbuffers::FlatBufferBuilder &_fbb)
: fbb_(_fbb) {
start_ = fbb_.StartTable();
}
ResponseListBuilder &operator=(const ResponseListBuilder &);
flatbuffers::Offset<ResponseList> Finish() {
const auto end = fbb_.EndTable(start_);
auto o = flatbuffers::Offset<ResponseList>(end);
return o;
}
};
inline flatbuffers::Offset<ResponseList> CreateResponseList(
flatbuffers::FlatBufferBuilder &_fbb,
flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<horovod::common::wire::Response>>> responses = 0,
bool shutdown = false) {
ResponseListBuilder builder_(_fbb);
builder_.add_responses(responses);
builder_.add_shutdown(shutdown);
return builder_.Finish();
}
inline flatbuffers::Offset<ResponseList> CreateResponseListDirect(
flatbuffers::FlatBufferBuilder &_fbb,
const std::vector<flatbuffers::Offset<horovod::common::wire::Response>> *responses = nullptr,
bool shutdown = false) {
auto responses__ = responses ? _fbb.CreateVector<flatbuffers::Offset<horovod::common::wire::Response>>(*responses) : 0;
return horovod::common::wire::CreateResponseList(
_fbb,
responses__,
shutdown);
}
} // namespace wire
} // namespace common
} // namespace horovod
#endif // FLATBUFFERS_GENERATED_MESSAGE_HOROVOD_COMMON_WIRE_H_