aboutsummaryrefslogtreecommitdiff
path: root/src/server/proto
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2024-07-28 18:12:53 +0200
committerShauren <shauren.trinity@gmail.com>2024-07-28 18:12:53 +0200
commit7ff646efa98a2c54770d4793eeada751af5ee5a2 (patch)
tree2c17079d972e135a38a15569c3f83e54c9b4f62e /src/server/proto
parentd96b7d21ca7c21f7ff091e6e6bcda1d7c761445d (diff)
Core/Proto: Added messages and services missing descriptors in client
Diffstat (limited to 'src/server/proto')
-rw-r--r--src/server/proto/Client/api/client/v2/notification_listener.pb.cc216
-rw-r--r--src/server/proto/Client/api/client/v2/notification_listener.pb.h194
-rw-r--r--src/server/proto/Client/api/client/v2/notification_listener.proto30
-rw-r--r--src/server/proto/Client/notification_service.pb.cc548
-rw-r--r--src/server/proto/Client/notification_service.pb.h517
-rw-r--r--src/server/proto/Client/notification_service.proto66
-rw-r--r--src/server/proto/Client/report_service.pb.cc376
-rw-r--r--src/server/proto/Client/report_service.pb.h444
-rw-r--r--src/server/proto/Client/report_service.proto41
-rw-r--r--src/server/proto/Client/report_types.pb.cc1167
-rw-r--r--src/server/proto/Client/report_types.pb.h2324
-rw-r--r--src/server/proto/Client/report_types.proto74
12 files changed, 5997 insertions, 0 deletions
diff --git a/src/server/proto/Client/api/client/v2/notification_listener.pb.cc b/src/server/proto/Client/api/client/v2/notification_listener.pb.cc
new file mode 100644
index 00000000000..378fa1e3877
--- /dev/null
+++ b/src/server/proto/Client/api/client/v2/notification_listener.pb.cc
@@ -0,0 +1,216 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: api/client/v2/notification_listener.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "api/client/v2/notification_listener.pb.h"
+
+#include <utility>
+
+#include <google/protobuf/stubs/common.h>
+#include <google/protobuf/stubs/once.h>
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/wire_format_lite_inl.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/generated_message_reflection.h>
+#include <google/protobuf/reflection_ops.h>
+#include <google/protobuf/wire_format.h>
+#include "BattlenetRpcErrorCodes.h"
+// @@protoc_insertion_point(includes)
+
+namespace bgs {
+namespace protocol {
+namespace notification {
+namespace v2 {
+namespace client {
+
+namespace {
+
+const ::google::protobuf::Descriptor* NotificationReceivedNotification_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ NotificationReceivedNotification_reflection_ = NULL;
+const ::google::protobuf::ServiceDescriptor* NotificationListener_descriptor_ = NULL;
+
+} // namespace
+
+void protobuf_AssignDesc_api_2fclient_2fv2_2fnotification_5flistener_2eproto() {
+ protobuf_AddDesc_api_2fclient_2fv2_2fnotification_5flistener_2eproto();
+ const ::google::protobuf::FileDescriptor* file =
+ ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
+ "api/client/v2/notification_listener.proto");
+ GOOGLE_CHECK(file != NULL);
+ NotificationReceivedNotification_descriptor_ = file->message_type(0);
+ static const int NotificationReceivedNotification_offsets_[1] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NotificationReceivedNotification, notifications_),
+ };
+ NotificationReceivedNotification_reflection_ =
+ new ::google::protobuf::internal::GeneratedMessageReflection(
+ NotificationReceivedNotification_descriptor_,
+ NotificationReceivedNotification::default_instance_,
+ NotificationReceivedNotification_offsets_,
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NotificationReceivedNotification, _has_bits_[0]),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(NotificationReceivedNotification, _unknown_fields_),
+ -1,
+ ::google::protobuf::DescriptorPool::generated_pool(),
+ ::google::protobuf::MessageFactory::generated_factory(),
+ sizeof(NotificationReceivedNotification));
+ NotificationListener_descriptor_ = file->service(0);
+}
+
+namespace {
+
+GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_);
+inline void protobuf_AssignDescriptorsOnce() {
+ ::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_,
+ &protobuf_AssignDesc_api_2fclient_2fv2_2fnotification_5flistener_2eproto);
+}
+
+void protobuf_RegisterTypes(const ::std::string&) {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ NotificationReceivedNotification_descriptor_, &NotificationReceivedNotification::default_instance());
+}
+
+} // namespace
+
+void protobuf_ShutdownFile_api_2fclient_2fv2_2fnotification_5flistener_2eproto() {
+ delete NotificationReceivedNotification::default_instance_;
+ delete NotificationReceivedNotification_reflection_;
+}
+
+void protobuf_AddDesc_api_2fclient_2fv2_2fnotification_5flistener_2eproto() {
+ static bool already_here = false;
+ if (already_here) return;
+ already_here = true;
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::bgs::protocol::protobuf_AddDesc_rpc_5ftypes_2eproto();
+ ::bgs::protocol::notification::v2::client::protobuf_AddDesc_api_2fclient_2fv2_2fnotification_5ftypes_2eproto();
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ "\n)api/client/v2/notification_listener.pr"
+ "oto\022#bgs.protocol.notification.v2.client"
+ "\032\017rpc_types.proto\032&api/client/v2/notific"
+ "ation_types.proto\"l\n NotificationReceive"
+ "dNotification\022H\n\rnotifications\030\001 \003(\01321.b"
+ "gs.protocol.notification.v2.client.Notif"
+ "ication2\346\001\n\024NotificationListener\022\202\001\n\026OnN"
+ "otificationReceived\022E.bgs.protocol.notif"
+ "ication.v2.client.NotificationReceivedNo"
+ "tification\032\031.bgs.protocol.NO_RESPONSE\"\006\202"
+ "\371+\002\010\001\032I\202\371+=\n9bnet.protocol.notification."
+ "v2.client.NotificationListener8\001\212\371+\004\010\001\030\001"
+ "B\005H\002\200\001\000", 487);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "api/client/v2/notification_listener.proto", &protobuf_RegisterTypes);
+ NotificationReceivedNotification::default_instance_ = new NotificationReceivedNotification();
+ NotificationReceivedNotification::default_instance_->InitAsDefaultInstance();
+ ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_api_2fclient_2fv2_2fnotification_5flistener_2eproto);
+}
+
+// Force AddDescriptors() to be called at static initialization time.
+struct StaticDescriptorInitializer_api_2fclient_2fv2_2fnotification_5flistener_2eproto {
+ StaticDescriptorInitializer_api_2fclient_2fv2_2fnotification_5flistener_2eproto() {
+ protobuf_AddDesc_api_2fclient_2fv2_2fnotification_5flistener_2eproto();
+ }
+} static_descriptor_initializer_api_2fclient_2fv2_2fnotification_5flistener_2eproto_;
+// ===================================================================
+
+#ifndef _MSC_VER
+const int NotificationReceivedNotification::kNotificationsFieldNumber;
+#endif // !_MSC_VER
+
+NotificationReceivedNotification::NotificationReceivedNotification()
+ : ::google::protobuf::Message() {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:bgs.protocol.notification.v2.client.NotificationReceivedNotification)
+}
+
+void NotificationReceivedNotification::InitAsDefaultInstance() {
+}
+
+NotificationReceivedNotification::NotificationReceivedNotification(const NotificationReceivedNotification& from)
+ : ::google::protobuf::Message() {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:bgs.protocol.notification.v2.client.NotificationReceivedNotification)
+}
+
+void NotificationReceivedNotification::SharedCtor() {
+ _cached_size_ = 0;
+ ::memset(_has_bits_, 0, sizeof(_has_bits_));
+}
+
+NotificationReceivedNotification::~NotificationReceivedNotification() {
+ // @@protoc_insertion_point(destructor:bgs.protocol.notification.v2.client.NotificationReceivedNotification)
+ SharedDtor();
+}
+
+void NotificationReceivedNotification::SharedDtor() {
+ if (this != default_instance_) {
+ }
+}
+
+void NotificationReceivedNotification::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* NotificationReceivedNotification::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return NotificationReceivedNotification_descriptor_;
+}
+
+const NotificationReceivedNotification& NotificationReceivedNotification::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_api_2fclient_2fv2_2fnotification_5flistener_2eproto();
+ return *default_instance_;
+}
+
+NotificationReceivedNotification* NotificationReceivedNotification::default_instance_ = NULL;
+
+NotificationReceivedNotification* NotificationReceivedNotification::New() const {
+ return new NotificationReceivedNotification;
+}
+
+void NotificationReceivedNotification::Swap(NotificationReceivedNotification* other) {
+ if (other != this) {
+ GetReflection()->Swap(this, other);}
+}
+
+::google::protobuf::Metadata NotificationReceivedNotification::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = NotificationReceivedNotification_descriptor_;
+ metadata.reflection = NotificationReceivedNotification_reflection_;
+ return metadata;
+}
+
+// ===================================================================
+
+NotificationListener::NotificationListener(bool use_original_hash) : ServiceBase(use_original_hash ? OriginalHash::value : NameHash::value) {
+}
+
+NotificationListener::~NotificationListener() {
+}
+
+google::protobuf::ServiceDescriptor const* NotificationListener::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return NotificationListener_descriptor_;
+}
+
+void NotificationListener::OnNotificationReceived(::bgs::protocol::notification::v2::client::NotificationReceivedNotification const* request, bool client /*= false*/, bool server /*= false*/) {
+ LogCallClientMethod("NotificationListener.OnNotificationReceived", "bgs.protocol.notification.v2.client.NotificationReceivedNotification", request);
+ SendRequest(service_hash_, 1 | (client ? 0x40000000 : 0) | (server ? 0x80000000 : 0), request);
+}
+
+void NotificationListener::CallServerMethod(uint32 /*token*/, uint32 methodId, MessageBuffer /*buffer*/) {
+ LogDisallowedMethod(methodId);
+}
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace client
+} // namespace v2
+} // namespace notification
+} // namespace protocol
+} // namespace bgs
+
+// @@protoc_insertion_point(global_scope)
diff --git a/src/server/proto/Client/api/client/v2/notification_listener.pb.h b/src/server/proto/Client/api/client/v2/notification_listener.pb.h
new file mode 100644
index 00000000000..7359cb12426
--- /dev/null
+++ b/src/server/proto/Client/api/client/v2/notification_listener.pb.h
@@ -0,0 +1,194 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: api/client/v2/notification_listener.proto
+
+#ifndef PROTOBUF_api_2fclient_2fv2_2fnotification_5flistener_2eproto__INCLUDED
+#define PROTOBUF_api_2fclient_2fv2_2fnotification_5flistener_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 2006000
+#error This file was generated by a newer version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please update
+#error your headers.
+#endif
+#if 2006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h>
+#include <google/protobuf/extension_set.h>
+#include <google/protobuf/unknown_field_set.h>
+#include "rpc_types.pb.h"
+#include "api/client/v2/notification_types.pb.h"
+#include "ServiceBase.h"
+#include "MessageBuffer.h"
+#include <functional>
+#include <type_traits>
+// @@protoc_insertion_point(includes)
+
+namespace bgs {
+namespace protocol {
+namespace notification {
+namespace v2 {
+namespace client {
+
+// Internal implementation detail -- do not call these.
+void TC_PROTO_API protobuf_AddDesc_api_2fclient_2fv2_2fnotification_5flistener_2eproto();
+void protobuf_AssignDesc_api_2fclient_2fv2_2fnotification_5flistener_2eproto();
+void protobuf_ShutdownFile_api_2fclient_2fv2_2fnotification_5flistener_2eproto();
+
+class NotificationReceivedNotification;
+
+// ===================================================================
+
+class TC_PROTO_API NotificationReceivedNotification : public ::google::protobuf::Message {
+ public:
+ NotificationReceivedNotification();
+ virtual ~NotificationReceivedNotification();
+
+ NotificationReceivedNotification(const NotificationReceivedNotification& from);
+
+ inline NotificationReceivedNotification& operator=(const NotificationReceivedNotification& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+ return _unknown_fields_;
+ }
+
+ inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+ return &_unknown_fields_;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const NotificationReceivedNotification& default_instance();
+
+ void Swap(NotificationReceivedNotification* other);
+
+ // implements Message ----------------------------------------------
+
+ NotificationReceivedNotification* New() const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ public:
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // repeated .bgs.protocol.notification.v2.client.Notification notifications = 1;
+ inline int notifications_size() const;
+ inline void clear_notifications();
+ static const int kNotificationsFieldNumber = 1;
+ inline const ::bgs::protocol::notification::v2::client::Notification& notifications(int index) const;
+ inline ::bgs::protocol::notification::v2::client::Notification* mutable_notifications(int index);
+ inline ::bgs::protocol::notification::v2::client::Notification* add_notifications();
+ inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::notification::v2::client::Notification >&
+ notifications() const;
+ inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::notification::v2::client::Notification >*
+ mutable_notifications();
+
+ // @@protoc_insertion_point(class_scope:bgs.protocol.notification.v2.client.NotificationReceivedNotification)
+ private:
+
+ ::google::protobuf::UnknownFieldSet _unknown_fields_;
+
+ ::google::protobuf::uint32 _has_bits_[1];
+ mutable int _cached_size_;
+ ::google::protobuf::RepeatedPtrField< ::bgs::protocol::notification::v2::client::Notification > notifications_;
+ friend void TC_PROTO_API protobuf_AddDesc_api_2fclient_2fv2_2fnotification_5flistener_2eproto();
+ friend void protobuf_AssignDesc_api_2fclient_2fv2_2fnotification_5flistener_2eproto();
+ friend void protobuf_ShutdownFile_api_2fclient_2fv2_2fnotification_5flistener_2eproto();
+
+ void InitAsDefaultInstance();
+ static NotificationReceivedNotification* default_instance_;
+};
+// ===================================================================
+
+class TC_PROTO_API NotificationListener : public ServiceBase
+{
+ public:
+
+ explicit NotificationListener(bool use_original_hash);
+ NotificationListener(NotificationListener const&) = delete;
+ NotificationListener(NotificationListener&&) = delete;
+ NotificationListener& operator=(NotificationListener const&) = delete;
+ NotificationListener& operator=(NotificationListener&&) = delete;
+ virtual ~NotificationListener();
+
+ typedef std::integral_constant<uint32, 0x2362BECDu> OriginalHash;
+ typedef std::integral_constant<uint32, 0xF98DCEBCu> NameHash;
+
+ static google::protobuf::ServiceDescriptor const* descriptor();
+
+ // client methods --------------------------------------------------
+ void OnNotificationReceived(::bgs::protocol::notification::v2::client::NotificationReceivedNotification const* request, bool client = false, bool server = false);
+
+ void CallServerMethod(uint32 token, uint32 methodId, MessageBuffer buffer) final;
+};
+
+// ===================================================================
+
+// ===================================================================
+
+// NotificationReceivedNotification
+
+// repeated .bgs.protocol.notification.v2.client.Notification notifications = 1;
+inline int NotificationReceivedNotification::notifications_size() const {
+ return notifications_.size();
+}
+inline void NotificationReceivedNotification::clear_notifications() {
+ notifications_.Clear();
+}
+inline const ::bgs::protocol::notification::v2::client::Notification& NotificationReceivedNotification::notifications(int index) const {
+ // @@protoc_insertion_point(field_get:bgs.protocol.notification.v2.client.NotificationReceivedNotification.notifications)
+ return notifications_.Get(index);
+}
+inline ::bgs::protocol::notification::v2::client::Notification* NotificationReceivedNotification::mutable_notifications(int index) {
+ // @@protoc_insertion_point(field_mutable:bgs.protocol.notification.v2.client.NotificationReceivedNotification.notifications)
+ return notifications_.Mutable(index);
+}
+inline ::bgs::protocol::notification::v2::client::Notification* NotificationReceivedNotification::add_notifications() {
+ // @@protoc_insertion_point(field_add:bgs.protocol.notification.v2.client.NotificationReceivedNotification.notifications)
+ return notifications_.Add();
+}
+inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::notification::v2::client::Notification >&
+NotificationReceivedNotification::notifications() const {
+ // @@protoc_insertion_point(field_list:bgs.protocol.notification.v2.client.NotificationReceivedNotification.notifications)
+ return notifications_;
+}
+inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::notification::v2::client::Notification >*
+NotificationReceivedNotification::mutable_notifications() {
+ // @@protoc_insertion_point(field_mutable_list:bgs.protocol.notification.v2.client.NotificationReceivedNotification.notifications)
+ return &notifications_;
+}
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace client
+} // namespace v2
+} // namespace notification
+} // namespace protocol
+} // namespace bgs
+
+#ifndef SWIG
+namespace google {
+namespace protobuf {
+} // namespace google
+} // namespace protobuf
+#endif // SWIG
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_api_2fclient_2fv2_2fnotification_5flistener_2eproto__INCLUDED
diff --git a/src/server/proto/Client/api/client/v2/notification_listener.proto b/src/server/proto/Client/api/client/v2/notification_listener.proto
new file mode 100644
index 00000000000..c9628fb9653
--- /dev/null
+++ b/src/server/proto/Client/api/client/v2/notification_listener.proto
@@ -0,0 +1,30 @@
+syntax = "proto2";
+
+import "rpc_types.proto";
+import "api/client/v2/notification_types.proto";
+package bgs.protocol.notification.v2.client;
+
+option optimize_for = CODE_SIZE;
+option cc_generic_services = false;
+
+message NotificationReceivedNotification {
+ repeated .bgs.protocol.notification.v2.client.Notification notifications = 1;
+}
+
+service NotificationListener {
+ option (.bgs.protocol.service_options) = {
+ descriptor_name: "bnet.protocol.notification.v2.client.NotificationListener"
+ type: SERVICE_TYPE_RPC_DIRECT
+ };
+ option (.bgs.protocol.sdk_service_options) = {
+ inbound: true
+ use_client_id: true
+ };
+ rpc OnNotificationReceived(.bgs.protocol.notification.v2.client.NotificationReceivedNotification) returns (.bgs.protocol.NO_RESPONSE) {
+ option (.bgs.protocol.method_options) = {
+ id: 1
+ };
+ }
+}
+
+
diff --git a/src/server/proto/Client/notification_service.pb.cc b/src/server/proto/Client/notification_service.pb.cc
new file mode 100644
index 00000000000..a76d6b53b1b
--- /dev/null
+++ b/src/server/proto/Client/notification_service.pb.cc
@@ -0,0 +1,548 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: notification_service.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "notification_service.pb.h"
+
+#include <utility>
+
+#include <google/protobuf/stubs/common.h>
+#include <google/protobuf/stubs/once.h>
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/wire_format_lite_inl.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/generated_message_reflection.h>
+#include <google/protobuf/reflection_ops.h>
+#include <google/protobuf/wire_format.h>
+#include "BattlenetRpcErrorCodes.h"
+// @@protoc_insertion_point(includes)
+
+namespace bgs {
+namespace protocol {
+namespace notification {
+namespace v1 {
+
+namespace {
+
+const ::google::protobuf::Descriptor* SubscribeRequest_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ SubscribeRequest_reflection_ = NULL;
+const ::google::protobuf::Descriptor* UnsubscribeRequest_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ UnsubscribeRequest_reflection_ = NULL;
+const ::google::protobuf::Descriptor* PublishRequest_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ PublishRequest_reflection_ = NULL;
+const ::google::protobuf::ServiceDescriptor* NotificationService_descriptor_ = NULL;
+const ::google::protobuf::ServiceDescriptor* NotificationListener_descriptor_ = NULL;
+
+} // namespace
+
+void protobuf_AssignDesc_notification_5fservice_2eproto() {
+ protobuf_AddDesc_notification_5fservice_2eproto();
+ const ::google::protobuf::FileDescriptor* file =
+ ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
+ "notification_service.proto");
+ GOOGLE_CHECK(file != NULL);
+ SubscribeRequest_descriptor_ = file->message_type(0);
+ static const int SubscribeRequest_offsets_[1] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeRequest, subscription_),
+ };
+ SubscribeRequest_reflection_ =
+ new ::google::protobuf::internal::GeneratedMessageReflection(
+ SubscribeRequest_descriptor_,
+ SubscribeRequest::default_instance_,
+ SubscribeRequest_offsets_,
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeRequest, _has_bits_[0]),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubscribeRequest, _unknown_fields_),
+ -1,
+ ::google::protobuf::DescriptorPool::generated_pool(),
+ ::google::protobuf::MessageFactory::generated_factory(),
+ sizeof(SubscribeRequest));
+ UnsubscribeRequest_descriptor_ = file->message_type(1);
+ static const int UnsubscribeRequest_offsets_[1] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UnsubscribeRequest, subscription_),
+ };
+ UnsubscribeRequest_reflection_ =
+ new ::google::protobuf::internal::GeneratedMessageReflection(
+ UnsubscribeRequest_descriptor_,
+ UnsubscribeRequest::default_instance_,
+ UnsubscribeRequest_offsets_,
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UnsubscribeRequest, _has_bits_[0]),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(UnsubscribeRequest, _unknown_fields_),
+ -1,
+ ::google::protobuf::DescriptorPool::generated_pool(),
+ ::google::protobuf::MessageFactory::generated_factory(),
+ sizeof(UnsubscribeRequest));
+ PublishRequest_descriptor_ = file->message_type(2);
+ static const int PublishRequest_offsets_[2] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PublishRequest, target_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PublishRequest, notification_),
+ };
+ PublishRequest_reflection_ =
+ new ::google::protobuf::internal::GeneratedMessageReflection(
+ PublishRequest_descriptor_,
+ PublishRequest::default_instance_,
+ PublishRequest_offsets_,
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PublishRequest, _has_bits_[0]),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PublishRequest, _unknown_fields_),
+ -1,
+ ::google::protobuf::DescriptorPool::generated_pool(),
+ ::google::protobuf::MessageFactory::generated_factory(),
+ sizeof(PublishRequest));
+ NotificationService_descriptor_ = file->service(0);
+ NotificationListener_descriptor_ = file->service(1);
+}
+
+namespace {
+
+GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_);
+inline void protobuf_AssignDescriptorsOnce() {
+ ::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_,
+ &protobuf_AssignDesc_notification_5fservice_2eproto);
+}
+
+void protobuf_RegisterTypes(const ::std::string&) {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ SubscribeRequest_descriptor_, &SubscribeRequest::default_instance());
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ UnsubscribeRequest_descriptor_, &UnsubscribeRequest::default_instance());
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ PublishRequest_descriptor_, &PublishRequest::default_instance());
+}
+
+} // namespace
+
+void protobuf_ShutdownFile_notification_5fservice_2eproto() {
+ delete SubscribeRequest::default_instance_;
+ delete SubscribeRequest_reflection_;
+ delete UnsubscribeRequest::default_instance_;
+ delete UnsubscribeRequest_reflection_;
+ delete PublishRequest::default_instance_;
+ delete PublishRequest_reflection_;
+}
+
+void protobuf_AddDesc_notification_5fservice_2eproto() {
+ static bool already_here = false;
+ if (already_here) return;
+ already_here = true;
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::bgs::protocol::protobuf_AddDesc_rpc_5ftypes_2eproto();
+ ::bgs::protocol::notification::v1::protobuf_AddDesc_notification_5ftypes_2eproto();
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ "\n\032notification_service.proto\022\034bgs.protoc"
+ "ol.notification.v1\032\017rpc_types.proto\032\030not"
+ "ification_types.proto\"T\n\020SubscribeReques"
+ "t\022@\n\014subscription\030\001 \001(\0132*.bgs.protocol.n"
+ "otification.v1.Subscription\"V\n\022Unsubscri"
+ "beRequest\022@\n\014subscription\030\001 \001(\0132*.bgs.pr"
+ "otocol.notification.v1.Subscription\"\210\001\n\016"
+ "PublishRequest\0224\n\006target\030\001 \001(\0132$.bgs.pro"
+ "tocol.notification.v1.Target\022@\n\014notifica"
+ "tion\030\002 \001(\0132*.bgs.protocol.notification.v"
+ "1.Notification2\300\003\n\023NotificationService\022\\"
+ "\n\020SendNotification\022*.bgs.protocol.notifi"
+ "cation.v1.Notification\032\024.bgs.protocol.No"
+ "Data\"\006\202\371+\002\010\001\022Y\n\tSubscribe\022..bgs.protocol"
+ ".notification.v1.SubscribeRequest\032\024.bgs."
+ "protocol.NoData\"\006\202\371+\002\010\006\022]\n\013Unsubscribe\0220"
+ ".bgs.protocol.notification.v1.Unsubscrib"
+ "eRequest\032\024.bgs.protocol.NoData\"\006\202\371+\002\010\007\022U"
+ "\n\007Publish\022,.bgs.protocol.notification.v1"
+ ".PublishRequest\032\024.bgs.protocol.NoData\"\006\202"
+ "\371+\002\010\010\032:\202\371+0\n.bnet.protocol.notification."
+ "NotificationService\212\371+\002\020\0012\274\001\n\024Notificati"
+ "onListener\022g\n\026OnNotificationReceived\022*.b"
+ "gs.protocol.notification.v1.Notification"
+ "\032\031.bgs.protocol.NO_RESPONSE\"\006\202\371+\002\010\001\032;\202\371+"
+ "1\n/bnet.protocol.notification.Notificati"
+ "onListener\212\371+\002\010\001B\005H\002\200\001\000", 1063);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "notification_service.proto", &protobuf_RegisterTypes);
+ SubscribeRequest::default_instance_ = new SubscribeRequest();
+ UnsubscribeRequest::default_instance_ = new UnsubscribeRequest();
+ PublishRequest::default_instance_ = new PublishRequest();
+ SubscribeRequest::default_instance_->InitAsDefaultInstance();
+ UnsubscribeRequest::default_instance_->InitAsDefaultInstance();
+ PublishRequest::default_instance_->InitAsDefaultInstance();
+ ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_notification_5fservice_2eproto);
+}
+
+// Force AddDescriptors() to be called at static initialization time.
+struct StaticDescriptorInitializer_notification_5fservice_2eproto {
+ StaticDescriptorInitializer_notification_5fservice_2eproto() {
+ protobuf_AddDesc_notification_5fservice_2eproto();
+ }
+} static_descriptor_initializer_notification_5fservice_2eproto_;
+// ===================================================================
+
+#ifndef _MSC_VER
+const int SubscribeRequest::kSubscriptionFieldNumber;
+#endif // !_MSC_VER
+
+SubscribeRequest::SubscribeRequest()
+ : ::google::protobuf::Message() {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:bgs.protocol.notification.v1.SubscribeRequest)
+}
+
+void SubscribeRequest::InitAsDefaultInstance() {
+ subscription_ = const_cast< ::bgs::protocol::notification::v1::Subscription*>(&::bgs::protocol::notification::v1::Subscription::default_instance());
+}
+
+SubscribeRequest::SubscribeRequest(const SubscribeRequest& from)
+ : ::google::protobuf::Message() {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:bgs.protocol.notification.v1.SubscribeRequest)
+}
+
+void SubscribeRequest::SharedCtor() {
+ _cached_size_ = 0;
+ subscription_ = NULL;
+ ::memset(_has_bits_, 0, sizeof(_has_bits_));
+}
+
+SubscribeRequest::~SubscribeRequest() {
+ // @@protoc_insertion_point(destructor:bgs.protocol.notification.v1.SubscribeRequest)
+ SharedDtor();
+}
+
+void SubscribeRequest::SharedDtor() {
+ if (this != default_instance_) {
+ delete subscription_;
+ }
+}
+
+void SubscribeRequest::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* SubscribeRequest::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return SubscribeRequest_descriptor_;
+}
+
+const SubscribeRequest& SubscribeRequest::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_notification_5fservice_2eproto();
+ return *default_instance_;
+}
+
+SubscribeRequest* SubscribeRequest::default_instance_ = NULL;
+
+SubscribeRequest* SubscribeRequest::New() const {
+ return new SubscribeRequest;
+}
+
+void SubscribeRequest::Swap(SubscribeRequest* other) {
+ if (other != this) {
+ GetReflection()->Swap(this, other);}
+}
+
+::google::protobuf::Metadata SubscribeRequest::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = SubscribeRequest_descriptor_;
+ metadata.reflection = SubscribeRequest_reflection_;
+ return metadata;
+}
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int UnsubscribeRequest::kSubscriptionFieldNumber;
+#endif // !_MSC_VER
+
+UnsubscribeRequest::UnsubscribeRequest()
+ : ::google::protobuf::Message() {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:bgs.protocol.notification.v1.UnsubscribeRequest)
+}
+
+void UnsubscribeRequest::InitAsDefaultInstance() {
+ subscription_ = const_cast< ::bgs::protocol::notification::v1::Subscription*>(&::bgs::protocol::notification::v1::Subscription::default_instance());
+}
+
+UnsubscribeRequest::UnsubscribeRequest(const UnsubscribeRequest& from)
+ : ::google::protobuf::Message() {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:bgs.protocol.notification.v1.UnsubscribeRequest)
+}
+
+void UnsubscribeRequest::SharedCtor() {
+ _cached_size_ = 0;
+ subscription_ = NULL;
+ ::memset(_has_bits_, 0, sizeof(_has_bits_));
+}
+
+UnsubscribeRequest::~UnsubscribeRequest() {
+ // @@protoc_insertion_point(destructor:bgs.protocol.notification.v1.UnsubscribeRequest)
+ SharedDtor();
+}
+
+void UnsubscribeRequest::SharedDtor() {
+ if (this != default_instance_) {
+ delete subscription_;
+ }
+}
+
+void UnsubscribeRequest::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* UnsubscribeRequest::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return UnsubscribeRequest_descriptor_;
+}
+
+const UnsubscribeRequest& UnsubscribeRequest::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_notification_5fservice_2eproto();
+ return *default_instance_;
+}
+
+UnsubscribeRequest* UnsubscribeRequest::default_instance_ = NULL;
+
+UnsubscribeRequest* UnsubscribeRequest::New() const {
+ return new UnsubscribeRequest;
+}
+
+void UnsubscribeRequest::Swap(UnsubscribeRequest* other) {
+ if (other != this) {
+ GetReflection()->Swap(this, other);}
+}
+
+::google::protobuf::Metadata UnsubscribeRequest::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = UnsubscribeRequest_descriptor_;
+ metadata.reflection = UnsubscribeRequest_reflection_;
+ return metadata;
+}
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int PublishRequest::kTargetFieldNumber;
+const int PublishRequest::kNotificationFieldNumber;
+#endif // !_MSC_VER
+
+PublishRequest::PublishRequest()
+ : ::google::protobuf::Message() {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:bgs.protocol.notification.v1.PublishRequest)
+}
+
+void PublishRequest::InitAsDefaultInstance() {
+ target_ = const_cast< ::bgs::protocol::notification::v1::Target*>(&::bgs::protocol::notification::v1::Target::default_instance());
+ notification_ = const_cast< ::bgs::protocol::notification::v1::Notification*>(&::bgs::protocol::notification::v1::Notification::default_instance());
+}
+
+PublishRequest::PublishRequest(const PublishRequest& from)
+ : ::google::protobuf::Message() {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:bgs.protocol.notification.v1.PublishRequest)
+}
+
+void PublishRequest::SharedCtor() {
+ _cached_size_ = 0;
+ target_ = NULL;
+ notification_ = NULL;
+ ::memset(_has_bits_, 0, sizeof(_has_bits_));
+}
+
+PublishRequest::~PublishRequest() {
+ // @@protoc_insertion_point(destructor:bgs.protocol.notification.v1.PublishRequest)
+ SharedDtor();
+}
+
+void PublishRequest::SharedDtor() {
+ if (this != default_instance_) {
+ delete target_;
+ delete notification_;
+ }
+}
+
+void PublishRequest::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* PublishRequest::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return PublishRequest_descriptor_;
+}
+
+const PublishRequest& PublishRequest::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_notification_5fservice_2eproto();
+ return *default_instance_;
+}
+
+PublishRequest* PublishRequest::default_instance_ = NULL;
+
+PublishRequest* PublishRequest::New() const {
+ return new PublishRequest;
+}
+
+void PublishRequest::Swap(PublishRequest* other) {
+ if (other != this) {
+ GetReflection()->Swap(this, other);}
+}
+
+::google::protobuf::Metadata PublishRequest::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = PublishRequest_descriptor_;
+ metadata.reflection = PublishRequest_reflection_;
+ return metadata;
+}
+
+// ===================================================================
+
+NotificationService::NotificationService(bool use_original_hash) : ServiceBase(use_original_hash ? OriginalHash::value : NameHash::value) {
+}
+
+NotificationService::~NotificationService() {
+}
+
+google::protobuf::ServiceDescriptor const* NotificationService::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return NotificationService_descriptor_;
+}
+
+void NotificationService::CallServerMethod(uint32 token, uint32 methodId, MessageBuffer buffer) {
+ switch(methodId & 0x3FFFFFFF) {
+ case 1:
+ ParseAndHandleSendNotification(token, methodId, buffer);
+ break;
+ case 6:
+ ParseAndHandleSubscribe(token, methodId, buffer);
+ break;
+ case 7:
+ ParseAndHandleUnsubscribe(token, methodId, buffer);
+ break;
+ case 8:
+ ParseAndHandlePublish(token, methodId, buffer);
+ break;
+ default:
+ LogInvalidMethod(methodId);
+ SendResponse(service_hash_, methodId, token, ERROR_RPC_INVALID_METHOD);
+ break;
+ }
+}
+
+uint32 NotificationService::HandleSendNotification(::bgs::protocol::notification::v1::Notification const* request, ::bgs::protocol::NoData* /*response*/, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& /*continuation*/) {
+ LogUnimplementedServerMethod("NotificationService.SendNotification", request);
+ return ERROR_RPC_NOT_IMPLEMENTED;
+}
+
+uint32 NotificationService::HandleSubscribe(::bgs::protocol::notification::v1::SubscribeRequest const* request, ::bgs::protocol::NoData* /*response*/, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& /*continuation*/) {
+ LogUnimplementedServerMethod("NotificationService.Subscribe", request);
+ return ERROR_RPC_NOT_IMPLEMENTED;
+}
+
+uint32 NotificationService::HandleUnsubscribe(::bgs::protocol::notification::v1::UnsubscribeRequest const* request, ::bgs::protocol::NoData* /*response*/, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& /*continuation*/) {
+ LogUnimplementedServerMethod("NotificationService.Unsubscribe", request);
+ return ERROR_RPC_NOT_IMPLEMENTED;
+}
+
+uint32 NotificationService::HandlePublish(::bgs::protocol::notification::v1::PublishRequest const* request, ::bgs::protocol::NoData* /*response*/, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& /*continuation*/) {
+ LogUnimplementedServerMethod("NotificationService.Publish", request);
+ return ERROR_RPC_NOT_IMPLEMENTED;
+}
+
+void NotificationService::ParseAndHandleSendNotification(uint32 token, uint32 methodId, MessageBuffer& buffer) {
+ ::bgs::protocol::notification::v1::Notification request;
+ if (!request.ParseFromArray(buffer.GetReadPointer(), buffer.GetActiveSize())) {
+ LogFailedParsingRequest("NotificationService.SendNotification");
+ SendResponse(service_hash_, methodId, token, ERROR_RPC_MALFORMED_REQUEST);
+ return;
+ }
+ LogCallServerMethod("NotificationService.SendNotification", "bgs.protocol.notification.v1.Notification", &request);
+ std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)> continuation = CreateServerContinuation(token, methodId, "NotificationService.SendNotification", ::bgs::protocol::NoData::descriptor());
+ ::bgs::protocol::NoData response;
+ uint32 status = HandleSendNotification(&request, &response, continuation);
+ if (continuation)
+ continuation(this, status, &response);
+}
+
+void NotificationService::ParseAndHandleSubscribe(uint32 token, uint32 methodId, MessageBuffer& buffer) {
+ ::bgs::protocol::notification::v1::SubscribeRequest request;
+ if (!request.ParseFromArray(buffer.GetReadPointer(), buffer.GetActiveSize())) {
+ LogFailedParsingRequest("NotificationService.Subscribe");
+ SendResponse(service_hash_, methodId, token, ERROR_RPC_MALFORMED_REQUEST);
+ return;
+ }
+ LogCallServerMethod("NotificationService.Subscribe", "bgs.protocol.notification.v1.SubscribeRequest", &request);
+ std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)> continuation = CreateServerContinuation(token, methodId, "NotificationService.Subscribe", ::bgs::protocol::NoData::descriptor());
+ ::bgs::protocol::NoData response;
+ uint32 status = HandleSubscribe(&request, &response, continuation);
+ if (continuation)
+ continuation(this, status, &response);
+}
+
+void NotificationService::ParseAndHandleUnsubscribe(uint32 token, uint32 methodId, MessageBuffer& buffer) {
+ ::bgs::protocol::notification::v1::UnsubscribeRequest request;
+ if (!request.ParseFromArray(buffer.GetReadPointer(), buffer.GetActiveSize())) {
+ LogFailedParsingRequest("NotificationService.Unsubscribe");
+ SendResponse(service_hash_, methodId, token, ERROR_RPC_MALFORMED_REQUEST);
+ return;
+ }
+ LogCallServerMethod("NotificationService.Unsubscribe", "bgs.protocol.notification.v1.UnsubscribeRequest", &request);
+ std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)> continuation = CreateServerContinuation(token, methodId, "NotificationService.Unsubscribe", ::bgs::protocol::NoData::descriptor());
+ ::bgs::protocol::NoData response;
+ uint32 status = HandleUnsubscribe(&request, &response, continuation);
+ if (continuation)
+ continuation(this, status, &response);
+}
+
+void NotificationService::ParseAndHandlePublish(uint32 token, uint32 methodId, MessageBuffer& buffer) {
+ ::bgs::protocol::notification::v1::PublishRequest request;
+ if (!request.ParseFromArray(buffer.GetReadPointer(), buffer.GetActiveSize())) {
+ LogFailedParsingRequest("NotificationService.Publish");
+ SendResponse(service_hash_, methodId, token, ERROR_RPC_MALFORMED_REQUEST);
+ return;
+ }
+ LogCallServerMethod("NotificationService.Publish", "bgs.protocol.notification.v1.PublishRequest", &request);
+ std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)> continuation = CreateServerContinuation(token, methodId, "NotificationService.Publish", ::bgs::protocol::NoData::descriptor());
+ ::bgs::protocol::NoData response;
+ uint32 status = HandlePublish(&request, &response, continuation);
+ if (continuation)
+ continuation(this, status, &response);
+}
+
+// ===================================================================
+
+NotificationListener::NotificationListener(bool use_original_hash) : ServiceBase(use_original_hash ? OriginalHash::value : NameHash::value) {
+}
+
+NotificationListener::~NotificationListener() {
+}
+
+google::protobuf::ServiceDescriptor const* NotificationListener::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return NotificationListener_descriptor_;
+}
+
+void NotificationListener::OnNotificationReceived(::bgs::protocol::notification::v1::Notification const* request, bool client /*= false*/, bool server /*= false*/) {
+ LogCallClientMethod("NotificationListener.OnNotificationReceived", "bgs.protocol.notification.v1.Notification", request);
+ SendRequest(service_hash_, 1 | (client ? 0x40000000 : 0) | (server ? 0x80000000 : 0), request);
+}
+
+void NotificationListener::CallServerMethod(uint32 /*token*/, uint32 methodId, MessageBuffer /*buffer*/) {
+ LogDisallowedMethod(methodId);
+}
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace v1
+} // namespace notification
+} // namespace protocol
+} // namespace bgs
+
+// @@protoc_insertion_point(global_scope)
diff --git a/src/server/proto/Client/notification_service.pb.h b/src/server/proto/Client/notification_service.pb.h
new file mode 100644
index 00000000000..2ff5890514f
--- /dev/null
+++ b/src/server/proto/Client/notification_service.pb.h
@@ -0,0 +1,517 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: notification_service.proto
+
+#ifndef PROTOBUF_notification_5fservice_2eproto__INCLUDED
+#define PROTOBUF_notification_5fservice_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 2006000
+#error This file was generated by a newer version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please update
+#error your headers.
+#endif
+#if 2006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h>
+#include <google/protobuf/extension_set.h>
+#include <google/protobuf/unknown_field_set.h>
+#include "rpc_types.pb.h"
+#include "notification_types.pb.h"
+#include "ServiceBase.h"
+#include "MessageBuffer.h"
+#include <functional>
+#include <type_traits>
+// @@protoc_insertion_point(includes)
+
+namespace bgs {
+namespace protocol {
+namespace notification {
+namespace v1 {
+
+// Internal implementation detail -- do not call these.
+void TC_PROTO_API protobuf_AddDesc_notification_5fservice_2eproto();
+void protobuf_AssignDesc_notification_5fservice_2eproto();
+void protobuf_ShutdownFile_notification_5fservice_2eproto();
+
+class SubscribeRequest;
+class UnsubscribeRequest;
+class PublishRequest;
+
+// ===================================================================
+
+class TC_PROTO_API SubscribeRequest : public ::google::protobuf::Message {
+ public:
+ SubscribeRequest();
+ virtual ~SubscribeRequest();
+
+ SubscribeRequest(const SubscribeRequest& from);
+
+ inline SubscribeRequest& operator=(const SubscribeRequest& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+ return _unknown_fields_;
+ }
+
+ inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+ return &_unknown_fields_;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const SubscribeRequest& default_instance();
+
+ void Swap(SubscribeRequest* other);
+
+ // implements Message ----------------------------------------------
+
+ SubscribeRequest* New() const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ public:
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional .bgs.protocol.notification.v1.Subscription subscription = 1;
+ inline bool has_subscription() const;
+ inline void clear_subscription();
+ static const int kSubscriptionFieldNumber = 1;
+ inline const ::bgs::protocol::notification::v1::Subscription& subscription() const;
+ inline ::bgs::protocol::notification::v1::Subscription* mutable_subscription();
+ inline ::bgs::protocol::notification::v1::Subscription* release_subscription();
+ inline void set_allocated_subscription(::bgs::protocol::notification::v1::Subscription* subscription);
+
+ // @@protoc_insertion_point(class_scope:bgs.protocol.notification.v1.SubscribeRequest)
+ private:
+ inline void set_has_subscription();
+ inline void clear_has_subscription();
+
+ ::google::protobuf::UnknownFieldSet _unknown_fields_;
+
+ ::google::protobuf::uint32 _has_bits_[1];
+ mutable int _cached_size_;
+ ::bgs::protocol::notification::v1::Subscription* subscription_;
+ friend void TC_PROTO_API protobuf_AddDesc_notification_5fservice_2eproto();
+ friend void protobuf_AssignDesc_notification_5fservice_2eproto();
+ friend void protobuf_ShutdownFile_notification_5fservice_2eproto();
+
+ void InitAsDefaultInstance();
+ static SubscribeRequest* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class TC_PROTO_API UnsubscribeRequest : public ::google::protobuf::Message {
+ public:
+ UnsubscribeRequest();
+ virtual ~UnsubscribeRequest();
+
+ UnsubscribeRequest(const UnsubscribeRequest& from);
+
+ inline UnsubscribeRequest& operator=(const UnsubscribeRequest& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+ return _unknown_fields_;
+ }
+
+ inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+ return &_unknown_fields_;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const UnsubscribeRequest& default_instance();
+
+ void Swap(UnsubscribeRequest* other);
+
+ // implements Message ----------------------------------------------
+
+ UnsubscribeRequest* New() const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ public:
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional .bgs.protocol.notification.v1.Subscription subscription = 1;
+ inline bool has_subscription() const;
+ inline void clear_subscription();
+ static const int kSubscriptionFieldNumber = 1;
+ inline const ::bgs::protocol::notification::v1::Subscription& subscription() const;
+ inline ::bgs::protocol::notification::v1::Subscription* mutable_subscription();
+ inline ::bgs::protocol::notification::v1::Subscription* release_subscription();
+ inline void set_allocated_subscription(::bgs::protocol::notification::v1::Subscription* subscription);
+
+ // @@protoc_insertion_point(class_scope:bgs.protocol.notification.v1.UnsubscribeRequest)
+ private:
+ inline void set_has_subscription();
+ inline void clear_has_subscription();
+
+ ::google::protobuf::UnknownFieldSet _unknown_fields_;
+
+ ::google::protobuf::uint32 _has_bits_[1];
+ mutable int _cached_size_;
+ ::bgs::protocol::notification::v1::Subscription* subscription_;
+ friend void TC_PROTO_API protobuf_AddDesc_notification_5fservice_2eproto();
+ friend void protobuf_AssignDesc_notification_5fservice_2eproto();
+ friend void protobuf_ShutdownFile_notification_5fservice_2eproto();
+
+ void InitAsDefaultInstance();
+ static UnsubscribeRequest* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class TC_PROTO_API PublishRequest : public ::google::protobuf::Message {
+ public:
+ PublishRequest();
+ virtual ~PublishRequest();
+
+ PublishRequest(const PublishRequest& from);
+
+ inline PublishRequest& operator=(const PublishRequest& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+ return _unknown_fields_;
+ }
+
+ inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+ return &_unknown_fields_;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const PublishRequest& default_instance();
+
+ void Swap(PublishRequest* other);
+
+ // implements Message ----------------------------------------------
+
+ PublishRequest* New() const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ public:
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional .bgs.protocol.notification.v1.Target target = 1;
+ inline bool has_target() const;
+ inline void clear_target();
+ static const int kTargetFieldNumber = 1;
+ inline const ::bgs::protocol::notification::v1::Target& target() const;
+ inline ::bgs::protocol::notification::v1::Target* mutable_target();
+ inline ::bgs::protocol::notification::v1::Target* release_target();
+ inline void set_allocated_target(::bgs::protocol::notification::v1::Target* target);
+
+ // optional .bgs.protocol.notification.v1.Notification notification = 2;
+ inline bool has_notification() const;
+ inline void clear_notification();
+ static const int kNotificationFieldNumber = 2;
+ inline const ::bgs::protocol::notification::v1::Notification& notification() const;
+ inline ::bgs::protocol::notification::v1::Notification* mutable_notification();
+ inline ::bgs::protocol::notification::v1::Notification* release_notification();
+ inline void set_allocated_notification(::bgs::protocol::notification::v1::Notification* notification);
+
+ // @@protoc_insertion_point(class_scope:bgs.protocol.notification.v1.PublishRequest)
+ private:
+ inline void set_has_target();
+ inline void clear_has_target();
+ inline void set_has_notification();
+ inline void clear_has_notification();
+
+ ::google::protobuf::UnknownFieldSet _unknown_fields_;
+
+ ::google::protobuf::uint32 _has_bits_[1];
+ mutable int _cached_size_;
+ ::bgs::protocol::notification::v1::Target* target_;
+ ::bgs::protocol::notification::v1::Notification* notification_;
+ friend void TC_PROTO_API protobuf_AddDesc_notification_5fservice_2eproto();
+ friend void protobuf_AssignDesc_notification_5fservice_2eproto();
+ friend void protobuf_ShutdownFile_notification_5fservice_2eproto();
+
+ void InitAsDefaultInstance();
+ static PublishRequest* default_instance_;
+};
+// ===================================================================
+
+class TC_PROTO_API NotificationService : public ServiceBase
+{
+ public:
+
+ explicit NotificationService(bool use_original_hash);
+ NotificationService(NotificationService const&) = delete;
+ NotificationService(NotificationService&&) = delete;
+ NotificationService& operator=(NotificationService const&) = delete;
+ NotificationService& operator=(NotificationService&&) = delete;
+ virtual ~NotificationService();
+
+ typedef std::integral_constant<uint32, 0xCBE3C43u> OriginalHash;
+ typedef std::integral_constant<uint32, 0x53C8C253u> NameHash;
+
+ static google::protobuf::ServiceDescriptor const* descriptor();
+
+ void CallServerMethod(uint32 token, uint32 methodId, MessageBuffer buffer) final;
+
+ protected:
+ // server methods --------------------------------------------------
+ virtual uint32 HandleSendNotification(::bgs::protocol::notification::v1::Notification const* request, ::bgs::protocol::NoData* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation);
+ virtual uint32 HandleSubscribe(::bgs::protocol::notification::v1::SubscribeRequest const* request, ::bgs::protocol::NoData* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation);
+ virtual uint32 HandleUnsubscribe(::bgs::protocol::notification::v1::UnsubscribeRequest const* request, ::bgs::protocol::NoData* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation);
+ virtual uint32 HandlePublish(::bgs::protocol::notification::v1::PublishRequest const* request, ::bgs::protocol::NoData* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation);
+
+ private:
+ void ParseAndHandleSendNotification(uint32 token, uint32 methodId, MessageBuffer& buffer);
+ void ParseAndHandleSubscribe(uint32 token, uint32 methodId, MessageBuffer& buffer);
+ void ParseAndHandleUnsubscribe(uint32 token, uint32 methodId, MessageBuffer& buffer);
+ void ParseAndHandlePublish(uint32 token, uint32 methodId, MessageBuffer& buffer);
+};
+
+// -------------------------------------------------------------------
+
+class TC_PROTO_API NotificationListener : public ServiceBase
+{
+ public:
+
+ explicit NotificationListener(bool use_original_hash);
+ NotificationListener(NotificationListener const&) = delete;
+ NotificationListener(NotificationListener&&) = delete;
+ NotificationListener& operator=(NotificationListener const&) = delete;
+ NotificationListener& operator=(NotificationListener&&) = delete;
+ virtual ~NotificationListener();
+
+ typedef std::integral_constant<uint32, 0xE1CB2EA8u> OriginalHash;
+ typedef std::integral_constant<uint32, 0xC1490E58u> NameHash;
+
+ static google::protobuf::ServiceDescriptor const* descriptor();
+
+ // client methods --------------------------------------------------
+ void OnNotificationReceived(::bgs::protocol::notification::v1::Notification const* request, bool client = false, bool server = false);
+
+ void CallServerMethod(uint32 token, uint32 methodId, MessageBuffer buffer) final;
+};
+
+// ===================================================================
+
+// ===================================================================
+
+// SubscribeRequest
+
+// optional .bgs.protocol.notification.v1.Subscription subscription = 1;
+inline bool SubscribeRequest::has_subscription() const {
+ return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void SubscribeRequest::set_has_subscription() {
+ _has_bits_[0] |= 0x00000001u;
+}
+inline void SubscribeRequest::clear_has_subscription() {
+ _has_bits_[0] &= ~0x00000001u;
+}
+inline void SubscribeRequest::clear_subscription() {
+ if (subscription_ != NULL) subscription_->::bgs::protocol::notification::v1::Subscription::Clear();
+ clear_has_subscription();
+}
+inline const ::bgs::protocol::notification::v1::Subscription& SubscribeRequest::subscription() const {
+ // @@protoc_insertion_point(field_get:bgs.protocol.notification.v1.SubscribeRequest.subscription)
+ return subscription_ != NULL ? *subscription_ : *default_instance_->subscription_;
+}
+inline ::bgs::protocol::notification::v1::Subscription* SubscribeRequest::mutable_subscription() {
+ set_has_subscription();
+ if (subscription_ == NULL) subscription_ = new ::bgs::protocol::notification::v1::Subscription;
+ // @@protoc_insertion_point(field_mutable:bgs.protocol.notification.v1.SubscribeRequest.subscription)
+ return subscription_;
+}
+inline ::bgs::protocol::notification::v1::Subscription* SubscribeRequest::release_subscription() {
+ clear_has_subscription();
+ ::bgs::protocol::notification::v1::Subscription* temp = subscription_;
+ subscription_ = NULL;
+ return temp;
+}
+inline void SubscribeRequest::set_allocated_subscription(::bgs::protocol::notification::v1::Subscription* subscription) {
+ delete subscription_;
+ subscription_ = subscription;
+ if (subscription) {
+ set_has_subscription();
+ } else {
+ clear_has_subscription();
+ }
+ // @@protoc_insertion_point(field_set_allocated:bgs.protocol.notification.v1.SubscribeRequest.subscription)
+}
+
+// -------------------------------------------------------------------
+
+// UnsubscribeRequest
+
+// optional .bgs.protocol.notification.v1.Subscription subscription = 1;
+inline bool UnsubscribeRequest::has_subscription() const {
+ return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void UnsubscribeRequest::set_has_subscription() {
+ _has_bits_[0] |= 0x00000001u;
+}
+inline void UnsubscribeRequest::clear_has_subscription() {
+ _has_bits_[0] &= ~0x00000001u;
+}
+inline void UnsubscribeRequest::clear_subscription() {
+ if (subscription_ != NULL) subscription_->::bgs::protocol::notification::v1::Subscription::Clear();
+ clear_has_subscription();
+}
+inline const ::bgs::protocol::notification::v1::Subscription& UnsubscribeRequest::subscription() const {
+ // @@protoc_insertion_point(field_get:bgs.protocol.notification.v1.UnsubscribeRequest.subscription)
+ return subscription_ != NULL ? *subscription_ : *default_instance_->subscription_;
+}
+inline ::bgs::protocol::notification::v1::Subscription* UnsubscribeRequest::mutable_subscription() {
+ set_has_subscription();
+ if (subscription_ == NULL) subscription_ = new ::bgs::protocol::notification::v1::Subscription;
+ // @@protoc_insertion_point(field_mutable:bgs.protocol.notification.v1.UnsubscribeRequest.subscription)
+ return subscription_;
+}
+inline ::bgs::protocol::notification::v1::Subscription* UnsubscribeRequest::release_subscription() {
+ clear_has_subscription();
+ ::bgs::protocol::notification::v1::Subscription* temp = subscription_;
+ subscription_ = NULL;
+ return temp;
+}
+inline void UnsubscribeRequest::set_allocated_subscription(::bgs::protocol::notification::v1::Subscription* subscription) {
+ delete subscription_;
+ subscription_ = subscription;
+ if (subscription) {
+ set_has_subscription();
+ } else {
+ clear_has_subscription();
+ }
+ // @@protoc_insertion_point(field_set_allocated:bgs.protocol.notification.v1.UnsubscribeRequest.subscription)
+}
+
+// -------------------------------------------------------------------
+
+// PublishRequest
+
+// optional .bgs.protocol.notification.v1.Target target = 1;
+inline bool PublishRequest::has_target() const {
+ return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void PublishRequest::set_has_target() {
+ _has_bits_[0] |= 0x00000001u;
+}
+inline void PublishRequest::clear_has_target() {
+ _has_bits_[0] &= ~0x00000001u;
+}
+inline void PublishRequest::clear_target() {
+ if (target_ != NULL) target_->::bgs::protocol::notification::v1::Target::Clear();
+ clear_has_target();
+}
+inline const ::bgs::protocol::notification::v1::Target& PublishRequest::target() const {
+ // @@protoc_insertion_point(field_get:bgs.protocol.notification.v1.PublishRequest.target)
+ return target_ != NULL ? *target_ : *default_instance_->target_;
+}
+inline ::bgs::protocol::notification::v1::Target* PublishRequest::mutable_target() {
+ set_has_target();
+ if (target_ == NULL) target_ = new ::bgs::protocol::notification::v1::Target;
+ // @@protoc_insertion_point(field_mutable:bgs.protocol.notification.v1.PublishRequest.target)
+ return target_;
+}
+inline ::bgs::protocol::notification::v1::Target* PublishRequest::release_target() {
+ clear_has_target();
+ ::bgs::protocol::notification::v1::Target* temp = target_;
+ target_ = NULL;
+ return temp;
+}
+inline void PublishRequest::set_allocated_target(::bgs::protocol::notification::v1::Target* target) {
+ delete target_;
+ target_ = target;
+ if (target) {
+ set_has_target();
+ } else {
+ clear_has_target();
+ }
+ // @@protoc_insertion_point(field_set_allocated:bgs.protocol.notification.v1.PublishRequest.target)
+}
+
+// optional .bgs.protocol.notification.v1.Notification notification = 2;
+inline bool PublishRequest::has_notification() const {
+ return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void PublishRequest::set_has_notification() {
+ _has_bits_[0] |= 0x00000002u;
+}
+inline void PublishRequest::clear_has_notification() {
+ _has_bits_[0] &= ~0x00000002u;
+}
+inline void PublishRequest::clear_notification() {
+ if (notification_ != NULL) notification_->::bgs::protocol::notification::v1::Notification::Clear();
+ clear_has_notification();
+}
+inline const ::bgs::protocol::notification::v1::Notification& PublishRequest::notification() const {
+ // @@protoc_insertion_point(field_get:bgs.protocol.notification.v1.PublishRequest.notification)
+ return notification_ != NULL ? *notification_ : *default_instance_->notification_;
+}
+inline ::bgs::protocol::notification::v1::Notification* PublishRequest::mutable_notification() {
+ set_has_notification();
+ if (notification_ == NULL) notification_ = new ::bgs::protocol::notification::v1::Notification;
+ // @@protoc_insertion_point(field_mutable:bgs.protocol.notification.v1.PublishRequest.notification)
+ return notification_;
+}
+inline ::bgs::protocol::notification::v1::Notification* PublishRequest::release_notification() {
+ clear_has_notification();
+ ::bgs::protocol::notification::v1::Notification* temp = notification_;
+ notification_ = NULL;
+ return temp;
+}
+inline void PublishRequest::set_allocated_notification(::bgs::protocol::notification::v1::Notification* notification) {
+ delete notification_;
+ notification_ = notification;
+ if (notification) {
+ set_has_notification();
+ } else {
+ clear_has_notification();
+ }
+ // @@protoc_insertion_point(field_set_allocated:bgs.protocol.notification.v1.PublishRequest.notification)
+}
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace v1
+} // namespace notification
+} // namespace protocol
+} // namespace bgs
+
+#ifndef SWIG
+namespace google {
+namespace protobuf {
+} // namespace google
+} // namespace protobuf
+#endif // SWIG
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_notification_5fservice_2eproto__INCLUDED
diff --git a/src/server/proto/Client/notification_service.proto b/src/server/proto/Client/notification_service.proto
new file mode 100644
index 00000000000..072367d2d7d
--- /dev/null
+++ b/src/server/proto/Client/notification_service.proto
@@ -0,0 +1,66 @@
+syntax = "proto2";
+
+import "bgs/low/pb/client/rpc_types.proto";
+import "bgs/low/pb/client/notification_types.proto";
+package bgs.protocol.notification.v1;
+
+option optimize_for = CODE_SIZE;
+option cc_generic_services = false;
+
+message SubscribeRequest {
+ optional .bgs.protocol.notification.v1.Subscription subscription = 1;
+}
+
+message UnsubscribeRequest {
+ optional .bgs.protocol.notification.v1.Subscription subscription = 1;
+}
+
+message PublishRequest {
+ optional .bgs.protocol.notification.v1.Target target = 1;
+ optional .bgs.protocol.notification.v1.Notification notification = 2;
+}
+
+service NotificationService {
+ option (.bgs.protocol.service_options) = {
+ descriptor_name: "bnet.protocol.notification.NotificationService"
+ };
+ option (.bgs.protocol.sdk_service_options) = {
+ outbound: true
+ };
+ rpc SendNotification(.bgs.protocol.notification.v1.Notification) returns (.bgs.protocol.NoData) {
+ option (.bgs.protocol.method_options) = {
+ id: 1
+ };
+ }
+ rpc Subscribe(.bgs.protocol.notification.v1.SubscribeRequest) returns (.bgs.protocol.NoData) {
+ option (.bgs.protocol.method_options) = {
+ id: 6
+ };
+ }
+ rpc Unsubscribe(.bgs.protocol.notification.v1.UnsubscribeRequest) returns (.bgs.protocol.NoData) {
+ option (.bgs.protocol.method_options) = {
+ id: 7
+ };
+ }
+ rpc Publish(.bgs.protocol.notification.v1.PublishRequest) returns (.bgs.protocol.NoData) {
+ option (.bgs.protocol.method_options) = {
+ id: 8
+ };
+ }
+}
+
+service NotificationListener {
+ option (.bgs.protocol.service_options) = {
+ descriptor_name: "bnet.protocol.notification.NotificationListener"
+ };
+ option (.bgs.protocol.sdk_service_options) = {
+ inbound: true
+ };
+ rpc OnNotificationReceived(.bgs.protocol.notification.v1.Notification) returns (.bgs.protocol.NO_RESPONSE) {
+ option (.bgs.protocol.method_options) = {
+ id: 1
+ };
+ }
+}
+
+
diff --git a/src/server/proto/Client/report_service.pb.cc b/src/server/proto/Client/report_service.pb.cc
new file mode 100644
index 00000000000..fcaea55c605
--- /dev/null
+++ b/src/server/proto/Client/report_service.pb.cc
@@ -0,0 +1,376 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: report_service.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "report_service.pb.h"
+
+#include <utility>
+
+#include <google/protobuf/stubs/common.h>
+#include <google/protobuf/stubs/once.h>
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/wire_format_lite_inl.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/generated_message_reflection.h>
+#include <google/protobuf/reflection_ops.h>
+#include <google/protobuf/wire_format.h>
+#include "BattlenetRpcErrorCodes.h"
+// @@protoc_insertion_point(includes)
+
+namespace bgs {
+namespace protocol {
+namespace report {
+namespace v1 {
+
+namespace {
+
+const ::google::protobuf::Descriptor* SendReportRequest_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ SendReportRequest_reflection_ = NULL;
+const ::google::protobuf::Descriptor* SubmitReportRequest_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ SubmitReportRequest_reflection_ = NULL;
+const ::google::protobuf::ServiceDescriptor* ReportService_descriptor_ = NULL;
+
+} // namespace
+
+void protobuf_AssignDesc_report_5fservice_2eproto() {
+ protobuf_AddDesc_report_5fservice_2eproto();
+ const ::google::protobuf::FileDescriptor* file =
+ ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
+ "report_service.proto");
+ GOOGLE_CHECK(file != NULL);
+ SendReportRequest_descriptor_ = file->message_type(0);
+ static const int SendReportRequest_offsets_[2] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SendReportRequest, report_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SendReportRequest, program_),
+ };
+ SendReportRequest_reflection_ =
+ new ::google::protobuf::internal::GeneratedMessageReflection(
+ SendReportRequest_descriptor_,
+ SendReportRequest::default_instance_,
+ SendReportRequest_offsets_,
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SendReportRequest, _has_bits_[0]),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SendReportRequest, _unknown_fields_),
+ -1,
+ ::google::protobuf::DescriptorPool::generated_pool(),
+ ::google::protobuf::MessageFactory::generated_factory(),
+ sizeof(SendReportRequest));
+ SubmitReportRequest_descriptor_ = file->message_type(1);
+ static const int SubmitReportRequest_offsets_[3] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubmitReportRequest, agent_id_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubmitReportRequest, report_type_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubmitReportRequest, program_),
+ };
+ SubmitReportRequest_reflection_ =
+ new ::google::protobuf::internal::GeneratedMessageReflection(
+ SubmitReportRequest_descriptor_,
+ SubmitReportRequest::default_instance_,
+ SubmitReportRequest_offsets_,
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubmitReportRequest, _has_bits_[0]),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SubmitReportRequest, _unknown_fields_),
+ -1,
+ ::google::protobuf::DescriptorPool::generated_pool(),
+ ::google::protobuf::MessageFactory::generated_factory(),
+ sizeof(SubmitReportRequest));
+ ReportService_descriptor_ = file->service(0);
+}
+
+namespace {
+
+GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_);
+inline void protobuf_AssignDescriptorsOnce() {
+ ::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_,
+ &protobuf_AssignDesc_report_5fservice_2eproto);
+}
+
+void protobuf_RegisterTypes(const ::std::string&) {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ SendReportRequest_descriptor_, &SendReportRequest::default_instance());
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ SubmitReportRequest_descriptor_, &SubmitReportRequest::default_instance());
+}
+
+} // namespace
+
+void protobuf_ShutdownFile_report_5fservice_2eproto() {
+ delete SendReportRequest::default_instance_;
+ delete SendReportRequest_reflection_;
+ delete SubmitReportRequest::default_instance_;
+ delete SubmitReportRequest_reflection_;
+}
+
+void protobuf_AddDesc_report_5fservice_2eproto() {
+ static bool already_here = false;
+ if (already_here) return;
+ already_here = true;
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::bgs::protocol::account::v1::protobuf_AddDesc_account_5ftypes_2eproto();
+ ::bgs::protocol::report::v1::protobuf_AddDesc_report_5ftypes_2eproto();
+ ::bgs::protocol::protobuf_AddDesc_rpc_5ftypes_2eproto();
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ "\n\024report_service.proto\022\026bgs.protocol.rep"
+ "ort.v1\032\023account_types.proto\032\022report_type"
+ "s.proto\032\017rpc_types.proto\"T\n\021SendReportRe"
+ "quest\022.\n\006report\030\001 \002(\0132\036.bgs.protocol.rep"
+ "ort.v1.Report\022\017\n\007program\030\002 \001(\r\"\235\001\n\023Submi"
+ "tReportRequest\022<\n\010agent_id\030\001 \001(\0132*.bgs.p"
+ "rotocol.account.v1.GameAccountHandle\0227\n\013"
+ "report_type\030\002 \001(\0132\".bgs.protocol.report."
+ "v1.ReportType\022\017\n\007program\030\003 \001(\r2\361\001\n\rRepor"
+ "tService\022U\n\nSendReport\022).bgs.protocol.re"
+ "port.v1.SendReportRequest\032\024.bgs.protocol"
+ ".NoData\"\006\202\371+\002\010\001\022Y\n\014SubmitReport\022+.bgs.pr"
+ "otocol.report.v1.SubmitReportRequest\032\024.b"
+ "gs.protocol.NoData\"\006\202\371+\002\010\002\032.\202\371+$\n\"bnet.p"
+ "rotocol.report.ReportService\212\371+\002\020\001B\005H\002\200\001"
+ "\000", 601);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "report_service.proto", &protobuf_RegisterTypes);
+ SendReportRequest::default_instance_ = new SendReportRequest();
+ SubmitReportRequest::default_instance_ = new SubmitReportRequest();
+ SendReportRequest::default_instance_->InitAsDefaultInstance();
+ SubmitReportRequest::default_instance_->InitAsDefaultInstance();
+ ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_report_5fservice_2eproto);
+}
+
+// Force AddDescriptors() to be called at static initialization time.
+struct StaticDescriptorInitializer_report_5fservice_2eproto {
+ StaticDescriptorInitializer_report_5fservice_2eproto() {
+ protobuf_AddDesc_report_5fservice_2eproto();
+ }
+} static_descriptor_initializer_report_5fservice_2eproto_;
+// ===================================================================
+
+#ifndef _MSC_VER
+const int SendReportRequest::kReportFieldNumber;
+const int SendReportRequest::kProgramFieldNumber;
+#endif // !_MSC_VER
+
+SendReportRequest::SendReportRequest()
+ : ::google::protobuf::Message() {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:bgs.protocol.report.v1.SendReportRequest)
+}
+
+void SendReportRequest::InitAsDefaultInstance() {
+ report_ = const_cast< ::bgs::protocol::report::v1::Report*>(&::bgs::protocol::report::v1::Report::default_instance());
+}
+
+SendReportRequest::SendReportRequest(const SendReportRequest& from)
+ : ::google::protobuf::Message() {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:bgs.protocol.report.v1.SendReportRequest)
+}
+
+void SendReportRequest::SharedCtor() {
+ _cached_size_ = 0;
+ report_ = NULL;
+ program_ = 0u;
+ ::memset(_has_bits_, 0, sizeof(_has_bits_));
+}
+
+SendReportRequest::~SendReportRequest() {
+ // @@protoc_insertion_point(destructor:bgs.protocol.report.v1.SendReportRequest)
+ SharedDtor();
+}
+
+void SendReportRequest::SharedDtor() {
+ if (this != default_instance_) {
+ delete report_;
+ }
+}
+
+void SendReportRequest::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* SendReportRequest::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return SendReportRequest_descriptor_;
+}
+
+const SendReportRequest& SendReportRequest::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_report_5fservice_2eproto();
+ return *default_instance_;
+}
+
+SendReportRequest* SendReportRequest::default_instance_ = NULL;
+
+SendReportRequest* SendReportRequest::New() const {
+ return new SendReportRequest;
+}
+
+void SendReportRequest::Swap(SendReportRequest* other) {
+ if (other != this) {
+ GetReflection()->Swap(this, other);}
+}
+
+::google::protobuf::Metadata SendReportRequest::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = SendReportRequest_descriptor_;
+ metadata.reflection = SendReportRequest_reflection_;
+ return metadata;
+}
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int SubmitReportRequest::kAgentIdFieldNumber;
+const int SubmitReportRequest::kReportTypeFieldNumber;
+const int SubmitReportRequest::kProgramFieldNumber;
+#endif // !_MSC_VER
+
+SubmitReportRequest::SubmitReportRequest()
+ : ::google::protobuf::Message() {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:bgs.protocol.report.v1.SubmitReportRequest)
+}
+
+void SubmitReportRequest::InitAsDefaultInstance() {
+ agent_id_ = const_cast< ::bgs::protocol::account::v1::GameAccountHandle*>(&::bgs::protocol::account::v1::GameAccountHandle::default_instance());
+ report_type_ = const_cast< ::bgs::protocol::report::v1::ReportType*>(&::bgs::protocol::report::v1::ReportType::default_instance());
+}
+
+SubmitReportRequest::SubmitReportRequest(const SubmitReportRequest& from)
+ : ::google::protobuf::Message() {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:bgs.protocol.report.v1.SubmitReportRequest)
+}
+
+void SubmitReportRequest::SharedCtor() {
+ _cached_size_ = 0;
+ agent_id_ = NULL;
+ report_type_ = NULL;
+ program_ = 0u;
+ ::memset(_has_bits_, 0, sizeof(_has_bits_));
+}
+
+SubmitReportRequest::~SubmitReportRequest() {
+ // @@protoc_insertion_point(destructor:bgs.protocol.report.v1.SubmitReportRequest)
+ SharedDtor();
+}
+
+void SubmitReportRequest::SharedDtor() {
+ if (this != default_instance_) {
+ delete agent_id_;
+ delete report_type_;
+ }
+}
+
+void SubmitReportRequest::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* SubmitReportRequest::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return SubmitReportRequest_descriptor_;
+}
+
+const SubmitReportRequest& SubmitReportRequest::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_report_5fservice_2eproto();
+ return *default_instance_;
+}
+
+SubmitReportRequest* SubmitReportRequest::default_instance_ = NULL;
+
+SubmitReportRequest* SubmitReportRequest::New() const {
+ return new SubmitReportRequest;
+}
+
+void SubmitReportRequest::Swap(SubmitReportRequest* other) {
+ if (other != this) {
+ GetReflection()->Swap(this, other);}
+}
+
+::google::protobuf::Metadata SubmitReportRequest::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = SubmitReportRequest_descriptor_;
+ metadata.reflection = SubmitReportRequest_reflection_;
+ return metadata;
+}
+
+// ===================================================================
+
+ReportService::ReportService(bool use_original_hash) : ServiceBase(use_original_hash ? OriginalHash::value : NameHash::value) {
+}
+
+ReportService::~ReportService() {
+}
+
+google::protobuf::ServiceDescriptor const* ReportService::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return ReportService_descriptor_;
+}
+
+void ReportService::CallServerMethod(uint32 token, uint32 methodId, MessageBuffer buffer) {
+ switch(methodId & 0x3FFFFFFF) {
+ case 1:
+ ParseAndHandleSendReport(token, methodId, buffer);
+ break;
+ case 2:
+ ParseAndHandleSubmitReport(token, methodId, buffer);
+ break;
+ default:
+ LogInvalidMethod(methodId);
+ SendResponse(service_hash_, methodId, token, ERROR_RPC_INVALID_METHOD);
+ break;
+ }
+}
+
+uint32 ReportService::HandleSendReport(::bgs::protocol::report::v1::SendReportRequest const* request, ::bgs::protocol::NoData* /*response*/, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& /*continuation*/) {
+ LogUnimplementedServerMethod("ReportService.SendReport", request);
+ return ERROR_RPC_NOT_IMPLEMENTED;
+}
+
+uint32 ReportService::HandleSubmitReport(::bgs::protocol::report::v1::SubmitReportRequest const* request, ::bgs::protocol::NoData* /*response*/, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& /*continuation*/) {
+ LogUnimplementedServerMethod("ReportService.SubmitReport", request);
+ return ERROR_RPC_NOT_IMPLEMENTED;
+}
+
+void ReportService::ParseAndHandleSendReport(uint32 token, uint32 methodId, MessageBuffer& buffer) {
+ ::bgs::protocol::report::v1::SendReportRequest request;
+ if (!request.ParseFromArray(buffer.GetReadPointer(), buffer.GetActiveSize())) {
+ LogFailedParsingRequest("ReportService.SendReport");
+ SendResponse(service_hash_, methodId, token, ERROR_RPC_MALFORMED_REQUEST);
+ return;
+ }
+ LogCallServerMethod("ReportService.SendReport", "bgs.protocol.report.v1.SendReportRequest", &request);
+ std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)> continuation = CreateServerContinuation(token, methodId, "ReportService.SendReport", ::bgs::protocol::NoData::descriptor());
+ ::bgs::protocol::NoData response;
+ uint32 status = HandleSendReport(&request, &response, continuation);
+ if (continuation)
+ continuation(this, status, &response);
+}
+
+void ReportService::ParseAndHandleSubmitReport(uint32 token, uint32 methodId, MessageBuffer& buffer) {
+ ::bgs::protocol::report::v1::SubmitReportRequest request;
+ if (!request.ParseFromArray(buffer.GetReadPointer(), buffer.GetActiveSize())) {
+ LogFailedParsingRequest("ReportService.SubmitReport");
+ SendResponse(service_hash_, methodId, token, ERROR_RPC_MALFORMED_REQUEST);
+ return;
+ }
+ LogCallServerMethod("ReportService.SubmitReport", "bgs.protocol.report.v1.SubmitReportRequest", &request);
+ std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)> continuation = CreateServerContinuation(token, methodId, "ReportService.SubmitReport", ::bgs::protocol::NoData::descriptor());
+ ::bgs::protocol::NoData response;
+ uint32 status = HandleSubmitReport(&request, &response, continuation);
+ if (continuation)
+ continuation(this, status, &response);
+}
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace v1
+} // namespace report
+} // namespace protocol
+} // namespace bgs
+
+// @@protoc_insertion_point(global_scope)
diff --git a/src/server/proto/Client/report_service.pb.h b/src/server/proto/Client/report_service.pb.h
new file mode 100644
index 00000000000..84b01905e9c
--- /dev/null
+++ b/src/server/proto/Client/report_service.pb.h
@@ -0,0 +1,444 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: report_service.proto
+
+#ifndef PROTOBUF_report_5fservice_2eproto__INCLUDED
+#define PROTOBUF_report_5fservice_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 2006000
+#error This file was generated by a newer version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please update
+#error your headers.
+#endif
+#if 2006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h>
+#include <google/protobuf/extension_set.h>
+#include <google/protobuf/unknown_field_set.h>
+#include "account_types.pb.h"
+#include "report_types.pb.h"
+#include "rpc_types.pb.h"
+#include "ServiceBase.h"
+#include "MessageBuffer.h"
+#include <functional>
+#include <type_traits>
+// @@protoc_insertion_point(includes)
+
+namespace bgs {
+namespace protocol {
+namespace report {
+namespace v1 {
+
+// Internal implementation detail -- do not call these.
+void TC_PROTO_API protobuf_AddDesc_report_5fservice_2eproto();
+void protobuf_AssignDesc_report_5fservice_2eproto();
+void protobuf_ShutdownFile_report_5fservice_2eproto();
+
+class SendReportRequest;
+class SubmitReportRequest;
+
+// ===================================================================
+
+class TC_PROTO_API SendReportRequest : public ::google::protobuf::Message {
+ public:
+ SendReportRequest();
+ virtual ~SendReportRequest();
+
+ SendReportRequest(const SendReportRequest& from);
+
+ inline SendReportRequest& operator=(const SendReportRequest& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+ return _unknown_fields_;
+ }
+
+ inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+ return &_unknown_fields_;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const SendReportRequest& default_instance();
+
+ void Swap(SendReportRequest* other);
+
+ // implements Message ----------------------------------------------
+
+ SendReportRequest* New() const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ public:
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // required .bgs.protocol.report.v1.Report report = 1;
+ inline bool has_report() const;
+ inline void clear_report();
+ static const int kReportFieldNumber = 1;
+ inline const ::bgs::protocol::report::v1::Report& report() const;
+ inline ::bgs::protocol::report::v1::Report* mutable_report();
+ inline ::bgs::protocol::report::v1::Report* release_report();
+ inline void set_allocated_report(::bgs::protocol::report::v1::Report* report);
+
+ // optional uint32 program = 2;
+ inline bool has_program() const;
+ inline void clear_program();
+ static const int kProgramFieldNumber = 2;
+ inline ::google::protobuf::uint32 program() const;
+ inline void set_program(::google::protobuf::uint32 value);
+
+ // @@protoc_insertion_point(class_scope:bgs.protocol.report.v1.SendReportRequest)
+ private:
+ inline void set_has_report();
+ inline void clear_has_report();
+ inline void set_has_program();
+ inline void clear_has_program();
+
+ ::google::protobuf::UnknownFieldSet _unknown_fields_;
+
+ ::google::protobuf::uint32 _has_bits_[1];
+ mutable int _cached_size_;
+ ::bgs::protocol::report::v1::Report* report_;
+ ::google::protobuf::uint32 program_;
+ friend void TC_PROTO_API protobuf_AddDesc_report_5fservice_2eproto();
+ friend void protobuf_AssignDesc_report_5fservice_2eproto();
+ friend void protobuf_ShutdownFile_report_5fservice_2eproto();
+
+ void InitAsDefaultInstance();
+ static SendReportRequest* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class TC_PROTO_API SubmitReportRequest : public ::google::protobuf::Message {
+ public:
+ SubmitReportRequest();
+ virtual ~SubmitReportRequest();
+
+ SubmitReportRequest(const SubmitReportRequest& from);
+
+ inline SubmitReportRequest& operator=(const SubmitReportRequest& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+ return _unknown_fields_;
+ }
+
+ inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+ return &_unknown_fields_;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const SubmitReportRequest& default_instance();
+
+ void Swap(SubmitReportRequest* other);
+
+ // implements Message ----------------------------------------------
+
+ SubmitReportRequest* New() const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ public:
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional .bgs.protocol.account.v1.GameAccountHandle agent_id = 1;
+ inline bool has_agent_id() const;
+ inline void clear_agent_id();
+ static const int kAgentIdFieldNumber = 1;
+ inline const ::bgs::protocol::account::v1::GameAccountHandle& agent_id() const;
+ inline ::bgs::protocol::account::v1::GameAccountHandle* mutable_agent_id();
+ inline ::bgs::protocol::account::v1::GameAccountHandle* release_agent_id();
+ inline void set_allocated_agent_id(::bgs::protocol::account::v1::GameAccountHandle* agent_id);
+
+ // optional .bgs.protocol.report.v1.ReportType report_type = 2;
+ inline bool has_report_type() const;
+ inline void clear_report_type();
+ static const int kReportTypeFieldNumber = 2;
+ inline const ::bgs::protocol::report::v1::ReportType& report_type() const;
+ inline ::bgs::protocol::report::v1::ReportType* mutable_report_type();
+ inline ::bgs::protocol::report::v1::ReportType* release_report_type();
+ inline void set_allocated_report_type(::bgs::protocol::report::v1::ReportType* report_type);
+
+ // optional uint32 program = 3;
+ inline bool has_program() const;
+ inline void clear_program();
+ static const int kProgramFieldNumber = 3;
+ inline ::google::protobuf::uint32 program() const;
+ inline void set_program(::google::protobuf::uint32 value);
+
+ // @@protoc_insertion_point(class_scope:bgs.protocol.report.v1.SubmitReportRequest)
+ private:
+ inline void set_has_agent_id();
+ inline void clear_has_agent_id();
+ inline void set_has_report_type();
+ inline void clear_has_report_type();
+ inline void set_has_program();
+ inline void clear_has_program();
+
+ ::google::protobuf::UnknownFieldSet _unknown_fields_;
+
+ ::google::protobuf::uint32 _has_bits_[1];
+ mutable int _cached_size_;
+ ::bgs::protocol::account::v1::GameAccountHandle* agent_id_;
+ ::bgs::protocol::report::v1::ReportType* report_type_;
+ ::google::protobuf::uint32 program_;
+ friend void TC_PROTO_API protobuf_AddDesc_report_5fservice_2eproto();
+ friend void protobuf_AssignDesc_report_5fservice_2eproto();
+ friend void protobuf_ShutdownFile_report_5fservice_2eproto();
+
+ void InitAsDefaultInstance();
+ static SubmitReportRequest* default_instance_;
+};
+// ===================================================================
+
+class TC_PROTO_API ReportService : public ServiceBase
+{
+ public:
+
+ explicit ReportService(bool use_original_hash);
+ ReportService(ReportService const&) = delete;
+ ReportService(ReportService&&) = delete;
+ ReportService& operator=(ReportService const&) = delete;
+ ReportService& operator=(ReportService&&) = delete;
+ virtual ~ReportService();
+
+ typedef std::integral_constant<uint32, 0x7CAF61C9u> OriginalHash;
+ typedef std::integral_constant<uint32, 0x724F5F47u> NameHash;
+
+ static google::protobuf::ServiceDescriptor const* descriptor();
+
+ void CallServerMethod(uint32 token, uint32 methodId, MessageBuffer buffer) final;
+
+ protected:
+ // server methods --------------------------------------------------
+ virtual uint32 HandleSendReport(::bgs::protocol::report::v1::SendReportRequest const* request, ::bgs::protocol::NoData* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation);
+ virtual uint32 HandleSubmitReport(::bgs::protocol::report::v1::SubmitReportRequest const* request, ::bgs::protocol::NoData* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation);
+
+ private:
+ void ParseAndHandleSendReport(uint32 token, uint32 methodId, MessageBuffer& buffer);
+ void ParseAndHandleSubmitReport(uint32 token, uint32 methodId, MessageBuffer& buffer);
+};
+
+// ===================================================================
+
+// ===================================================================
+
+// SendReportRequest
+
+// required .bgs.protocol.report.v1.Report report = 1;
+inline bool SendReportRequest::has_report() const {
+ return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void SendReportRequest::set_has_report() {
+ _has_bits_[0] |= 0x00000001u;
+}
+inline void SendReportRequest::clear_has_report() {
+ _has_bits_[0] &= ~0x00000001u;
+}
+inline void SendReportRequest::clear_report() {
+ if (report_ != NULL) report_->::bgs::protocol::report::v1::Report::Clear();
+ clear_has_report();
+}
+inline const ::bgs::protocol::report::v1::Report& SendReportRequest::report() const {
+ // @@protoc_insertion_point(field_get:bgs.protocol.report.v1.SendReportRequest.report)
+ return report_ != NULL ? *report_ : *default_instance_->report_;
+}
+inline ::bgs::protocol::report::v1::Report* SendReportRequest::mutable_report() {
+ set_has_report();
+ if (report_ == NULL) report_ = new ::bgs::protocol::report::v1::Report;
+ // @@protoc_insertion_point(field_mutable:bgs.protocol.report.v1.SendReportRequest.report)
+ return report_;
+}
+inline ::bgs::protocol::report::v1::Report* SendReportRequest::release_report() {
+ clear_has_report();
+ ::bgs::protocol::report::v1::Report* temp = report_;
+ report_ = NULL;
+ return temp;
+}
+inline void SendReportRequest::set_allocated_report(::bgs::protocol::report::v1::Report* report) {
+ delete report_;
+ report_ = report;
+ if (report) {
+ set_has_report();
+ } else {
+ clear_has_report();
+ }
+ // @@protoc_insertion_point(field_set_allocated:bgs.protocol.report.v1.SendReportRequest.report)
+}
+
+// optional uint32 program = 2;
+inline bool SendReportRequest::has_program() const {
+ return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void SendReportRequest::set_has_program() {
+ _has_bits_[0] |= 0x00000002u;
+}
+inline void SendReportRequest::clear_has_program() {
+ _has_bits_[0] &= ~0x00000002u;
+}
+inline void SendReportRequest::clear_program() {
+ program_ = 0u;
+ clear_has_program();
+}
+inline ::google::protobuf::uint32 SendReportRequest::program() const {
+ // @@protoc_insertion_point(field_get:bgs.protocol.report.v1.SendReportRequest.program)
+ return program_;
+}
+inline void SendReportRequest::set_program(::google::protobuf::uint32 value) {
+ set_has_program();
+ program_ = value;
+ // @@protoc_insertion_point(field_set:bgs.protocol.report.v1.SendReportRequest.program)
+}
+
+// -------------------------------------------------------------------
+
+// SubmitReportRequest
+
+// optional .bgs.protocol.account.v1.GameAccountHandle agent_id = 1;
+inline bool SubmitReportRequest::has_agent_id() const {
+ return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void SubmitReportRequest::set_has_agent_id() {
+ _has_bits_[0] |= 0x00000001u;
+}
+inline void SubmitReportRequest::clear_has_agent_id() {
+ _has_bits_[0] &= ~0x00000001u;
+}
+inline void SubmitReportRequest::clear_agent_id() {
+ if (agent_id_ != NULL) agent_id_->::bgs::protocol::account::v1::GameAccountHandle::Clear();
+ clear_has_agent_id();
+}
+inline const ::bgs::protocol::account::v1::GameAccountHandle& SubmitReportRequest::agent_id() const {
+ // @@protoc_insertion_point(field_get:bgs.protocol.report.v1.SubmitReportRequest.agent_id)
+ return agent_id_ != NULL ? *agent_id_ : *default_instance_->agent_id_;
+}
+inline ::bgs::protocol::account::v1::GameAccountHandle* SubmitReportRequest::mutable_agent_id() {
+ set_has_agent_id();
+ if (agent_id_ == NULL) agent_id_ = new ::bgs::protocol::account::v1::GameAccountHandle;
+ // @@protoc_insertion_point(field_mutable:bgs.protocol.report.v1.SubmitReportRequest.agent_id)
+ return agent_id_;
+}
+inline ::bgs::protocol::account::v1::GameAccountHandle* SubmitReportRequest::release_agent_id() {
+ clear_has_agent_id();
+ ::bgs::protocol::account::v1::GameAccountHandle* temp = agent_id_;
+ agent_id_ = NULL;
+ return temp;
+}
+inline void SubmitReportRequest::set_allocated_agent_id(::bgs::protocol::account::v1::GameAccountHandle* agent_id) {
+ delete agent_id_;
+ agent_id_ = agent_id;
+ if (agent_id) {
+ set_has_agent_id();
+ } else {
+ clear_has_agent_id();
+ }
+ // @@protoc_insertion_point(field_set_allocated:bgs.protocol.report.v1.SubmitReportRequest.agent_id)
+}
+
+// optional .bgs.protocol.report.v1.ReportType report_type = 2;
+inline bool SubmitReportRequest::has_report_type() const {
+ return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void SubmitReportRequest::set_has_report_type() {
+ _has_bits_[0] |= 0x00000002u;
+}
+inline void SubmitReportRequest::clear_has_report_type() {
+ _has_bits_[0] &= ~0x00000002u;
+}
+inline void SubmitReportRequest::clear_report_type() {
+ if (report_type_ != NULL) report_type_->::bgs::protocol::report::v1::ReportType::Clear();
+ clear_has_report_type();
+}
+inline const ::bgs::protocol::report::v1::ReportType& SubmitReportRequest::report_type() const {
+ // @@protoc_insertion_point(field_get:bgs.protocol.report.v1.SubmitReportRequest.report_type)
+ return report_type_ != NULL ? *report_type_ : *default_instance_->report_type_;
+}
+inline ::bgs::protocol::report::v1::ReportType* SubmitReportRequest::mutable_report_type() {
+ set_has_report_type();
+ if (report_type_ == NULL) report_type_ = new ::bgs::protocol::report::v1::ReportType;
+ // @@protoc_insertion_point(field_mutable:bgs.protocol.report.v1.SubmitReportRequest.report_type)
+ return report_type_;
+}
+inline ::bgs::protocol::report::v1::ReportType* SubmitReportRequest::release_report_type() {
+ clear_has_report_type();
+ ::bgs::protocol::report::v1::ReportType* temp = report_type_;
+ report_type_ = NULL;
+ return temp;
+}
+inline void SubmitReportRequest::set_allocated_report_type(::bgs::protocol::report::v1::ReportType* report_type) {
+ delete report_type_;
+ report_type_ = report_type;
+ if (report_type) {
+ set_has_report_type();
+ } else {
+ clear_has_report_type();
+ }
+ // @@protoc_insertion_point(field_set_allocated:bgs.protocol.report.v1.SubmitReportRequest.report_type)
+}
+
+// optional uint32 program = 3;
+inline bool SubmitReportRequest::has_program() const {
+ return (_has_bits_[0] & 0x00000004u) != 0;
+}
+inline void SubmitReportRequest::set_has_program() {
+ _has_bits_[0] |= 0x00000004u;
+}
+inline void SubmitReportRequest::clear_has_program() {
+ _has_bits_[0] &= ~0x00000004u;
+}
+inline void SubmitReportRequest::clear_program() {
+ program_ = 0u;
+ clear_has_program();
+}
+inline ::google::protobuf::uint32 SubmitReportRequest::program() const {
+ // @@protoc_insertion_point(field_get:bgs.protocol.report.v1.SubmitReportRequest.program)
+ return program_;
+}
+inline void SubmitReportRequest::set_program(::google::protobuf::uint32 value) {
+ set_has_program();
+ program_ = value;
+ // @@protoc_insertion_point(field_set:bgs.protocol.report.v1.SubmitReportRequest.program)
+}
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace v1
+} // namespace report
+} // namespace protocol
+} // namespace bgs
+
+#ifndef SWIG
+namespace google {
+namespace protobuf {
+} // namespace google
+} // namespace protobuf
+#endif // SWIG
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_report_5fservice_2eproto__INCLUDED
diff --git a/src/server/proto/Client/report_service.proto b/src/server/proto/Client/report_service.proto
new file mode 100644
index 00000000000..8f65611d0b0
--- /dev/null
+++ b/src/server/proto/Client/report_service.proto
@@ -0,0 +1,41 @@
+syntax = "proto2";
+
+import "account_types.proto";
+import "report_types.proto";
+import "rpc_types.proto";
+package bgs.protocol.report.v1;
+
+option optimize_for = CODE_SIZE;
+option cc_generic_services = false;
+
+message SendReportRequest {
+ required .bgs.protocol.report.v1.Report report = 1;
+ optional uint32 program = 2;
+}
+
+message SubmitReportRequest {
+ optional .bgs.protocol.account.v1.GameAccountHandle agent_id = 1;
+ optional .bgs.protocol.report.v1.ReportType report_type = 2;
+ optional uint32 program = 3;
+}
+
+service ReportService {
+ option (.bgs.protocol.service_options) = {
+ descriptor_name: "bnet.protocol.report.ReportService"
+ };
+ option (.bgs.protocol.sdk_service_options) = {
+ outbound: true
+ };
+ rpc SendReport(.bgs.protocol.report.v1.SendReportRequest) returns (.bgs.protocol.NoData) {
+ option (.bgs.protocol.method_options) = {
+ id: 1
+ };
+ }
+ rpc SubmitReport(.bgs.protocol.report.v1.SubmitReportRequest) returns (.bgs.protocol.NoData) {
+ option (.bgs.protocol.method_options) = {
+ id: 2
+ };
+ }
+}
+
+
diff --git a/src/server/proto/Client/report_types.pb.cc b/src/server/proto/Client/report_types.pb.cc
new file mode 100644
index 00000000000..cf076e42ef8
--- /dev/null
+++ b/src/server/proto/Client/report_types.pb.cc
@@ -0,0 +1,1167 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: report_types.proto
+
+#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
+#include "report_types.pb.h"
+
+#include <utility>
+
+#include <google/protobuf/stubs/common.h>
+#include <google/protobuf/stubs/once.h>
+#include <google/protobuf/io/coded_stream.h>
+#include <google/protobuf/wire_format_lite_inl.h>
+#include <google/protobuf/descriptor.h>
+#include <google/protobuf/generated_message_reflection.h>
+#include <google/protobuf/reflection_ops.h>
+#include <google/protobuf/wire_format.h>
+// @@protoc_insertion_point(includes)
+
+namespace bgs {
+namespace protocol {
+namespace report {
+namespace v1 {
+
+namespace {
+
+const ::google::protobuf::Descriptor* ReportType_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ ReportType_reflection_ = NULL;
+struct ReportTypeOneofInstance {
+ const ::bgs::protocol::report::v1::CustomReport* custom_report_;
+ const ::bgs::protocol::report::v1::SpamReport* spam_report_;
+ const ::bgs::protocol::report::v1::HarassmentReport* harassment_report_;
+ const ::bgs::protocol::report::v1::RealLifeThreatReport* real_life_threat_report_;
+ const ::bgs::protocol::report::v1::InappropriateBattleTagReport* inappropriate_battle_tag_report_;
+ const ::bgs::protocol::report::v1::HackingReport* hacking_report_;
+ const ::bgs::protocol::report::v1::BottingReport* botting_report_;
+}* ReportType_default_oneof_instance_ = NULL;
+const ::google::protobuf::Descriptor* CustomReport_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ CustomReport_reflection_ = NULL;
+const ::google::protobuf::Descriptor* SpamReport_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ SpamReport_reflection_ = NULL;
+const ::google::protobuf::EnumDescriptor* SpamReport_SpamSource_descriptor_ = NULL;
+const ::google::protobuf::Descriptor* HarassmentReport_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ HarassmentReport_reflection_ = NULL;
+const ::google::protobuf::Descriptor* RealLifeThreatReport_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ RealLifeThreatReport_reflection_ = NULL;
+const ::google::protobuf::Descriptor* InappropriateBattleTagReport_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ InappropriateBattleTagReport_reflection_ = NULL;
+const ::google::protobuf::Descriptor* HackingReport_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ HackingReport_reflection_ = NULL;
+const ::google::protobuf::Descriptor* BottingReport_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ BottingReport_reflection_ = NULL;
+const ::google::protobuf::Descriptor* Report_descriptor_ = NULL;
+const ::google::protobuf::internal::GeneratedMessageReflection*
+ Report_reflection_ = NULL;
+
+} // namespace
+
+void protobuf_AssignDesc_report_5ftypes_2eproto() {
+ protobuf_AddDesc_report_5ftypes_2eproto();
+ const ::google::protobuf::FileDescriptor* file =
+ ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
+ "report_types.proto");
+ GOOGLE_CHECK(file != NULL);
+ ReportType_descriptor_ = file->message_type(0);
+ static const int ReportType_offsets_[9] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ReportType, user_description_),
+ PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(ReportType_default_oneof_instance_, custom_report_),
+ PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(ReportType_default_oneof_instance_, spam_report_),
+ PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(ReportType_default_oneof_instance_, harassment_report_),
+ PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(ReportType_default_oneof_instance_, real_life_threat_report_),
+ PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(ReportType_default_oneof_instance_, inappropriate_battle_tag_report_),
+ PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(ReportType_default_oneof_instance_, hacking_report_),
+ PROTO2_GENERATED_DEFAULT_ONEOF_FIELD_OFFSET(ReportType_default_oneof_instance_, botting_report_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ReportType, type_),
+ };
+ ReportType_reflection_ =
+ new ::google::protobuf::internal::GeneratedMessageReflection(
+ ReportType_descriptor_,
+ ReportType::default_instance_,
+ ReportType_offsets_,
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ReportType, _has_bits_[0]),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ReportType, _unknown_fields_),
+ -1,
+ ReportType_default_oneof_instance_,
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(ReportType, _oneof_case_[0]),
+ ::google::protobuf::DescriptorPool::generated_pool(),
+ ::google::protobuf::MessageFactory::generated_factory(),
+ sizeof(ReportType));
+ CustomReport_descriptor_ = file->message_type(1);
+ static const int CustomReport_offsets_[3] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(CustomReport, type_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(CustomReport, program_id_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(CustomReport, attribute_),
+ };
+ CustomReport_reflection_ =
+ new ::google::protobuf::internal::GeneratedMessageReflection(
+ CustomReport_descriptor_,
+ CustomReport::default_instance_,
+ CustomReport_offsets_,
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(CustomReport, _has_bits_[0]),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(CustomReport, _unknown_fields_),
+ -1,
+ ::google::protobuf::DescriptorPool::generated_pool(),
+ ::google::protobuf::MessageFactory::generated_factory(),
+ sizeof(CustomReport));
+ SpamReport_descriptor_ = file->message_type(2);
+ static const int SpamReport_offsets_[2] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SpamReport, target_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SpamReport, source_),
+ };
+ SpamReport_reflection_ =
+ new ::google::protobuf::internal::GeneratedMessageReflection(
+ SpamReport_descriptor_,
+ SpamReport::default_instance_,
+ SpamReport_offsets_,
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SpamReport, _has_bits_[0]),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(SpamReport, _unknown_fields_),
+ -1,
+ ::google::protobuf::DescriptorPool::generated_pool(),
+ ::google::protobuf::MessageFactory::generated_factory(),
+ sizeof(SpamReport));
+ SpamReport_SpamSource_descriptor_ = SpamReport_descriptor_->enum_type(0);
+ HarassmentReport_descriptor_ = file->message_type(3);
+ static const int HarassmentReport_offsets_[2] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(HarassmentReport, target_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(HarassmentReport, text_),
+ };
+ HarassmentReport_reflection_ =
+ new ::google::protobuf::internal::GeneratedMessageReflection(
+ HarassmentReport_descriptor_,
+ HarassmentReport::default_instance_,
+ HarassmentReport_offsets_,
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(HarassmentReport, _has_bits_[0]),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(HarassmentReport, _unknown_fields_),
+ -1,
+ ::google::protobuf::DescriptorPool::generated_pool(),
+ ::google::protobuf::MessageFactory::generated_factory(),
+ sizeof(HarassmentReport));
+ RealLifeThreatReport_descriptor_ = file->message_type(4);
+ static const int RealLifeThreatReport_offsets_[2] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RealLifeThreatReport, target_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RealLifeThreatReport, text_),
+ };
+ RealLifeThreatReport_reflection_ =
+ new ::google::protobuf::internal::GeneratedMessageReflection(
+ RealLifeThreatReport_descriptor_,
+ RealLifeThreatReport::default_instance_,
+ RealLifeThreatReport_offsets_,
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RealLifeThreatReport, _has_bits_[0]),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(RealLifeThreatReport, _unknown_fields_),
+ -1,
+ ::google::protobuf::DescriptorPool::generated_pool(),
+ ::google::protobuf::MessageFactory::generated_factory(),
+ sizeof(RealLifeThreatReport));
+ InappropriateBattleTagReport_descriptor_ = file->message_type(5);
+ static const int InappropriateBattleTagReport_offsets_[2] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(InappropriateBattleTagReport, target_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(InappropriateBattleTagReport, battle_tag_),
+ };
+ InappropriateBattleTagReport_reflection_ =
+ new ::google::protobuf::internal::GeneratedMessageReflection(
+ InappropriateBattleTagReport_descriptor_,
+ InappropriateBattleTagReport::default_instance_,
+ InappropriateBattleTagReport_offsets_,
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(InappropriateBattleTagReport, _has_bits_[0]),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(InappropriateBattleTagReport, _unknown_fields_),
+ -1,
+ ::google::protobuf::DescriptorPool::generated_pool(),
+ ::google::protobuf::MessageFactory::generated_factory(),
+ sizeof(InappropriateBattleTagReport));
+ HackingReport_descriptor_ = file->message_type(6);
+ static const int HackingReport_offsets_[1] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(HackingReport, target_),
+ };
+ HackingReport_reflection_ =
+ new ::google::protobuf::internal::GeneratedMessageReflection(
+ HackingReport_descriptor_,
+ HackingReport::default_instance_,
+ HackingReport_offsets_,
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(HackingReport, _has_bits_[0]),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(HackingReport, _unknown_fields_),
+ -1,
+ ::google::protobuf::DescriptorPool::generated_pool(),
+ ::google::protobuf::MessageFactory::generated_factory(),
+ sizeof(HackingReport));
+ BottingReport_descriptor_ = file->message_type(7);
+ static const int BottingReport_offsets_[1] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BottingReport, target_),
+ };
+ BottingReport_reflection_ =
+ new ::google::protobuf::internal::GeneratedMessageReflection(
+ BottingReport_descriptor_,
+ BottingReport::default_instance_,
+ BottingReport_offsets_,
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BottingReport, _has_bits_[0]),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(BottingReport, _unknown_fields_),
+ -1,
+ ::google::protobuf::DescriptorPool::generated_pool(),
+ ::google::protobuf::MessageFactory::generated_factory(),
+ sizeof(BottingReport));
+ Report_descriptor_ = file->message_type(8);
+ static const int Report_offsets_[6] = {
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Report, report_type_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Report, attribute_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Report, report_qos_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Report, reporting_account_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Report, reporting_game_account_),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Report, report_timestamp_),
+ };
+ Report_reflection_ =
+ new ::google::protobuf::internal::GeneratedMessageReflection(
+ Report_descriptor_,
+ Report::default_instance_,
+ Report_offsets_,
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Report, _has_bits_[0]),
+ GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(Report, _unknown_fields_),
+ -1,
+ ::google::protobuf::DescriptorPool::generated_pool(),
+ ::google::protobuf::MessageFactory::generated_factory(),
+ sizeof(Report));
+}
+
+namespace {
+
+GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_);
+inline void protobuf_AssignDescriptorsOnce() {
+ ::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_,
+ &protobuf_AssignDesc_report_5ftypes_2eproto);
+}
+
+void protobuf_RegisterTypes(const ::std::string&) {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ ReportType_descriptor_, &ReportType::default_instance());
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ CustomReport_descriptor_, &CustomReport::default_instance());
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ SpamReport_descriptor_, &SpamReport::default_instance());
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ HarassmentReport_descriptor_, &HarassmentReport::default_instance());
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ RealLifeThreatReport_descriptor_, &RealLifeThreatReport::default_instance());
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ InappropriateBattleTagReport_descriptor_, &InappropriateBattleTagReport::default_instance());
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ HackingReport_descriptor_, &HackingReport::default_instance());
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ BottingReport_descriptor_, &BottingReport::default_instance());
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
+ Report_descriptor_, &Report::default_instance());
+}
+
+} // namespace
+
+void protobuf_ShutdownFile_report_5ftypes_2eproto() {
+ delete ReportType::default_instance_;
+ delete ReportType_default_oneof_instance_;
+ delete ReportType_reflection_;
+ delete CustomReport::default_instance_;
+ delete CustomReport_reflection_;
+ delete SpamReport::default_instance_;
+ delete SpamReport_reflection_;
+ delete HarassmentReport::default_instance_;
+ delete HarassmentReport_reflection_;
+ delete RealLifeThreatReport::default_instance_;
+ delete RealLifeThreatReport_reflection_;
+ delete InappropriateBattleTagReport::default_instance_;
+ delete InappropriateBattleTagReport_reflection_;
+ delete HackingReport::default_instance_;
+ delete HackingReport_reflection_;
+ delete BottingReport::default_instance_;
+ delete BottingReport_reflection_;
+ delete Report::default_instance_;
+ delete Report_reflection_;
+}
+
+void protobuf_AddDesc_report_5ftypes_2eproto() {
+ static bool already_here = false;
+ if (already_here) return;
+ already_here = true;
+ GOOGLE_PROTOBUF_VERIFY_VERSION;
+
+ ::bgs::protocol::account::v1::protobuf_AddDesc_account_5ftypes_2eproto();
+ ::bgs::protocol::protobuf_AddDesc_attribute_5ftypes_2eproto();
+ ::bgs::protocol::protobuf_AddDesc_entity_5ftypes_2eproto();
+ ::bgs::protocol::protobuf_AddDesc_rpc_5ftypes_2eproto();
+ ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
+ "\n\022report_types.proto\022\026bgs.protocol.repor"
+ "t.v1\032\023account_types.proto\032\025attribute_typ"
+ "es.proto\032\022entity_types.proto\032\017rpc_types."
+ "proto\"\243\004\n\nReportType\022\030\n\020user_description"
+ "\030\001 \001(\t\022=\n\rcustom_report\030\n \001(\0132$.bgs.prot"
+ "ocol.report.v1.CustomReportH\000\0229\n\013spam_re"
+ "port\030\013 \001(\0132\".bgs.protocol.report.v1.Spam"
+ "ReportH\000\022E\n\021harassment_report\030\014 \001(\0132(.bg"
+ "s.protocol.report.v1.HarassmentReportH\000\022"
+ "O\n\027real_life_threat_report\030\r \001(\0132,.bgs.p"
+ "rotocol.report.v1.RealLifeThreatReportH\000"
+ "\022_\n\037inappropriate_battle_tag_report\030\016 \001("
+ "\01324.bgs.protocol.report.v1.Inappropriate"
+ "BattleTagReportH\000\022\?\n\016hacking_report\030\017 \001("
+ "\0132%.bgs.protocol.report.v1.HackingReport"
+ "H\000\022\?\n\016botting_report\030\020 \001(\0132%.bgs.protoco"
+ "l.report.v1.BottingReportH\000B\006\n\004type\"`\n\014C"
+ "ustomReport\022\014\n\004type\030\001 \001(\t\022\026\n\nprogram_id\030"
+ "\002 \001(\tB\002\030\001\022*\n\tattribute\030\003 \003(\0132\027.bgs.proto"
+ "col.Attribute\"\325\001\n\nSpamReport\022:\n\006target\030\001"
+ " \001(\0132*.bgs.protocol.account.v1.GameAccou"
+ "ntHandle\022D\n\006source\030\002 \001(\0162-.bgs.protocol."
+ "report.v1.SpamReport.SpamSource:\005OTHER\"E"
+ "\n\nSpamSource\022\t\n\005OTHER\020\001\022\025\n\021FRIEND_INVITA"
+ "TION\020\002\022\013\n\007WHISPER\020\003\022\010\n\004CHAT\020\004\"\\\n\020Harassm"
+ "entReport\022:\n\006target\030\001 \001(\0132*.bgs.protocol"
+ ".account.v1.GameAccountHandle\022\014\n\004text\030\002 "
+ "\001(\t\"`\n\024RealLifeThreatReport\022:\n\006target\030\001 "
+ "\001(\0132*.bgs.protocol.account.v1.GameAccoun"
+ "tHandle\022\014\n\004text\030\002 \001(\t\"n\n\034InappropriateBa"
+ "ttleTagReport\022:\n\006target\030\001 \001(\0132*.bgs.prot"
+ "ocol.account.v1.GameAccountHandle\022\022\n\nbat"
+ "tle_tag\030\002 \001(\t\"K\n\rHackingReport\022:\n\006target"
+ "\030\001 \001(\0132*.bgs.protocol.account.v1.GameAcc"
+ "ountHandle\"K\n\rBottingReport\022:\n\006target\030\001 "
+ "\001(\0132*.bgs.protocol.account.v1.GameAccoun"
+ "tHandle\"\345\001\n\006Report\022\023\n\013report_type\030\001 \002(\t\022"
+ "*\n\tattribute\030\002 \003(\0132\027.bgs.protocol.Attrib"
+ "ute\022\025\n\nreport_qos\030\003 \001(\005:\0010\0221\n\021reporting_"
+ "account\030\004 \001(\0132\026.bgs.protocol.EntityId\0226\n"
+ "\026reporting_game_account\030\005 \001(\0132\026.bgs.prot"
+ "ocol.EntityId\022\030\n\020report_timestamp\030\006 \001(\006B"
+ "\005H\002\200\001\000", 1686);
+ ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
+ "report_types.proto", &protobuf_RegisterTypes);
+ ReportType::default_instance_ = new ReportType();
+ ReportType_default_oneof_instance_ = new ReportTypeOneofInstance;
+ CustomReport::default_instance_ = new CustomReport();
+ SpamReport::default_instance_ = new SpamReport();
+ HarassmentReport::default_instance_ = new HarassmentReport();
+ RealLifeThreatReport::default_instance_ = new RealLifeThreatReport();
+ InappropriateBattleTagReport::default_instance_ = new InappropriateBattleTagReport();
+ HackingReport::default_instance_ = new HackingReport();
+ BottingReport::default_instance_ = new BottingReport();
+ Report::default_instance_ = new Report();
+ ReportType::default_instance_->InitAsDefaultInstance();
+ CustomReport::default_instance_->InitAsDefaultInstance();
+ SpamReport::default_instance_->InitAsDefaultInstance();
+ HarassmentReport::default_instance_->InitAsDefaultInstance();
+ RealLifeThreatReport::default_instance_->InitAsDefaultInstance();
+ InappropriateBattleTagReport::default_instance_->InitAsDefaultInstance();
+ HackingReport::default_instance_->InitAsDefaultInstance();
+ BottingReport::default_instance_->InitAsDefaultInstance();
+ Report::default_instance_->InitAsDefaultInstance();
+ ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_report_5ftypes_2eproto);
+}
+
+// Force AddDescriptors() to be called at static initialization time.
+struct StaticDescriptorInitializer_report_5ftypes_2eproto {
+ StaticDescriptorInitializer_report_5ftypes_2eproto() {
+ protobuf_AddDesc_report_5ftypes_2eproto();
+ }
+} static_descriptor_initializer_report_5ftypes_2eproto_;
+// ===================================================================
+
+#ifndef _MSC_VER
+const int ReportType::kUserDescriptionFieldNumber;
+const int ReportType::kCustomReportFieldNumber;
+const int ReportType::kSpamReportFieldNumber;
+const int ReportType::kHarassmentReportFieldNumber;
+const int ReportType::kRealLifeThreatReportFieldNumber;
+const int ReportType::kInappropriateBattleTagReportFieldNumber;
+const int ReportType::kHackingReportFieldNumber;
+const int ReportType::kBottingReportFieldNumber;
+#endif // !_MSC_VER
+
+ReportType::ReportType()
+ : ::google::protobuf::Message() {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:bgs.protocol.report.v1.ReportType)
+}
+
+void ReportType::InitAsDefaultInstance() {
+ ReportType_default_oneof_instance_->custom_report_ = const_cast< ::bgs::protocol::report::v1::CustomReport*>(&::bgs::protocol::report::v1::CustomReport::default_instance());
+ ReportType_default_oneof_instance_->spam_report_ = const_cast< ::bgs::protocol::report::v1::SpamReport*>(&::bgs::protocol::report::v1::SpamReport::default_instance());
+ ReportType_default_oneof_instance_->harassment_report_ = const_cast< ::bgs::protocol::report::v1::HarassmentReport*>(&::bgs::protocol::report::v1::HarassmentReport::default_instance());
+ ReportType_default_oneof_instance_->real_life_threat_report_ = const_cast< ::bgs::protocol::report::v1::RealLifeThreatReport*>(&::bgs::protocol::report::v1::RealLifeThreatReport::default_instance());
+ ReportType_default_oneof_instance_->inappropriate_battle_tag_report_ = const_cast< ::bgs::protocol::report::v1::InappropriateBattleTagReport*>(&::bgs::protocol::report::v1::InappropriateBattleTagReport::default_instance());
+ ReportType_default_oneof_instance_->hacking_report_ = const_cast< ::bgs::protocol::report::v1::HackingReport*>(&::bgs::protocol::report::v1::HackingReport::default_instance());
+ ReportType_default_oneof_instance_->botting_report_ = const_cast< ::bgs::protocol::report::v1::BottingReport*>(&::bgs::protocol::report::v1::BottingReport::default_instance());
+}
+
+ReportType::ReportType(const ReportType& from)
+ : ::google::protobuf::Message() {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:bgs.protocol.report.v1.ReportType)
+}
+
+void ReportType::SharedCtor() {
+ ::google::protobuf::internal::GetEmptyString();
+ _cached_size_ = 0;
+ user_description_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ ::memset(_has_bits_, 0, sizeof(_has_bits_));
+ clear_has_type();
+}
+
+ReportType::~ReportType() {
+ // @@protoc_insertion_point(destructor:bgs.protocol.report.v1.ReportType)
+ SharedDtor();
+}
+
+void ReportType::SharedDtor() {
+ if (user_description_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ delete user_description_;
+ }
+ if (has_type()) {
+ clear_type();
+ }
+ if (this != default_instance_) {
+ }
+}
+
+void ReportType::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* ReportType::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return ReportType_descriptor_;
+}
+
+const ReportType& ReportType::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_report_5ftypes_2eproto();
+ return *default_instance_;
+}
+
+ReportType* ReportType::default_instance_ = NULL;
+
+ReportType* ReportType::New() const {
+ return new ReportType;
+}
+
+void ReportType::clear_type() {
+ switch(type_case()) {
+ case kCustomReport: {
+ delete type_.custom_report_;
+ break;
+ }
+ case kSpamReport: {
+ delete type_.spam_report_;
+ break;
+ }
+ case kHarassmentReport: {
+ delete type_.harassment_report_;
+ break;
+ }
+ case kRealLifeThreatReport: {
+ delete type_.real_life_threat_report_;
+ break;
+ }
+ case kInappropriateBattleTagReport: {
+ delete type_.inappropriate_battle_tag_report_;
+ break;
+ }
+ case kHackingReport: {
+ delete type_.hacking_report_;
+ break;
+ }
+ case kBottingReport: {
+ delete type_.botting_report_;
+ break;
+ }
+ case TYPE_NOT_SET: {
+ break;
+ }
+ }
+ _oneof_case_[0] = TYPE_NOT_SET;
+}
+
+void ReportType::Swap(ReportType* other) {
+ if (other != this) {
+ GetReflection()->Swap(this, other);}
+}
+
+::google::protobuf::Metadata ReportType::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = ReportType_descriptor_;
+ metadata.reflection = ReportType_reflection_;
+ return metadata;
+}
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int CustomReport::kTypeFieldNumber;
+const int CustomReport::kProgramIdFieldNumber;
+const int CustomReport::kAttributeFieldNumber;
+#endif // !_MSC_VER
+
+CustomReport::CustomReport()
+ : ::google::protobuf::Message() {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:bgs.protocol.report.v1.CustomReport)
+}
+
+void CustomReport::InitAsDefaultInstance() {
+}
+
+CustomReport::CustomReport(const CustomReport& from)
+ : ::google::protobuf::Message() {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:bgs.protocol.report.v1.CustomReport)
+}
+
+void CustomReport::SharedCtor() {
+ ::google::protobuf::internal::GetEmptyString();
+ _cached_size_ = 0;
+ type_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ program_id_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ ::memset(_has_bits_, 0, sizeof(_has_bits_));
+}
+
+CustomReport::~CustomReport() {
+ // @@protoc_insertion_point(destructor:bgs.protocol.report.v1.CustomReport)
+ SharedDtor();
+}
+
+void CustomReport::SharedDtor() {
+ if (type_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ delete type_;
+ }
+ if (program_id_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ delete program_id_;
+ }
+ if (this != default_instance_) {
+ }
+}
+
+void CustomReport::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* CustomReport::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return CustomReport_descriptor_;
+}
+
+const CustomReport& CustomReport::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_report_5ftypes_2eproto();
+ return *default_instance_;
+}
+
+CustomReport* CustomReport::default_instance_ = NULL;
+
+CustomReport* CustomReport::New() const {
+ return new CustomReport;
+}
+
+void CustomReport::Swap(CustomReport* other) {
+ if (other != this) {
+ GetReflection()->Swap(this, other);}
+}
+
+::google::protobuf::Metadata CustomReport::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = CustomReport_descriptor_;
+ metadata.reflection = CustomReport_reflection_;
+ return metadata;
+}
+
+// ===================================================================
+
+const ::google::protobuf::EnumDescriptor* SpamReport_SpamSource_descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return SpamReport_SpamSource_descriptor_;
+}
+bool SpamReport_SpamSource_IsValid(int value) {
+ switch(value) {
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ return true;
+ default:
+ return false;
+ }
+}
+
+#ifndef _MSC_VER
+const SpamReport_SpamSource SpamReport::OTHER;
+const SpamReport_SpamSource SpamReport::FRIEND_INVITATION;
+const SpamReport_SpamSource SpamReport::WHISPER;
+const SpamReport_SpamSource SpamReport::CHAT;
+const SpamReport_SpamSource SpamReport::SpamSource_MIN;
+const SpamReport_SpamSource SpamReport::SpamSource_MAX;
+const int SpamReport::SpamSource_ARRAYSIZE;
+#endif // _MSC_VER
+#ifndef _MSC_VER
+const int SpamReport::kTargetFieldNumber;
+const int SpamReport::kSourceFieldNumber;
+#endif // !_MSC_VER
+
+SpamReport::SpamReport()
+ : ::google::protobuf::Message() {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:bgs.protocol.report.v1.SpamReport)
+}
+
+void SpamReport::InitAsDefaultInstance() {
+ target_ = const_cast< ::bgs::protocol::account::v1::GameAccountHandle*>(&::bgs::protocol::account::v1::GameAccountHandle::default_instance());
+}
+
+SpamReport::SpamReport(const SpamReport& from)
+ : ::google::protobuf::Message() {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:bgs.protocol.report.v1.SpamReport)
+}
+
+void SpamReport::SharedCtor() {
+ _cached_size_ = 0;
+ target_ = NULL;
+ source_ = 1;
+ ::memset(_has_bits_, 0, sizeof(_has_bits_));
+}
+
+SpamReport::~SpamReport() {
+ // @@protoc_insertion_point(destructor:bgs.protocol.report.v1.SpamReport)
+ SharedDtor();
+}
+
+void SpamReport::SharedDtor() {
+ if (this != default_instance_) {
+ delete target_;
+ }
+}
+
+void SpamReport::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* SpamReport::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return SpamReport_descriptor_;
+}
+
+const SpamReport& SpamReport::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_report_5ftypes_2eproto();
+ return *default_instance_;
+}
+
+SpamReport* SpamReport::default_instance_ = NULL;
+
+SpamReport* SpamReport::New() const {
+ return new SpamReport;
+}
+
+void SpamReport::Swap(SpamReport* other) {
+ if (other != this) {
+ GetReflection()->Swap(this, other);}
+}
+
+::google::protobuf::Metadata SpamReport::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = SpamReport_descriptor_;
+ metadata.reflection = SpamReport_reflection_;
+ return metadata;
+}
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int HarassmentReport::kTargetFieldNumber;
+const int HarassmentReport::kTextFieldNumber;
+#endif // !_MSC_VER
+
+HarassmentReport::HarassmentReport()
+ : ::google::protobuf::Message() {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:bgs.protocol.report.v1.HarassmentReport)
+}
+
+void HarassmentReport::InitAsDefaultInstance() {
+ target_ = const_cast< ::bgs::protocol::account::v1::GameAccountHandle*>(&::bgs::protocol::account::v1::GameAccountHandle::default_instance());
+}
+
+HarassmentReport::HarassmentReport(const HarassmentReport& from)
+ : ::google::protobuf::Message() {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:bgs.protocol.report.v1.HarassmentReport)
+}
+
+void HarassmentReport::SharedCtor() {
+ ::google::protobuf::internal::GetEmptyString();
+ _cached_size_ = 0;
+ target_ = NULL;
+ text_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ ::memset(_has_bits_, 0, sizeof(_has_bits_));
+}
+
+HarassmentReport::~HarassmentReport() {
+ // @@protoc_insertion_point(destructor:bgs.protocol.report.v1.HarassmentReport)
+ SharedDtor();
+}
+
+void HarassmentReport::SharedDtor() {
+ if (text_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ delete text_;
+ }
+ if (this != default_instance_) {
+ delete target_;
+ }
+}
+
+void HarassmentReport::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* HarassmentReport::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return HarassmentReport_descriptor_;
+}
+
+const HarassmentReport& HarassmentReport::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_report_5ftypes_2eproto();
+ return *default_instance_;
+}
+
+HarassmentReport* HarassmentReport::default_instance_ = NULL;
+
+HarassmentReport* HarassmentReport::New() const {
+ return new HarassmentReport;
+}
+
+void HarassmentReport::Swap(HarassmentReport* other) {
+ if (other != this) {
+ GetReflection()->Swap(this, other);}
+}
+
+::google::protobuf::Metadata HarassmentReport::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = HarassmentReport_descriptor_;
+ metadata.reflection = HarassmentReport_reflection_;
+ return metadata;
+}
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int RealLifeThreatReport::kTargetFieldNumber;
+const int RealLifeThreatReport::kTextFieldNumber;
+#endif // !_MSC_VER
+
+RealLifeThreatReport::RealLifeThreatReport()
+ : ::google::protobuf::Message() {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:bgs.protocol.report.v1.RealLifeThreatReport)
+}
+
+void RealLifeThreatReport::InitAsDefaultInstance() {
+ target_ = const_cast< ::bgs::protocol::account::v1::GameAccountHandle*>(&::bgs::protocol::account::v1::GameAccountHandle::default_instance());
+}
+
+RealLifeThreatReport::RealLifeThreatReport(const RealLifeThreatReport& from)
+ : ::google::protobuf::Message() {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:bgs.protocol.report.v1.RealLifeThreatReport)
+}
+
+void RealLifeThreatReport::SharedCtor() {
+ ::google::protobuf::internal::GetEmptyString();
+ _cached_size_ = 0;
+ target_ = NULL;
+ text_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ ::memset(_has_bits_, 0, sizeof(_has_bits_));
+}
+
+RealLifeThreatReport::~RealLifeThreatReport() {
+ // @@protoc_insertion_point(destructor:bgs.protocol.report.v1.RealLifeThreatReport)
+ SharedDtor();
+}
+
+void RealLifeThreatReport::SharedDtor() {
+ if (text_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ delete text_;
+ }
+ if (this != default_instance_) {
+ delete target_;
+ }
+}
+
+void RealLifeThreatReport::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* RealLifeThreatReport::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return RealLifeThreatReport_descriptor_;
+}
+
+const RealLifeThreatReport& RealLifeThreatReport::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_report_5ftypes_2eproto();
+ return *default_instance_;
+}
+
+RealLifeThreatReport* RealLifeThreatReport::default_instance_ = NULL;
+
+RealLifeThreatReport* RealLifeThreatReport::New() const {
+ return new RealLifeThreatReport;
+}
+
+void RealLifeThreatReport::Swap(RealLifeThreatReport* other) {
+ if (other != this) {
+ GetReflection()->Swap(this, other);}
+}
+
+::google::protobuf::Metadata RealLifeThreatReport::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = RealLifeThreatReport_descriptor_;
+ metadata.reflection = RealLifeThreatReport_reflection_;
+ return metadata;
+}
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int InappropriateBattleTagReport::kTargetFieldNumber;
+const int InappropriateBattleTagReport::kBattleTagFieldNumber;
+#endif // !_MSC_VER
+
+InappropriateBattleTagReport::InappropriateBattleTagReport()
+ : ::google::protobuf::Message() {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:bgs.protocol.report.v1.InappropriateBattleTagReport)
+}
+
+void InappropriateBattleTagReport::InitAsDefaultInstance() {
+ target_ = const_cast< ::bgs::protocol::account::v1::GameAccountHandle*>(&::bgs::protocol::account::v1::GameAccountHandle::default_instance());
+}
+
+InappropriateBattleTagReport::InappropriateBattleTagReport(const InappropriateBattleTagReport& from)
+ : ::google::protobuf::Message() {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:bgs.protocol.report.v1.InappropriateBattleTagReport)
+}
+
+void InappropriateBattleTagReport::SharedCtor() {
+ ::google::protobuf::internal::GetEmptyString();
+ _cached_size_ = 0;
+ target_ = NULL;
+ battle_tag_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ ::memset(_has_bits_, 0, sizeof(_has_bits_));
+}
+
+InappropriateBattleTagReport::~InappropriateBattleTagReport() {
+ // @@protoc_insertion_point(destructor:bgs.protocol.report.v1.InappropriateBattleTagReport)
+ SharedDtor();
+}
+
+void InappropriateBattleTagReport::SharedDtor() {
+ if (battle_tag_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ delete battle_tag_;
+ }
+ if (this != default_instance_) {
+ delete target_;
+ }
+}
+
+void InappropriateBattleTagReport::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* InappropriateBattleTagReport::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return InappropriateBattleTagReport_descriptor_;
+}
+
+const InappropriateBattleTagReport& InappropriateBattleTagReport::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_report_5ftypes_2eproto();
+ return *default_instance_;
+}
+
+InappropriateBattleTagReport* InappropriateBattleTagReport::default_instance_ = NULL;
+
+InappropriateBattleTagReport* InappropriateBattleTagReport::New() const {
+ return new InappropriateBattleTagReport;
+}
+
+void InappropriateBattleTagReport::Swap(InappropriateBattleTagReport* other) {
+ if (other != this) {
+ GetReflection()->Swap(this, other);}
+}
+
+::google::protobuf::Metadata InappropriateBattleTagReport::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = InappropriateBattleTagReport_descriptor_;
+ metadata.reflection = InappropriateBattleTagReport_reflection_;
+ return metadata;
+}
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int HackingReport::kTargetFieldNumber;
+#endif // !_MSC_VER
+
+HackingReport::HackingReport()
+ : ::google::protobuf::Message() {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:bgs.protocol.report.v1.HackingReport)
+}
+
+void HackingReport::InitAsDefaultInstance() {
+ target_ = const_cast< ::bgs::protocol::account::v1::GameAccountHandle*>(&::bgs::protocol::account::v1::GameAccountHandle::default_instance());
+}
+
+HackingReport::HackingReport(const HackingReport& from)
+ : ::google::protobuf::Message() {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:bgs.protocol.report.v1.HackingReport)
+}
+
+void HackingReport::SharedCtor() {
+ _cached_size_ = 0;
+ target_ = NULL;
+ ::memset(_has_bits_, 0, sizeof(_has_bits_));
+}
+
+HackingReport::~HackingReport() {
+ // @@protoc_insertion_point(destructor:bgs.protocol.report.v1.HackingReport)
+ SharedDtor();
+}
+
+void HackingReport::SharedDtor() {
+ if (this != default_instance_) {
+ delete target_;
+ }
+}
+
+void HackingReport::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* HackingReport::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return HackingReport_descriptor_;
+}
+
+const HackingReport& HackingReport::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_report_5ftypes_2eproto();
+ return *default_instance_;
+}
+
+HackingReport* HackingReport::default_instance_ = NULL;
+
+HackingReport* HackingReport::New() const {
+ return new HackingReport;
+}
+
+void HackingReport::Swap(HackingReport* other) {
+ if (other != this) {
+ GetReflection()->Swap(this, other);}
+}
+
+::google::protobuf::Metadata HackingReport::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = HackingReport_descriptor_;
+ metadata.reflection = HackingReport_reflection_;
+ return metadata;
+}
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int BottingReport::kTargetFieldNumber;
+#endif // !_MSC_VER
+
+BottingReport::BottingReport()
+ : ::google::protobuf::Message() {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:bgs.protocol.report.v1.BottingReport)
+}
+
+void BottingReport::InitAsDefaultInstance() {
+ target_ = const_cast< ::bgs::protocol::account::v1::GameAccountHandle*>(&::bgs::protocol::account::v1::GameAccountHandle::default_instance());
+}
+
+BottingReport::BottingReport(const BottingReport& from)
+ : ::google::protobuf::Message() {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:bgs.protocol.report.v1.BottingReport)
+}
+
+void BottingReport::SharedCtor() {
+ _cached_size_ = 0;
+ target_ = NULL;
+ ::memset(_has_bits_, 0, sizeof(_has_bits_));
+}
+
+BottingReport::~BottingReport() {
+ // @@protoc_insertion_point(destructor:bgs.protocol.report.v1.BottingReport)
+ SharedDtor();
+}
+
+void BottingReport::SharedDtor() {
+ if (this != default_instance_) {
+ delete target_;
+ }
+}
+
+void BottingReport::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* BottingReport::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return BottingReport_descriptor_;
+}
+
+const BottingReport& BottingReport::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_report_5ftypes_2eproto();
+ return *default_instance_;
+}
+
+BottingReport* BottingReport::default_instance_ = NULL;
+
+BottingReport* BottingReport::New() const {
+ return new BottingReport;
+}
+
+void BottingReport::Swap(BottingReport* other) {
+ if (other != this) {
+ GetReflection()->Swap(this, other);}
+}
+
+::google::protobuf::Metadata BottingReport::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = BottingReport_descriptor_;
+ metadata.reflection = BottingReport_reflection_;
+ return metadata;
+}
+
+// ===================================================================
+
+#ifndef _MSC_VER
+const int Report::kReportTypeFieldNumber;
+const int Report::kAttributeFieldNumber;
+const int Report::kReportQosFieldNumber;
+const int Report::kReportingAccountFieldNumber;
+const int Report::kReportingGameAccountFieldNumber;
+const int Report::kReportTimestampFieldNumber;
+#endif // !_MSC_VER
+
+Report::Report()
+ : ::google::protobuf::Message() {
+ SharedCtor();
+ // @@protoc_insertion_point(constructor:bgs.protocol.report.v1.Report)
+}
+
+void Report::InitAsDefaultInstance() {
+ reporting_account_ = const_cast< ::bgs::protocol::EntityId*>(&::bgs::protocol::EntityId::default_instance());
+ reporting_game_account_ = const_cast< ::bgs::protocol::EntityId*>(&::bgs::protocol::EntityId::default_instance());
+}
+
+Report::Report(const Report& from)
+ : ::google::protobuf::Message() {
+ SharedCtor();
+ MergeFrom(from);
+ // @@protoc_insertion_point(copy_constructor:bgs.protocol.report.v1.Report)
+}
+
+void Report::SharedCtor() {
+ ::google::protobuf::internal::GetEmptyString();
+ _cached_size_ = 0;
+ report_type_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ report_qos_ = 0;
+ reporting_account_ = NULL;
+ reporting_game_account_ = NULL;
+ report_timestamp_ = GOOGLE_ULONGLONG(0);
+ ::memset(_has_bits_, 0, sizeof(_has_bits_));
+}
+
+Report::~Report() {
+ // @@protoc_insertion_point(destructor:bgs.protocol.report.v1.Report)
+ SharedDtor();
+}
+
+void Report::SharedDtor() {
+ if (report_type_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ delete report_type_;
+ }
+ if (this != default_instance_) {
+ delete reporting_account_;
+ delete reporting_game_account_;
+ }
+}
+
+void Report::SetCachedSize(int size) const {
+ GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
+ _cached_size_ = size;
+ GOOGLE_SAFE_CONCURRENT_WRITES_END();
+}
+const ::google::protobuf::Descriptor* Report::descriptor() {
+ protobuf_AssignDescriptorsOnce();
+ return Report_descriptor_;
+}
+
+const Report& Report::default_instance() {
+ if (default_instance_ == NULL) protobuf_AddDesc_report_5ftypes_2eproto();
+ return *default_instance_;
+}
+
+Report* Report::default_instance_ = NULL;
+
+Report* Report::New() const {
+ return new Report;
+}
+
+void Report::Swap(Report* other) {
+ if (other != this) {
+ GetReflection()->Swap(this, other);}
+}
+
+::google::protobuf::Metadata Report::GetMetadata() const {
+ protobuf_AssignDescriptorsOnce();
+ ::google::protobuf::Metadata metadata;
+ metadata.descriptor = Report_descriptor_;
+ metadata.reflection = Report_reflection_;
+ return metadata;
+}
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace v1
+} // namespace report
+} // namespace protocol
+} // namespace bgs
+
+// @@protoc_insertion_point(global_scope)
diff --git a/src/server/proto/Client/report_types.pb.h b/src/server/proto/Client/report_types.pb.h
new file mode 100644
index 00000000000..374cf7545a7
--- /dev/null
+++ b/src/server/proto/Client/report_types.pb.h
@@ -0,0 +1,2324 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+// source: report_types.proto
+
+#ifndef PROTOBUF_report_5ftypes_2eproto__INCLUDED
+#define PROTOBUF_report_5ftypes_2eproto__INCLUDED
+
+#include <string>
+
+#include <google/protobuf/stubs/common.h>
+
+#if GOOGLE_PROTOBUF_VERSION < 2006000
+#error This file was generated by a newer version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please update
+#error your headers.
+#endif
+#if 2006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
+#error This file was generated by an older version of protoc which is
+#error incompatible with your Protocol Buffer headers. Please
+#error regenerate this file with a newer version of protoc.
+#endif
+
+#include <google/protobuf/generated_message_util.h>
+#include <google/protobuf/message.h>
+#include <google/protobuf/repeated_field.h>
+#include <google/protobuf/extension_set.h>
+#include <google/protobuf/generated_enum_reflection.h>
+#include <google/protobuf/unknown_field_set.h>
+#include "account_types.pb.h"
+#include "attribute_types.pb.h"
+#include "entity_types.pb.h"
+#include "rpc_types.pb.h"
+#include "Define.h" // for TC_PROTO_API
+// @@protoc_insertion_point(includes)
+
+namespace bgs {
+namespace protocol {
+namespace report {
+namespace v1 {
+
+// Internal implementation detail -- do not call these.
+void TC_PROTO_API protobuf_AddDesc_report_5ftypes_2eproto();
+void protobuf_AssignDesc_report_5ftypes_2eproto();
+void protobuf_ShutdownFile_report_5ftypes_2eproto();
+
+class ReportType;
+class CustomReport;
+class SpamReport;
+class HarassmentReport;
+class RealLifeThreatReport;
+class InappropriateBattleTagReport;
+class HackingReport;
+class BottingReport;
+class Report;
+
+enum SpamReport_SpamSource {
+ SpamReport_SpamSource_OTHER = 1,
+ SpamReport_SpamSource_FRIEND_INVITATION = 2,
+ SpamReport_SpamSource_WHISPER = 3,
+ SpamReport_SpamSource_CHAT = 4
+};
+TC_PROTO_API bool SpamReport_SpamSource_IsValid(int value);
+const SpamReport_SpamSource SpamReport_SpamSource_SpamSource_MIN = SpamReport_SpamSource_OTHER;
+const SpamReport_SpamSource SpamReport_SpamSource_SpamSource_MAX = SpamReport_SpamSource_CHAT;
+const int SpamReport_SpamSource_SpamSource_ARRAYSIZE = SpamReport_SpamSource_SpamSource_MAX + 1;
+
+TC_PROTO_API const ::google::protobuf::EnumDescriptor* SpamReport_SpamSource_descriptor();
+inline const ::std::string& SpamReport_SpamSource_Name(SpamReport_SpamSource value) {
+ return ::google::protobuf::internal::NameOfEnum(
+ SpamReport_SpamSource_descriptor(), value);
+}
+inline bool SpamReport_SpamSource_Parse(
+ const ::std::string& name, SpamReport_SpamSource* value) {
+ return ::google::protobuf::internal::ParseNamedEnum<SpamReport_SpamSource>(
+ SpamReport_SpamSource_descriptor(), name, value);
+}
+// ===================================================================
+
+class TC_PROTO_API ReportType : public ::google::protobuf::Message {
+ public:
+ ReportType();
+ virtual ~ReportType();
+
+ ReportType(const ReportType& from);
+
+ inline ReportType& operator=(const ReportType& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+ return _unknown_fields_;
+ }
+
+ inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+ return &_unknown_fields_;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const ReportType& default_instance();
+
+ enum TypeCase {
+ kCustomReport = 10,
+ kSpamReport = 11,
+ kHarassmentReport = 12,
+ kRealLifeThreatReport = 13,
+ kInappropriateBattleTagReport = 14,
+ kHackingReport = 15,
+ kBottingReport = 16,
+ TYPE_NOT_SET = 0,
+ };
+
+ void Swap(ReportType* other);
+
+ // implements Message ----------------------------------------------
+
+ ReportType* New() const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ public:
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional string user_description = 1;
+ inline bool has_user_description() const;
+ inline void clear_user_description();
+ static const int kUserDescriptionFieldNumber = 1;
+ inline const ::std::string& user_description() const;
+ inline void set_user_description(const ::std::string& value);
+ inline void set_user_description(const char* value);
+ inline void set_user_description(const char* value, size_t size);
+ inline ::std::string* mutable_user_description();
+ inline ::std::string* release_user_description();
+ inline void set_allocated_user_description(::std::string* user_description);
+
+ // optional .bgs.protocol.report.v1.CustomReport custom_report = 10;
+ inline bool has_custom_report() const;
+ inline void clear_custom_report();
+ static const int kCustomReportFieldNumber = 10;
+ inline const ::bgs::protocol::report::v1::CustomReport& custom_report() const;
+ inline ::bgs::protocol::report::v1::CustomReport* mutable_custom_report();
+ inline ::bgs::protocol::report::v1::CustomReport* release_custom_report();
+ inline void set_allocated_custom_report(::bgs::protocol::report::v1::CustomReport* custom_report);
+
+ // optional .bgs.protocol.report.v1.SpamReport spam_report = 11;
+ inline bool has_spam_report() const;
+ inline void clear_spam_report();
+ static const int kSpamReportFieldNumber = 11;
+ inline const ::bgs::protocol::report::v1::SpamReport& spam_report() const;
+ inline ::bgs::protocol::report::v1::SpamReport* mutable_spam_report();
+ inline ::bgs::protocol::report::v1::SpamReport* release_spam_report();
+ inline void set_allocated_spam_report(::bgs::protocol::report::v1::SpamReport* spam_report);
+
+ // optional .bgs.protocol.report.v1.HarassmentReport harassment_report = 12;
+ inline bool has_harassment_report() const;
+ inline void clear_harassment_report();
+ static const int kHarassmentReportFieldNumber = 12;
+ inline const ::bgs::protocol::report::v1::HarassmentReport& harassment_report() const;
+ inline ::bgs::protocol::report::v1::HarassmentReport* mutable_harassment_report();
+ inline ::bgs::protocol::report::v1::HarassmentReport* release_harassment_report();
+ inline void set_allocated_harassment_report(::bgs::protocol::report::v1::HarassmentReport* harassment_report);
+
+ // optional .bgs.protocol.report.v1.RealLifeThreatReport real_life_threat_report = 13;
+ inline bool has_real_life_threat_report() const;
+ inline void clear_real_life_threat_report();
+ static const int kRealLifeThreatReportFieldNumber = 13;
+ inline const ::bgs::protocol::report::v1::RealLifeThreatReport& real_life_threat_report() const;
+ inline ::bgs::protocol::report::v1::RealLifeThreatReport* mutable_real_life_threat_report();
+ inline ::bgs::protocol::report::v1::RealLifeThreatReport* release_real_life_threat_report();
+ inline void set_allocated_real_life_threat_report(::bgs::protocol::report::v1::RealLifeThreatReport* real_life_threat_report);
+
+ // optional .bgs.protocol.report.v1.InappropriateBattleTagReport inappropriate_battle_tag_report = 14;
+ inline bool has_inappropriate_battle_tag_report() const;
+ inline void clear_inappropriate_battle_tag_report();
+ static const int kInappropriateBattleTagReportFieldNumber = 14;
+ inline const ::bgs::protocol::report::v1::InappropriateBattleTagReport& inappropriate_battle_tag_report() const;
+ inline ::bgs::protocol::report::v1::InappropriateBattleTagReport* mutable_inappropriate_battle_tag_report();
+ inline ::bgs::protocol::report::v1::InappropriateBattleTagReport* release_inappropriate_battle_tag_report();
+ inline void set_allocated_inappropriate_battle_tag_report(::bgs::protocol::report::v1::InappropriateBattleTagReport* inappropriate_battle_tag_report);
+
+ // optional .bgs.protocol.report.v1.HackingReport hacking_report = 15;
+ inline bool has_hacking_report() const;
+ inline void clear_hacking_report();
+ static const int kHackingReportFieldNumber = 15;
+ inline const ::bgs::protocol::report::v1::HackingReport& hacking_report() const;
+ inline ::bgs::protocol::report::v1::HackingReport* mutable_hacking_report();
+ inline ::bgs::protocol::report::v1::HackingReport* release_hacking_report();
+ inline void set_allocated_hacking_report(::bgs::protocol::report::v1::HackingReport* hacking_report);
+
+ // optional .bgs.protocol.report.v1.BottingReport botting_report = 16;
+ inline bool has_botting_report() const;
+ inline void clear_botting_report();
+ static const int kBottingReportFieldNumber = 16;
+ inline const ::bgs::protocol::report::v1::BottingReport& botting_report() const;
+ inline ::bgs::protocol::report::v1::BottingReport* mutable_botting_report();
+ inline ::bgs::protocol::report::v1::BottingReport* release_botting_report();
+ inline void set_allocated_botting_report(::bgs::protocol::report::v1::BottingReport* botting_report);
+
+ inline TypeCase type_case() const;
+ // @@protoc_insertion_point(class_scope:bgs.protocol.report.v1.ReportType)
+ private:
+ inline void set_has_user_description();
+ inline void clear_has_user_description();
+ inline void set_has_custom_report();
+ inline void set_has_spam_report();
+ inline void set_has_harassment_report();
+ inline void set_has_real_life_threat_report();
+ inline void set_has_inappropriate_battle_tag_report();
+ inline void set_has_hacking_report();
+ inline void set_has_botting_report();
+
+ inline bool has_type();
+ void clear_type();
+ inline void clear_has_type();
+
+ ::google::protobuf::UnknownFieldSet _unknown_fields_;
+
+ ::google::protobuf::uint32 _has_bits_[1];
+ mutable int _cached_size_;
+ ::std::string* user_description_;
+ union TypeUnion {
+ ::bgs::protocol::report::v1::CustomReport* custom_report_;
+ ::bgs::protocol::report::v1::SpamReport* spam_report_;
+ ::bgs::protocol::report::v1::HarassmentReport* harassment_report_;
+ ::bgs::protocol::report::v1::RealLifeThreatReport* real_life_threat_report_;
+ ::bgs::protocol::report::v1::InappropriateBattleTagReport* inappropriate_battle_tag_report_;
+ ::bgs::protocol::report::v1::HackingReport* hacking_report_;
+ ::bgs::protocol::report::v1::BottingReport* botting_report_;
+ } type_;
+ ::google::protobuf::uint32 _oneof_case_[1];
+
+ friend void TC_PROTO_API protobuf_AddDesc_report_5ftypes_2eproto();
+ friend void protobuf_AssignDesc_report_5ftypes_2eproto();
+ friend void protobuf_ShutdownFile_report_5ftypes_2eproto();
+
+ void InitAsDefaultInstance();
+ static ReportType* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class TC_PROTO_API CustomReport : public ::google::protobuf::Message {
+ public:
+ CustomReport();
+ virtual ~CustomReport();
+
+ CustomReport(const CustomReport& from);
+
+ inline CustomReport& operator=(const CustomReport& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+ return _unknown_fields_;
+ }
+
+ inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+ return &_unknown_fields_;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const CustomReport& default_instance();
+
+ void Swap(CustomReport* other);
+
+ // implements Message ----------------------------------------------
+
+ CustomReport* New() const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ public:
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional string type = 1;
+ inline bool has_type() const;
+ inline void clear_type();
+ static const int kTypeFieldNumber = 1;
+ inline const ::std::string& type() const;
+ inline void set_type(const ::std::string& value);
+ inline void set_type(const char* value);
+ inline void set_type(const char* value, size_t size);
+ inline ::std::string* mutable_type();
+ inline ::std::string* release_type();
+ inline void set_allocated_type(::std::string* type);
+
+ // optional string program_id = 2 [deprecated = true];
+ inline bool has_program_id() const PROTOBUF_DEPRECATED;
+ inline void clear_program_id() PROTOBUF_DEPRECATED;
+ static const int kProgramIdFieldNumber = 2;
+ inline const ::std::string& program_id() const PROTOBUF_DEPRECATED;
+ inline void set_program_id(const ::std::string& value) PROTOBUF_DEPRECATED;
+ inline void set_program_id(const char* value) PROTOBUF_DEPRECATED;
+ inline void set_program_id(const char* value, size_t size) PROTOBUF_DEPRECATED;
+ inline ::std::string* mutable_program_id() PROTOBUF_DEPRECATED;
+ inline ::std::string* release_program_id() PROTOBUF_DEPRECATED;
+ inline void set_allocated_program_id(::std::string* program_id) PROTOBUF_DEPRECATED;
+
+ // repeated .bgs.protocol.Attribute attribute = 3;
+ inline int attribute_size() const;
+ inline void clear_attribute();
+ static const int kAttributeFieldNumber = 3;
+ inline const ::bgs::protocol::Attribute& attribute(int index) const;
+ inline ::bgs::protocol::Attribute* mutable_attribute(int index);
+ inline ::bgs::protocol::Attribute* add_attribute();
+ inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::Attribute >&
+ attribute() const;
+ inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::Attribute >*
+ mutable_attribute();
+
+ // @@protoc_insertion_point(class_scope:bgs.protocol.report.v1.CustomReport)
+ private:
+ inline void set_has_type();
+ inline void clear_has_type();
+ inline void set_has_program_id();
+ inline void clear_has_program_id();
+
+ ::google::protobuf::UnknownFieldSet _unknown_fields_;
+
+ ::google::protobuf::uint32 _has_bits_[1];
+ mutable int _cached_size_;
+ ::std::string* type_;
+ ::std::string* program_id_;
+ ::google::protobuf::RepeatedPtrField< ::bgs::protocol::Attribute > attribute_;
+ friend void TC_PROTO_API protobuf_AddDesc_report_5ftypes_2eproto();
+ friend void protobuf_AssignDesc_report_5ftypes_2eproto();
+ friend void protobuf_ShutdownFile_report_5ftypes_2eproto();
+
+ void InitAsDefaultInstance();
+ static CustomReport* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class TC_PROTO_API SpamReport : public ::google::protobuf::Message {
+ public:
+ SpamReport();
+ virtual ~SpamReport();
+
+ SpamReport(const SpamReport& from);
+
+ inline SpamReport& operator=(const SpamReport& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+ return _unknown_fields_;
+ }
+
+ inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+ return &_unknown_fields_;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const SpamReport& default_instance();
+
+ void Swap(SpamReport* other);
+
+ // implements Message ----------------------------------------------
+
+ SpamReport* New() const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ public:
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ typedef SpamReport_SpamSource SpamSource;
+ static const SpamSource OTHER = SpamReport_SpamSource_OTHER;
+ static const SpamSource FRIEND_INVITATION = SpamReport_SpamSource_FRIEND_INVITATION;
+ static const SpamSource WHISPER = SpamReport_SpamSource_WHISPER;
+ static const SpamSource CHAT = SpamReport_SpamSource_CHAT;
+ static inline bool SpamSource_IsValid(int value) {
+ return SpamReport_SpamSource_IsValid(value);
+ }
+ static const SpamSource SpamSource_MIN =
+ SpamReport_SpamSource_SpamSource_MIN;
+ static const SpamSource SpamSource_MAX =
+ SpamReport_SpamSource_SpamSource_MAX;
+ static const int SpamSource_ARRAYSIZE =
+ SpamReport_SpamSource_SpamSource_ARRAYSIZE;
+ static inline const ::google::protobuf::EnumDescriptor*
+ SpamSource_descriptor() {
+ return SpamReport_SpamSource_descriptor();
+ }
+ static inline const ::std::string& SpamSource_Name(SpamSource value) {
+ return SpamReport_SpamSource_Name(value);
+ }
+ static inline bool SpamSource_Parse(const ::std::string& name,
+ SpamSource* value) {
+ return SpamReport_SpamSource_Parse(name, value);
+ }
+
+ // accessors -------------------------------------------------------
+
+ // optional .bgs.protocol.account.v1.GameAccountHandle target = 1;
+ inline bool has_target() const;
+ inline void clear_target();
+ static const int kTargetFieldNumber = 1;
+ inline const ::bgs::protocol::account::v1::GameAccountHandle& target() const;
+ inline ::bgs::protocol::account::v1::GameAccountHandle* mutable_target();
+ inline ::bgs::protocol::account::v1::GameAccountHandle* release_target();
+ inline void set_allocated_target(::bgs::protocol::account::v1::GameAccountHandle* target);
+
+ // optional .bgs.protocol.report.v1.SpamReport.SpamSource source = 2 [default = OTHER];
+ inline bool has_source() const;
+ inline void clear_source();
+ static const int kSourceFieldNumber = 2;
+ inline ::bgs::protocol::report::v1::SpamReport_SpamSource source() const;
+ inline void set_source(::bgs::protocol::report::v1::SpamReport_SpamSource value);
+
+ // @@protoc_insertion_point(class_scope:bgs.protocol.report.v1.SpamReport)
+ private:
+ inline void set_has_target();
+ inline void clear_has_target();
+ inline void set_has_source();
+ inline void clear_has_source();
+
+ ::google::protobuf::UnknownFieldSet _unknown_fields_;
+
+ ::google::protobuf::uint32 _has_bits_[1];
+ mutable int _cached_size_;
+ ::bgs::protocol::account::v1::GameAccountHandle* target_;
+ int source_;
+ friend void TC_PROTO_API protobuf_AddDesc_report_5ftypes_2eproto();
+ friend void protobuf_AssignDesc_report_5ftypes_2eproto();
+ friend void protobuf_ShutdownFile_report_5ftypes_2eproto();
+
+ void InitAsDefaultInstance();
+ static SpamReport* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class TC_PROTO_API HarassmentReport : public ::google::protobuf::Message {
+ public:
+ HarassmentReport();
+ virtual ~HarassmentReport();
+
+ HarassmentReport(const HarassmentReport& from);
+
+ inline HarassmentReport& operator=(const HarassmentReport& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+ return _unknown_fields_;
+ }
+
+ inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+ return &_unknown_fields_;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const HarassmentReport& default_instance();
+
+ void Swap(HarassmentReport* other);
+
+ // implements Message ----------------------------------------------
+
+ HarassmentReport* New() const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ public:
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional .bgs.protocol.account.v1.GameAccountHandle target = 1;
+ inline bool has_target() const;
+ inline void clear_target();
+ static const int kTargetFieldNumber = 1;
+ inline const ::bgs::protocol::account::v1::GameAccountHandle& target() const;
+ inline ::bgs::protocol::account::v1::GameAccountHandle* mutable_target();
+ inline ::bgs::protocol::account::v1::GameAccountHandle* release_target();
+ inline void set_allocated_target(::bgs::protocol::account::v1::GameAccountHandle* target);
+
+ // optional string text = 2;
+ inline bool has_text() const;
+ inline void clear_text();
+ static const int kTextFieldNumber = 2;
+ inline const ::std::string& text() const;
+ inline void set_text(const ::std::string& value);
+ inline void set_text(const char* value);
+ inline void set_text(const char* value, size_t size);
+ inline ::std::string* mutable_text();
+ inline ::std::string* release_text();
+ inline void set_allocated_text(::std::string* text);
+
+ // @@protoc_insertion_point(class_scope:bgs.protocol.report.v1.HarassmentReport)
+ private:
+ inline void set_has_target();
+ inline void clear_has_target();
+ inline void set_has_text();
+ inline void clear_has_text();
+
+ ::google::protobuf::UnknownFieldSet _unknown_fields_;
+
+ ::google::protobuf::uint32 _has_bits_[1];
+ mutable int _cached_size_;
+ ::bgs::protocol::account::v1::GameAccountHandle* target_;
+ ::std::string* text_;
+ friend void TC_PROTO_API protobuf_AddDesc_report_5ftypes_2eproto();
+ friend void protobuf_AssignDesc_report_5ftypes_2eproto();
+ friend void protobuf_ShutdownFile_report_5ftypes_2eproto();
+
+ void InitAsDefaultInstance();
+ static HarassmentReport* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class TC_PROTO_API RealLifeThreatReport : public ::google::protobuf::Message {
+ public:
+ RealLifeThreatReport();
+ virtual ~RealLifeThreatReport();
+
+ RealLifeThreatReport(const RealLifeThreatReport& from);
+
+ inline RealLifeThreatReport& operator=(const RealLifeThreatReport& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+ return _unknown_fields_;
+ }
+
+ inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+ return &_unknown_fields_;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const RealLifeThreatReport& default_instance();
+
+ void Swap(RealLifeThreatReport* other);
+
+ // implements Message ----------------------------------------------
+
+ RealLifeThreatReport* New() const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ public:
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional .bgs.protocol.account.v1.GameAccountHandle target = 1;
+ inline bool has_target() const;
+ inline void clear_target();
+ static const int kTargetFieldNumber = 1;
+ inline const ::bgs::protocol::account::v1::GameAccountHandle& target() const;
+ inline ::bgs::protocol::account::v1::GameAccountHandle* mutable_target();
+ inline ::bgs::protocol::account::v1::GameAccountHandle* release_target();
+ inline void set_allocated_target(::bgs::protocol::account::v1::GameAccountHandle* target);
+
+ // optional string text = 2;
+ inline bool has_text() const;
+ inline void clear_text();
+ static const int kTextFieldNumber = 2;
+ inline const ::std::string& text() const;
+ inline void set_text(const ::std::string& value);
+ inline void set_text(const char* value);
+ inline void set_text(const char* value, size_t size);
+ inline ::std::string* mutable_text();
+ inline ::std::string* release_text();
+ inline void set_allocated_text(::std::string* text);
+
+ // @@protoc_insertion_point(class_scope:bgs.protocol.report.v1.RealLifeThreatReport)
+ private:
+ inline void set_has_target();
+ inline void clear_has_target();
+ inline void set_has_text();
+ inline void clear_has_text();
+
+ ::google::protobuf::UnknownFieldSet _unknown_fields_;
+
+ ::google::protobuf::uint32 _has_bits_[1];
+ mutable int _cached_size_;
+ ::bgs::protocol::account::v1::GameAccountHandle* target_;
+ ::std::string* text_;
+ friend void TC_PROTO_API protobuf_AddDesc_report_5ftypes_2eproto();
+ friend void protobuf_AssignDesc_report_5ftypes_2eproto();
+ friend void protobuf_ShutdownFile_report_5ftypes_2eproto();
+
+ void InitAsDefaultInstance();
+ static RealLifeThreatReport* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class TC_PROTO_API InappropriateBattleTagReport : public ::google::protobuf::Message {
+ public:
+ InappropriateBattleTagReport();
+ virtual ~InappropriateBattleTagReport();
+
+ InappropriateBattleTagReport(const InappropriateBattleTagReport& from);
+
+ inline InappropriateBattleTagReport& operator=(const InappropriateBattleTagReport& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+ return _unknown_fields_;
+ }
+
+ inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+ return &_unknown_fields_;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const InappropriateBattleTagReport& default_instance();
+
+ void Swap(InappropriateBattleTagReport* other);
+
+ // implements Message ----------------------------------------------
+
+ InappropriateBattleTagReport* New() const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ public:
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional .bgs.protocol.account.v1.GameAccountHandle target = 1;
+ inline bool has_target() const;
+ inline void clear_target();
+ static const int kTargetFieldNumber = 1;
+ inline const ::bgs::protocol::account::v1::GameAccountHandle& target() const;
+ inline ::bgs::protocol::account::v1::GameAccountHandle* mutable_target();
+ inline ::bgs::protocol::account::v1::GameAccountHandle* release_target();
+ inline void set_allocated_target(::bgs::protocol::account::v1::GameAccountHandle* target);
+
+ // optional string battle_tag = 2;
+ inline bool has_battle_tag() const;
+ inline void clear_battle_tag();
+ static const int kBattleTagFieldNumber = 2;
+ inline const ::std::string& battle_tag() const;
+ inline void set_battle_tag(const ::std::string& value);
+ inline void set_battle_tag(const char* value);
+ inline void set_battle_tag(const char* value, size_t size);
+ inline ::std::string* mutable_battle_tag();
+ inline ::std::string* release_battle_tag();
+ inline void set_allocated_battle_tag(::std::string* battle_tag);
+
+ // @@protoc_insertion_point(class_scope:bgs.protocol.report.v1.InappropriateBattleTagReport)
+ private:
+ inline void set_has_target();
+ inline void clear_has_target();
+ inline void set_has_battle_tag();
+ inline void clear_has_battle_tag();
+
+ ::google::protobuf::UnknownFieldSet _unknown_fields_;
+
+ ::google::protobuf::uint32 _has_bits_[1];
+ mutable int _cached_size_;
+ ::bgs::protocol::account::v1::GameAccountHandle* target_;
+ ::std::string* battle_tag_;
+ friend void TC_PROTO_API protobuf_AddDesc_report_5ftypes_2eproto();
+ friend void protobuf_AssignDesc_report_5ftypes_2eproto();
+ friend void protobuf_ShutdownFile_report_5ftypes_2eproto();
+
+ void InitAsDefaultInstance();
+ static InappropriateBattleTagReport* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class TC_PROTO_API HackingReport : public ::google::protobuf::Message {
+ public:
+ HackingReport();
+ virtual ~HackingReport();
+
+ HackingReport(const HackingReport& from);
+
+ inline HackingReport& operator=(const HackingReport& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+ return _unknown_fields_;
+ }
+
+ inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+ return &_unknown_fields_;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const HackingReport& default_instance();
+
+ void Swap(HackingReport* other);
+
+ // implements Message ----------------------------------------------
+
+ HackingReport* New() const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ public:
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional .bgs.protocol.account.v1.GameAccountHandle target = 1;
+ inline bool has_target() const;
+ inline void clear_target();
+ static const int kTargetFieldNumber = 1;
+ inline const ::bgs::protocol::account::v1::GameAccountHandle& target() const;
+ inline ::bgs::protocol::account::v1::GameAccountHandle* mutable_target();
+ inline ::bgs::protocol::account::v1::GameAccountHandle* release_target();
+ inline void set_allocated_target(::bgs::protocol::account::v1::GameAccountHandle* target);
+
+ // @@protoc_insertion_point(class_scope:bgs.protocol.report.v1.HackingReport)
+ private:
+ inline void set_has_target();
+ inline void clear_has_target();
+
+ ::google::protobuf::UnknownFieldSet _unknown_fields_;
+
+ ::google::protobuf::uint32 _has_bits_[1];
+ mutable int _cached_size_;
+ ::bgs::protocol::account::v1::GameAccountHandle* target_;
+ friend void TC_PROTO_API protobuf_AddDesc_report_5ftypes_2eproto();
+ friend void protobuf_AssignDesc_report_5ftypes_2eproto();
+ friend void protobuf_ShutdownFile_report_5ftypes_2eproto();
+
+ void InitAsDefaultInstance();
+ static HackingReport* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class TC_PROTO_API BottingReport : public ::google::protobuf::Message {
+ public:
+ BottingReport();
+ virtual ~BottingReport();
+
+ BottingReport(const BottingReport& from);
+
+ inline BottingReport& operator=(const BottingReport& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+ return _unknown_fields_;
+ }
+
+ inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+ return &_unknown_fields_;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const BottingReport& default_instance();
+
+ void Swap(BottingReport* other);
+
+ // implements Message ----------------------------------------------
+
+ BottingReport* New() const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ public:
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // optional .bgs.protocol.account.v1.GameAccountHandle target = 1;
+ inline bool has_target() const;
+ inline void clear_target();
+ static const int kTargetFieldNumber = 1;
+ inline const ::bgs::protocol::account::v1::GameAccountHandle& target() const;
+ inline ::bgs::protocol::account::v1::GameAccountHandle* mutable_target();
+ inline ::bgs::protocol::account::v1::GameAccountHandle* release_target();
+ inline void set_allocated_target(::bgs::protocol::account::v1::GameAccountHandle* target);
+
+ // @@protoc_insertion_point(class_scope:bgs.protocol.report.v1.BottingReport)
+ private:
+ inline void set_has_target();
+ inline void clear_has_target();
+
+ ::google::protobuf::UnknownFieldSet _unknown_fields_;
+
+ ::google::protobuf::uint32 _has_bits_[1];
+ mutable int _cached_size_;
+ ::bgs::protocol::account::v1::GameAccountHandle* target_;
+ friend void TC_PROTO_API protobuf_AddDesc_report_5ftypes_2eproto();
+ friend void protobuf_AssignDesc_report_5ftypes_2eproto();
+ friend void protobuf_ShutdownFile_report_5ftypes_2eproto();
+
+ void InitAsDefaultInstance();
+ static BottingReport* default_instance_;
+};
+// -------------------------------------------------------------------
+
+class TC_PROTO_API Report : public ::google::protobuf::Message {
+ public:
+ Report();
+ virtual ~Report();
+
+ Report(const Report& from);
+
+ inline Report& operator=(const Report& from) {
+ CopyFrom(from);
+ return *this;
+ }
+
+ inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
+ return _unknown_fields_;
+ }
+
+ inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
+ return &_unknown_fields_;
+ }
+
+ static const ::google::protobuf::Descriptor* descriptor();
+ static const Report& default_instance();
+
+ void Swap(Report* other);
+
+ // implements Message ----------------------------------------------
+
+ Report* New() const;
+ int GetCachedSize() const { return _cached_size_; }
+ private:
+ void SharedCtor();
+ void SharedDtor();
+ void SetCachedSize(int size) const;
+ public:
+ ::google::protobuf::Metadata GetMetadata() const;
+
+ // nested types ----------------------------------------------------
+
+ // accessors -------------------------------------------------------
+
+ // required string report_type = 1;
+ inline bool has_report_type() const;
+ inline void clear_report_type();
+ static const int kReportTypeFieldNumber = 1;
+ inline const ::std::string& report_type() const;
+ inline void set_report_type(const ::std::string& value);
+ inline void set_report_type(const char* value);
+ inline void set_report_type(const char* value, size_t size);
+ inline ::std::string* mutable_report_type();
+ inline ::std::string* release_report_type();
+ inline void set_allocated_report_type(::std::string* report_type);
+
+ // repeated .bgs.protocol.Attribute attribute = 2;
+ inline int attribute_size() const;
+ inline void clear_attribute();
+ static const int kAttributeFieldNumber = 2;
+ inline const ::bgs::protocol::Attribute& attribute(int index) const;
+ inline ::bgs::protocol::Attribute* mutable_attribute(int index);
+ inline ::bgs::protocol::Attribute* add_attribute();
+ inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::Attribute >&
+ attribute() const;
+ inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::Attribute >*
+ mutable_attribute();
+
+ // optional int32 report_qos = 3 [default = 0];
+ inline bool has_report_qos() const;
+ inline void clear_report_qos();
+ static const int kReportQosFieldNumber = 3;
+ inline ::google::protobuf::int32 report_qos() const;
+ inline void set_report_qos(::google::protobuf::int32 value);
+
+ // optional .bgs.protocol.EntityId reporting_account = 4;
+ inline bool has_reporting_account() const;
+ inline void clear_reporting_account();
+ static const int kReportingAccountFieldNumber = 4;
+ inline const ::bgs::protocol::EntityId& reporting_account() const;
+ inline ::bgs::protocol::EntityId* mutable_reporting_account();
+ inline ::bgs::protocol::EntityId* release_reporting_account();
+ inline void set_allocated_reporting_account(::bgs::protocol::EntityId* reporting_account);
+
+ // optional .bgs.protocol.EntityId reporting_game_account = 5;
+ inline bool has_reporting_game_account() const;
+ inline void clear_reporting_game_account();
+ static const int kReportingGameAccountFieldNumber = 5;
+ inline const ::bgs::protocol::EntityId& reporting_game_account() const;
+ inline ::bgs::protocol::EntityId* mutable_reporting_game_account();
+ inline ::bgs::protocol::EntityId* release_reporting_game_account();
+ inline void set_allocated_reporting_game_account(::bgs::protocol::EntityId* reporting_game_account);
+
+ // optional fixed64 report_timestamp = 6;
+ inline bool has_report_timestamp() const;
+ inline void clear_report_timestamp();
+ static const int kReportTimestampFieldNumber = 6;
+ inline ::google::protobuf::uint64 report_timestamp() const;
+ inline void set_report_timestamp(::google::protobuf::uint64 value);
+
+ // @@protoc_insertion_point(class_scope:bgs.protocol.report.v1.Report)
+ private:
+ inline void set_has_report_type();
+ inline void clear_has_report_type();
+ inline void set_has_report_qos();
+ inline void clear_has_report_qos();
+ inline void set_has_reporting_account();
+ inline void clear_has_reporting_account();
+ inline void set_has_reporting_game_account();
+ inline void clear_has_reporting_game_account();
+ inline void set_has_report_timestamp();
+ inline void clear_has_report_timestamp();
+
+ ::google::protobuf::UnknownFieldSet _unknown_fields_;
+
+ ::google::protobuf::uint32 _has_bits_[1];
+ mutable int _cached_size_;
+ ::std::string* report_type_;
+ ::google::protobuf::RepeatedPtrField< ::bgs::protocol::Attribute > attribute_;
+ ::bgs::protocol::EntityId* reporting_account_;
+ ::bgs::protocol::EntityId* reporting_game_account_;
+ ::google::protobuf::uint64 report_timestamp_;
+ ::google::protobuf::int32 report_qos_;
+ friend void TC_PROTO_API protobuf_AddDesc_report_5ftypes_2eproto();
+ friend void protobuf_AssignDesc_report_5ftypes_2eproto();
+ friend void protobuf_ShutdownFile_report_5ftypes_2eproto();
+
+ void InitAsDefaultInstance();
+ static Report* default_instance_;
+};
+// ===================================================================
+
+// ===================================================================
+
+// ===================================================================
+
+// ReportType
+
+// optional string user_description = 1;
+inline bool ReportType::has_user_description() const {
+ return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void ReportType::set_has_user_description() {
+ _has_bits_[0] |= 0x00000001u;
+}
+inline void ReportType::clear_has_user_description() {
+ _has_bits_[0] &= ~0x00000001u;
+}
+inline void ReportType::clear_user_description() {
+ if (user_description_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ user_description_->clear();
+ }
+ clear_has_user_description();
+}
+inline const ::std::string& ReportType::user_description() const {
+ // @@protoc_insertion_point(field_get:bgs.protocol.report.v1.ReportType.user_description)
+ return *user_description_;
+}
+inline void ReportType::set_user_description(const ::std::string& value) {
+ set_has_user_description();
+ if (user_description_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ user_description_ = new ::std::string;
+ }
+ user_description_->assign(value);
+ // @@protoc_insertion_point(field_set:bgs.protocol.report.v1.ReportType.user_description)
+}
+inline void ReportType::set_user_description(const char* value) {
+ set_has_user_description();
+ if (user_description_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ user_description_ = new ::std::string;
+ }
+ user_description_->assign(value);
+ // @@protoc_insertion_point(field_set_char:bgs.protocol.report.v1.ReportType.user_description)
+}
+inline void ReportType::set_user_description(const char* value, size_t size) {
+ set_has_user_description();
+ if (user_description_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ user_description_ = new ::std::string;
+ }
+ user_description_->assign(reinterpret_cast<const char*>(value), size);
+ // @@protoc_insertion_point(field_set_pointer:bgs.protocol.report.v1.ReportType.user_description)
+}
+inline ::std::string* ReportType::mutable_user_description() {
+ set_has_user_description();
+ if (user_description_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ user_description_ = new ::std::string;
+ }
+ // @@protoc_insertion_point(field_mutable:bgs.protocol.report.v1.ReportType.user_description)
+ return user_description_;
+}
+inline ::std::string* ReportType::release_user_description() {
+ clear_has_user_description();
+ if (user_description_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ return NULL;
+ } else {
+ ::std::string* temp = user_description_;
+ user_description_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ return temp;
+ }
+}
+inline void ReportType::set_allocated_user_description(::std::string* user_description) {
+ if (user_description_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ delete user_description_;
+ }
+ if (user_description) {
+ set_has_user_description();
+ user_description_ = user_description;
+ } else {
+ clear_has_user_description();
+ user_description_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ }
+ // @@protoc_insertion_point(field_set_allocated:bgs.protocol.report.v1.ReportType.user_description)
+}
+
+// optional .bgs.protocol.report.v1.CustomReport custom_report = 10;
+inline bool ReportType::has_custom_report() const {
+ return type_case() == kCustomReport;
+}
+inline void ReportType::set_has_custom_report() {
+ _oneof_case_[0] = kCustomReport;
+}
+inline void ReportType::clear_custom_report() {
+ if (has_custom_report()) {
+ delete type_.custom_report_;
+ clear_has_type();
+ }
+}
+inline const ::bgs::protocol::report::v1::CustomReport& ReportType::custom_report() const {
+ return has_custom_report() ? *type_.custom_report_
+ : ::bgs::protocol::report::v1::CustomReport::default_instance();
+}
+inline ::bgs::protocol::report::v1::CustomReport* ReportType::mutable_custom_report() {
+ if (!has_custom_report()) {
+ clear_type();
+ set_has_custom_report();
+ type_.custom_report_ = new ::bgs::protocol::report::v1::CustomReport;
+ }
+ return type_.custom_report_;
+}
+inline ::bgs::protocol::report::v1::CustomReport* ReportType::release_custom_report() {
+ if (has_custom_report()) {
+ clear_has_type();
+ ::bgs::protocol::report::v1::CustomReport* temp = type_.custom_report_;
+ type_.custom_report_ = NULL;
+ return temp;
+ } else {
+ return NULL;
+ }
+}
+inline void ReportType::set_allocated_custom_report(::bgs::protocol::report::v1::CustomReport* custom_report) {
+ clear_type();
+ if (custom_report) {
+ set_has_custom_report();
+ type_.custom_report_ = custom_report;
+ }
+}
+
+// optional .bgs.protocol.report.v1.SpamReport spam_report = 11;
+inline bool ReportType::has_spam_report() const {
+ return type_case() == kSpamReport;
+}
+inline void ReportType::set_has_spam_report() {
+ _oneof_case_[0] = kSpamReport;
+}
+inline void ReportType::clear_spam_report() {
+ if (has_spam_report()) {
+ delete type_.spam_report_;
+ clear_has_type();
+ }
+}
+inline const ::bgs::protocol::report::v1::SpamReport& ReportType::spam_report() const {
+ return has_spam_report() ? *type_.spam_report_
+ : ::bgs::protocol::report::v1::SpamReport::default_instance();
+}
+inline ::bgs::protocol::report::v1::SpamReport* ReportType::mutable_spam_report() {
+ if (!has_spam_report()) {
+ clear_type();
+ set_has_spam_report();
+ type_.spam_report_ = new ::bgs::protocol::report::v1::SpamReport;
+ }
+ return type_.spam_report_;
+}
+inline ::bgs::protocol::report::v1::SpamReport* ReportType::release_spam_report() {
+ if (has_spam_report()) {
+ clear_has_type();
+ ::bgs::protocol::report::v1::SpamReport* temp = type_.spam_report_;
+ type_.spam_report_ = NULL;
+ return temp;
+ } else {
+ return NULL;
+ }
+}
+inline void ReportType::set_allocated_spam_report(::bgs::protocol::report::v1::SpamReport* spam_report) {
+ clear_type();
+ if (spam_report) {
+ set_has_spam_report();
+ type_.spam_report_ = spam_report;
+ }
+}
+
+// optional .bgs.protocol.report.v1.HarassmentReport harassment_report = 12;
+inline bool ReportType::has_harassment_report() const {
+ return type_case() == kHarassmentReport;
+}
+inline void ReportType::set_has_harassment_report() {
+ _oneof_case_[0] = kHarassmentReport;
+}
+inline void ReportType::clear_harassment_report() {
+ if (has_harassment_report()) {
+ delete type_.harassment_report_;
+ clear_has_type();
+ }
+}
+inline const ::bgs::protocol::report::v1::HarassmentReport& ReportType::harassment_report() const {
+ return has_harassment_report() ? *type_.harassment_report_
+ : ::bgs::protocol::report::v1::HarassmentReport::default_instance();
+}
+inline ::bgs::protocol::report::v1::HarassmentReport* ReportType::mutable_harassment_report() {
+ if (!has_harassment_report()) {
+ clear_type();
+ set_has_harassment_report();
+ type_.harassment_report_ = new ::bgs::protocol::report::v1::HarassmentReport;
+ }
+ return type_.harassment_report_;
+}
+inline ::bgs::protocol::report::v1::HarassmentReport* ReportType::release_harassment_report() {
+ if (has_harassment_report()) {
+ clear_has_type();
+ ::bgs::protocol::report::v1::HarassmentReport* temp = type_.harassment_report_;
+ type_.harassment_report_ = NULL;
+ return temp;
+ } else {
+ return NULL;
+ }
+}
+inline void ReportType::set_allocated_harassment_report(::bgs::protocol::report::v1::HarassmentReport* harassment_report) {
+ clear_type();
+ if (harassment_report) {
+ set_has_harassment_report();
+ type_.harassment_report_ = harassment_report;
+ }
+}
+
+// optional .bgs.protocol.report.v1.RealLifeThreatReport real_life_threat_report = 13;
+inline bool ReportType::has_real_life_threat_report() const {
+ return type_case() == kRealLifeThreatReport;
+}
+inline void ReportType::set_has_real_life_threat_report() {
+ _oneof_case_[0] = kRealLifeThreatReport;
+}
+inline void ReportType::clear_real_life_threat_report() {
+ if (has_real_life_threat_report()) {
+ delete type_.real_life_threat_report_;
+ clear_has_type();
+ }
+}
+inline const ::bgs::protocol::report::v1::RealLifeThreatReport& ReportType::real_life_threat_report() const {
+ return has_real_life_threat_report() ? *type_.real_life_threat_report_
+ : ::bgs::protocol::report::v1::RealLifeThreatReport::default_instance();
+}
+inline ::bgs::protocol::report::v1::RealLifeThreatReport* ReportType::mutable_real_life_threat_report() {
+ if (!has_real_life_threat_report()) {
+ clear_type();
+ set_has_real_life_threat_report();
+ type_.real_life_threat_report_ = new ::bgs::protocol::report::v1::RealLifeThreatReport;
+ }
+ return type_.real_life_threat_report_;
+}
+inline ::bgs::protocol::report::v1::RealLifeThreatReport* ReportType::release_real_life_threat_report() {
+ if (has_real_life_threat_report()) {
+ clear_has_type();
+ ::bgs::protocol::report::v1::RealLifeThreatReport* temp = type_.real_life_threat_report_;
+ type_.real_life_threat_report_ = NULL;
+ return temp;
+ } else {
+ return NULL;
+ }
+}
+inline void ReportType::set_allocated_real_life_threat_report(::bgs::protocol::report::v1::RealLifeThreatReport* real_life_threat_report) {
+ clear_type();
+ if (real_life_threat_report) {
+ set_has_real_life_threat_report();
+ type_.real_life_threat_report_ = real_life_threat_report;
+ }
+}
+
+// optional .bgs.protocol.report.v1.InappropriateBattleTagReport inappropriate_battle_tag_report = 14;
+inline bool ReportType::has_inappropriate_battle_tag_report() const {
+ return type_case() == kInappropriateBattleTagReport;
+}
+inline void ReportType::set_has_inappropriate_battle_tag_report() {
+ _oneof_case_[0] = kInappropriateBattleTagReport;
+}
+inline void ReportType::clear_inappropriate_battle_tag_report() {
+ if (has_inappropriate_battle_tag_report()) {
+ delete type_.inappropriate_battle_tag_report_;
+ clear_has_type();
+ }
+}
+inline const ::bgs::protocol::report::v1::InappropriateBattleTagReport& ReportType::inappropriate_battle_tag_report() const {
+ return has_inappropriate_battle_tag_report() ? *type_.inappropriate_battle_tag_report_
+ : ::bgs::protocol::report::v1::InappropriateBattleTagReport::default_instance();
+}
+inline ::bgs::protocol::report::v1::InappropriateBattleTagReport* ReportType::mutable_inappropriate_battle_tag_report() {
+ if (!has_inappropriate_battle_tag_report()) {
+ clear_type();
+ set_has_inappropriate_battle_tag_report();
+ type_.inappropriate_battle_tag_report_ = new ::bgs::protocol::report::v1::InappropriateBattleTagReport;
+ }
+ return type_.inappropriate_battle_tag_report_;
+}
+inline ::bgs::protocol::report::v1::InappropriateBattleTagReport* ReportType::release_inappropriate_battle_tag_report() {
+ if (has_inappropriate_battle_tag_report()) {
+ clear_has_type();
+ ::bgs::protocol::report::v1::InappropriateBattleTagReport* temp = type_.inappropriate_battle_tag_report_;
+ type_.inappropriate_battle_tag_report_ = NULL;
+ return temp;
+ } else {
+ return NULL;
+ }
+}
+inline void ReportType::set_allocated_inappropriate_battle_tag_report(::bgs::protocol::report::v1::InappropriateBattleTagReport* inappropriate_battle_tag_report) {
+ clear_type();
+ if (inappropriate_battle_tag_report) {
+ set_has_inappropriate_battle_tag_report();
+ type_.inappropriate_battle_tag_report_ = inappropriate_battle_tag_report;
+ }
+}
+
+// optional .bgs.protocol.report.v1.HackingReport hacking_report = 15;
+inline bool ReportType::has_hacking_report() const {
+ return type_case() == kHackingReport;
+}
+inline void ReportType::set_has_hacking_report() {
+ _oneof_case_[0] = kHackingReport;
+}
+inline void ReportType::clear_hacking_report() {
+ if (has_hacking_report()) {
+ delete type_.hacking_report_;
+ clear_has_type();
+ }
+}
+inline const ::bgs::protocol::report::v1::HackingReport& ReportType::hacking_report() const {
+ return has_hacking_report() ? *type_.hacking_report_
+ : ::bgs::protocol::report::v1::HackingReport::default_instance();
+}
+inline ::bgs::protocol::report::v1::HackingReport* ReportType::mutable_hacking_report() {
+ if (!has_hacking_report()) {
+ clear_type();
+ set_has_hacking_report();
+ type_.hacking_report_ = new ::bgs::protocol::report::v1::HackingReport;
+ }
+ return type_.hacking_report_;
+}
+inline ::bgs::protocol::report::v1::HackingReport* ReportType::release_hacking_report() {
+ if (has_hacking_report()) {
+ clear_has_type();
+ ::bgs::protocol::report::v1::HackingReport* temp = type_.hacking_report_;
+ type_.hacking_report_ = NULL;
+ return temp;
+ } else {
+ return NULL;
+ }
+}
+inline void ReportType::set_allocated_hacking_report(::bgs::protocol::report::v1::HackingReport* hacking_report) {
+ clear_type();
+ if (hacking_report) {
+ set_has_hacking_report();
+ type_.hacking_report_ = hacking_report;
+ }
+}
+
+// optional .bgs.protocol.report.v1.BottingReport botting_report = 16;
+inline bool ReportType::has_botting_report() const {
+ return type_case() == kBottingReport;
+}
+inline void ReportType::set_has_botting_report() {
+ _oneof_case_[0] = kBottingReport;
+}
+inline void ReportType::clear_botting_report() {
+ if (has_botting_report()) {
+ delete type_.botting_report_;
+ clear_has_type();
+ }
+}
+inline const ::bgs::protocol::report::v1::BottingReport& ReportType::botting_report() const {
+ return has_botting_report() ? *type_.botting_report_
+ : ::bgs::protocol::report::v1::BottingReport::default_instance();
+}
+inline ::bgs::protocol::report::v1::BottingReport* ReportType::mutable_botting_report() {
+ if (!has_botting_report()) {
+ clear_type();
+ set_has_botting_report();
+ type_.botting_report_ = new ::bgs::protocol::report::v1::BottingReport;
+ }
+ return type_.botting_report_;
+}
+inline ::bgs::protocol::report::v1::BottingReport* ReportType::release_botting_report() {
+ if (has_botting_report()) {
+ clear_has_type();
+ ::bgs::protocol::report::v1::BottingReport* temp = type_.botting_report_;
+ type_.botting_report_ = NULL;
+ return temp;
+ } else {
+ return NULL;
+ }
+}
+inline void ReportType::set_allocated_botting_report(::bgs::protocol::report::v1::BottingReport* botting_report) {
+ clear_type();
+ if (botting_report) {
+ set_has_botting_report();
+ type_.botting_report_ = botting_report;
+ }
+}
+
+inline bool ReportType::has_type() {
+ return type_case() != TYPE_NOT_SET;
+}
+inline void ReportType::clear_has_type() {
+ _oneof_case_[0] = TYPE_NOT_SET;
+}
+inline ReportType::TypeCase ReportType::type_case() const {
+ return ReportType::TypeCase(_oneof_case_[0]);
+}
+// -------------------------------------------------------------------
+
+// CustomReport
+
+// optional string type = 1;
+inline bool CustomReport::has_type() const {
+ return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void CustomReport::set_has_type() {
+ _has_bits_[0] |= 0x00000001u;
+}
+inline void CustomReport::clear_has_type() {
+ _has_bits_[0] &= ~0x00000001u;
+}
+inline void CustomReport::clear_type() {
+ if (type_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ type_->clear();
+ }
+ clear_has_type();
+}
+inline const ::std::string& CustomReport::type() const {
+ // @@protoc_insertion_point(field_get:bgs.protocol.report.v1.CustomReport.type)
+ return *type_;
+}
+inline void CustomReport::set_type(const ::std::string& value) {
+ set_has_type();
+ if (type_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ type_ = new ::std::string;
+ }
+ type_->assign(value);
+ // @@protoc_insertion_point(field_set:bgs.protocol.report.v1.CustomReport.type)
+}
+inline void CustomReport::set_type(const char* value) {
+ set_has_type();
+ if (type_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ type_ = new ::std::string;
+ }
+ type_->assign(value);
+ // @@protoc_insertion_point(field_set_char:bgs.protocol.report.v1.CustomReport.type)
+}
+inline void CustomReport::set_type(const char* value, size_t size) {
+ set_has_type();
+ if (type_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ type_ = new ::std::string;
+ }
+ type_->assign(reinterpret_cast<const char*>(value), size);
+ // @@protoc_insertion_point(field_set_pointer:bgs.protocol.report.v1.CustomReport.type)
+}
+inline ::std::string* CustomReport::mutable_type() {
+ set_has_type();
+ if (type_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ type_ = new ::std::string;
+ }
+ // @@protoc_insertion_point(field_mutable:bgs.protocol.report.v1.CustomReport.type)
+ return type_;
+}
+inline ::std::string* CustomReport::release_type() {
+ clear_has_type();
+ if (type_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ return NULL;
+ } else {
+ ::std::string* temp = type_;
+ type_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ return temp;
+ }
+}
+inline void CustomReport::set_allocated_type(::std::string* type) {
+ if (type_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ delete type_;
+ }
+ if (type) {
+ set_has_type();
+ type_ = type;
+ } else {
+ clear_has_type();
+ type_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ }
+ // @@protoc_insertion_point(field_set_allocated:bgs.protocol.report.v1.CustomReport.type)
+}
+
+// optional string program_id = 2 [deprecated = true];
+inline bool CustomReport::has_program_id() const {
+ return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void CustomReport::set_has_program_id() {
+ _has_bits_[0] |= 0x00000002u;
+}
+inline void CustomReport::clear_has_program_id() {
+ _has_bits_[0] &= ~0x00000002u;
+}
+inline void CustomReport::clear_program_id() {
+ if (program_id_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ program_id_->clear();
+ }
+ clear_has_program_id();
+}
+inline const ::std::string& CustomReport::program_id() const {
+ // @@protoc_insertion_point(field_get:bgs.protocol.report.v1.CustomReport.program_id)
+ return *program_id_;
+}
+inline void CustomReport::set_program_id(const ::std::string& value) {
+ set_has_program_id();
+ if (program_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ program_id_ = new ::std::string;
+ }
+ program_id_->assign(value);
+ // @@protoc_insertion_point(field_set:bgs.protocol.report.v1.CustomReport.program_id)
+}
+inline void CustomReport::set_program_id(const char* value) {
+ set_has_program_id();
+ if (program_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ program_id_ = new ::std::string;
+ }
+ program_id_->assign(value);
+ // @@protoc_insertion_point(field_set_char:bgs.protocol.report.v1.CustomReport.program_id)
+}
+inline void CustomReport::set_program_id(const char* value, size_t size) {
+ set_has_program_id();
+ if (program_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ program_id_ = new ::std::string;
+ }
+ program_id_->assign(reinterpret_cast<const char*>(value), size);
+ // @@protoc_insertion_point(field_set_pointer:bgs.protocol.report.v1.CustomReport.program_id)
+}
+inline ::std::string* CustomReport::mutable_program_id() {
+ set_has_program_id();
+ if (program_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ program_id_ = new ::std::string;
+ }
+ // @@protoc_insertion_point(field_mutable:bgs.protocol.report.v1.CustomReport.program_id)
+ return program_id_;
+}
+inline ::std::string* CustomReport::release_program_id() {
+ clear_has_program_id();
+ if (program_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ return NULL;
+ } else {
+ ::std::string* temp = program_id_;
+ program_id_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ return temp;
+ }
+}
+inline void CustomReport::set_allocated_program_id(::std::string* program_id) {
+ if (program_id_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ delete program_id_;
+ }
+ if (program_id) {
+ set_has_program_id();
+ program_id_ = program_id;
+ } else {
+ clear_has_program_id();
+ program_id_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ }
+ // @@protoc_insertion_point(field_set_allocated:bgs.protocol.report.v1.CustomReport.program_id)
+}
+
+// repeated .bgs.protocol.Attribute attribute = 3;
+inline int CustomReport::attribute_size() const {
+ return attribute_.size();
+}
+inline void CustomReport::clear_attribute() {
+ attribute_.Clear();
+}
+inline const ::bgs::protocol::Attribute& CustomReport::attribute(int index) const {
+ // @@protoc_insertion_point(field_get:bgs.protocol.report.v1.CustomReport.attribute)
+ return attribute_.Get(index);
+}
+inline ::bgs::protocol::Attribute* CustomReport::mutable_attribute(int index) {
+ // @@protoc_insertion_point(field_mutable:bgs.protocol.report.v1.CustomReport.attribute)
+ return attribute_.Mutable(index);
+}
+inline ::bgs::protocol::Attribute* CustomReport::add_attribute() {
+ // @@protoc_insertion_point(field_add:bgs.protocol.report.v1.CustomReport.attribute)
+ return attribute_.Add();
+}
+inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::Attribute >&
+CustomReport::attribute() const {
+ // @@protoc_insertion_point(field_list:bgs.protocol.report.v1.CustomReport.attribute)
+ return attribute_;
+}
+inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::Attribute >*
+CustomReport::mutable_attribute() {
+ // @@protoc_insertion_point(field_mutable_list:bgs.protocol.report.v1.CustomReport.attribute)
+ return &attribute_;
+}
+
+// -------------------------------------------------------------------
+
+// SpamReport
+
+// optional .bgs.protocol.account.v1.GameAccountHandle target = 1;
+inline bool SpamReport::has_target() const {
+ return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void SpamReport::set_has_target() {
+ _has_bits_[0] |= 0x00000001u;
+}
+inline void SpamReport::clear_has_target() {
+ _has_bits_[0] &= ~0x00000001u;
+}
+inline void SpamReport::clear_target() {
+ if (target_ != NULL) target_->::bgs::protocol::account::v1::GameAccountHandle::Clear();
+ clear_has_target();
+}
+inline const ::bgs::protocol::account::v1::GameAccountHandle& SpamReport::target() const {
+ // @@protoc_insertion_point(field_get:bgs.protocol.report.v1.SpamReport.target)
+ return target_ != NULL ? *target_ : *default_instance_->target_;
+}
+inline ::bgs::protocol::account::v1::GameAccountHandle* SpamReport::mutable_target() {
+ set_has_target();
+ if (target_ == NULL) target_ = new ::bgs::protocol::account::v1::GameAccountHandle;
+ // @@protoc_insertion_point(field_mutable:bgs.protocol.report.v1.SpamReport.target)
+ return target_;
+}
+inline ::bgs::protocol::account::v1::GameAccountHandle* SpamReport::release_target() {
+ clear_has_target();
+ ::bgs::protocol::account::v1::GameAccountHandle* temp = target_;
+ target_ = NULL;
+ return temp;
+}
+inline void SpamReport::set_allocated_target(::bgs::protocol::account::v1::GameAccountHandle* target) {
+ delete target_;
+ target_ = target;
+ if (target) {
+ set_has_target();
+ } else {
+ clear_has_target();
+ }
+ // @@protoc_insertion_point(field_set_allocated:bgs.protocol.report.v1.SpamReport.target)
+}
+
+// optional .bgs.protocol.report.v1.SpamReport.SpamSource source = 2 [default = OTHER];
+inline bool SpamReport::has_source() const {
+ return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void SpamReport::set_has_source() {
+ _has_bits_[0] |= 0x00000002u;
+}
+inline void SpamReport::clear_has_source() {
+ _has_bits_[0] &= ~0x00000002u;
+}
+inline void SpamReport::clear_source() {
+ source_ = 1;
+ clear_has_source();
+}
+inline ::bgs::protocol::report::v1::SpamReport_SpamSource SpamReport::source() const {
+ // @@protoc_insertion_point(field_get:bgs.protocol.report.v1.SpamReport.source)
+ return static_cast< ::bgs::protocol::report::v1::SpamReport_SpamSource >(source_);
+}
+inline void SpamReport::set_source(::bgs::protocol::report::v1::SpamReport_SpamSource value) {
+ assert(::bgs::protocol::report::v1::SpamReport_SpamSource_IsValid(value));
+ set_has_source();
+ source_ = value;
+ // @@protoc_insertion_point(field_set:bgs.protocol.report.v1.SpamReport.source)
+}
+
+// -------------------------------------------------------------------
+
+// HarassmentReport
+
+// optional .bgs.protocol.account.v1.GameAccountHandle target = 1;
+inline bool HarassmentReport::has_target() const {
+ return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void HarassmentReport::set_has_target() {
+ _has_bits_[0] |= 0x00000001u;
+}
+inline void HarassmentReport::clear_has_target() {
+ _has_bits_[0] &= ~0x00000001u;
+}
+inline void HarassmentReport::clear_target() {
+ if (target_ != NULL) target_->::bgs::protocol::account::v1::GameAccountHandle::Clear();
+ clear_has_target();
+}
+inline const ::bgs::protocol::account::v1::GameAccountHandle& HarassmentReport::target() const {
+ // @@protoc_insertion_point(field_get:bgs.protocol.report.v1.HarassmentReport.target)
+ return target_ != NULL ? *target_ : *default_instance_->target_;
+}
+inline ::bgs::protocol::account::v1::GameAccountHandle* HarassmentReport::mutable_target() {
+ set_has_target();
+ if (target_ == NULL) target_ = new ::bgs::protocol::account::v1::GameAccountHandle;
+ // @@protoc_insertion_point(field_mutable:bgs.protocol.report.v1.HarassmentReport.target)
+ return target_;
+}
+inline ::bgs::protocol::account::v1::GameAccountHandle* HarassmentReport::release_target() {
+ clear_has_target();
+ ::bgs::protocol::account::v1::GameAccountHandle* temp = target_;
+ target_ = NULL;
+ return temp;
+}
+inline void HarassmentReport::set_allocated_target(::bgs::protocol::account::v1::GameAccountHandle* target) {
+ delete target_;
+ target_ = target;
+ if (target) {
+ set_has_target();
+ } else {
+ clear_has_target();
+ }
+ // @@protoc_insertion_point(field_set_allocated:bgs.protocol.report.v1.HarassmentReport.target)
+}
+
+// optional string text = 2;
+inline bool HarassmentReport::has_text() const {
+ return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void HarassmentReport::set_has_text() {
+ _has_bits_[0] |= 0x00000002u;
+}
+inline void HarassmentReport::clear_has_text() {
+ _has_bits_[0] &= ~0x00000002u;
+}
+inline void HarassmentReport::clear_text() {
+ if (text_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ text_->clear();
+ }
+ clear_has_text();
+}
+inline const ::std::string& HarassmentReport::text() const {
+ // @@protoc_insertion_point(field_get:bgs.protocol.report.v1.HarassmentReport.text)
+ return *text_;
+}
+inline void HarassmentReport::set_text(const ::std::string& value) {
+ set_has_text();
+ if (text_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ text_ = new ::std::string;
+ }
+ text_->assign(value);
+ // @@protoc_insertion_point(field_set:bgs.protocol.report.v1.HarassmentReport.text)
+}
+inline void HarassmentReport::set_text(const char* value) {
+ set_has_text();
+ if (text_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ text_ = new ::std::string;
+ }
+ text_->assign(value);
+ // @@protoc_insertion_point(field_set_char:bgs.protocol.report.v1.HarassmentReport.text)
+}
+inline void HarassmentReport::set_text(const char* value, size_t size) {
+ set_has_text();
+ if (text_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ text_ = new ::std::string;
+ }
+ text_->assign(reinterpret_cast<const char*>(value), size);
+ // @@protoc_insertion_point(field_set_pointer:bgs.protocol.report.v1.HarassmentReport.text)
+}
+inline ::std::string* HarassmentReport::mutable_text() {
+ set_has_text();
+ if (text_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ text_ = new ::std::string;
+ }
+ // @@protoc_insertion_point(field_mutable:bgs.protocol.report.v1.HarassmentReport.text)
+ return text_;
+}
+inline ::std::string* HarassmentReport::release_text() {
+ clear_has_text();
+ if (text_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ return NULL;
+ } else {
+ ::std::string* temp = text_;
+ text_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ return temp;
+ }
+}
+inline void HarassmentReport::set_allocated_text(::std::string* text) {
+ if (text_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ delete text_;
+ }
+ if (text) {
+ set_has_text();
+ text_ = text;
+ } else {
+ clear_has_text();
+ text_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ }
+ // @@protoc_insertion_point(field_set_allocated:bgs.protocol.report.v1.HarassmentReport.text)
+}
+
+// -------------------------------------------------------------------
+
+// RealLifeThreatReport
+
+// optional .bgs.protocol.account.v1.GameAccountHandle target = 1;
+inline bool RealLifeThreatReport::has_target() const {
+ return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void RealLifeThreatReport::set_has_target() {
+ _has_bits_[0] |= 0x00000001u;
+}
+inline void RealLifeThreatReport::clear_has_target() {
+ _has_bits_[0] &= ~0x00000001u;
+}
+inline void RealLifeThreatReport::clear_target() {
+ if (target_ != NULL) target_->::bgs::protocol::account::v1::GameAccountHandle::Clear();
+ clear_has_target();
+}
+inline const ::bgs::protocol::account::v1::GameAccountHandle& RealLifeThreatReport::target() const {
+ // @@protoc_insertion_point(field_get:bgs.protocol.report.v1.RealLifeThreatReport.target)
+ return target_ != NULL ? *target_ : *default_instance_->target_;
+}
+inline ::bgs::protocol::account::v1::GameAccountHandle* RealLifeThreatReport::mutable_target() {
+ set_has_target();
+ if (target_ == NULL) target_ = new ::bgs::protocol::account::v1::GameAccountHandle;
+ // @@protoc_insertion_point(field_mutable:bgs.protocol.report.v1.RealLifeThreatReport.target)
+ return target_;
+}
+inline ::bgs::protocol::account::v1::GameAccountHandle* RealLifeThreatReport::release_target() {
+ clear_has_target();
+ ::bgs::protocol::account::v1::GameAccountHandle* temp = target_;
+ target_ = NULL;
+ return temp;
+}
+inline void RealLifeThreatReport::set_allocated_target(::bgs::protocol::account::v1::GameAccountHandle* target) {
+ delete target_;
+ target_ = target;
+ if (target) {
+ set_has_target();
+ } else {
+ clear_has_target();
+ }
+ // @@protoc_insertion_point(field_set_allocated:bgs.protocol.report.v1.RealLifeThreatReport.target)
+}
+
+// optional string text = 2;
+inline bool RealLifeThreatReport::has_text() const {
+ return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void RealLifeThreatReport::set_has_text() {
+ _has_bits_[0] |= 0x00000002u;
+}
+inline void RealLifeThreatReport::clear_has_text() {
+ _has_bits_[0] &= ~0x00000002u;
+}
+inline void RealLifeThreatReport::clear_text() {
+ if (text_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ text_->clear();
+ }
+ clear_has_text();
+}
+inline const ::std::string& RealLifeThreatReport::text() const {
+ // @@protoc_insertion_point(field_get:bgs.protocol.report.v1.RealLifeThreatReport.text)
+ return *text_;
+}
+inline void RealLifeThreatReport::set_text(const ::std::string& value) {
+ set_has_text();
+ if (text_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ text_ = new ::std::string;
+ }
+ text_->assign(value);
+ // @@protoc_insertion_point(field_set:bgs.protocol.report.v1.RealLifeThreatReport.text)
+}
+inline void RealLifeThreatReport::set_text(const char* value) {
+ set_has_text();
+ if (text_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ text_ = new ::std::string;
+ }
+ text_->assign(value);
+ // @@protoc_insertion_point(field_set_char:bgs.protocol.report.v1.RealLifeThreatReport.text)
+}
+inline void RealLifeThreatReport::set_text(const char* value, size_t size) {
+ set_has_text();
+ if (text_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ text_ = new ::std::string;
+ }
+ text_->assign(reinterpret_cast<const char*>(value), size);
+ // @@protoc_insertion_point(field_set_pointer:bgs.protocol.report.v1.RealLifeThreatReport.text)
+}
+inline ::std::string* RealLifeThreatReport::mutable_text() {
+ set_has_text();
+ if (text_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ text_ = new ::std::string;
+ }
+ // @@protoc_insertion_point(field_mutable:bgs.protocol.report.v1.RealLifeThreatReport.text)
+ return text_;
+}
+inline ::std::string* RealLifeThreatReport::release_text() {
+ clear_has_text();
+ if (text_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ return NULL;
+ } else {
+ ::std::string* temp = text_;
+ text_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ return temp;
+ }
+}
+inline void RealLifeThreatReport::set_allocated_text(::std::string* text) {
+ if (text_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ delete text_;
+ }
+ if (text) {
+ set_has_text();
+ text_ = text;
+ } else {
+ clear_has_text();
+ text_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ }
+ // @@protoc_insertion_point(field_set_allocated:bgs.protocol.report.v1.RealLifeThreatReport.text)
+}
+
+// -------------------------------------------------------------------
+
+// InappropriateBattleTagReport
+
+// optional .bgs.protocol.account.v1.GameAccountHandle target = 1;
+inline bool InappropriateBattleTagReport::has_target() const {
+ return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void InappropriateBattleTagReport::set_has_target() {
+ _has_bits_[0] |= 0x00000001u;
+}
+inline void InappropriateBattleTagReport::clear_has_target() {
+ _has_bits_[0] &= ~0x00000001u;
+}
+inline void InappropriateBattleTagReport::clear_target() {
+ if (target_ != NULL) target_->::bgs::protocol::account::v1::GameAccountHandle::Clear();
+ clear_has_target();
+}
+inline const ::bgs::protocol::account::v1::GameAccountHandle& InappropriateBattleTagReport::target() const {
+ // @@protoc_insertion_point(field_get:bgs.protocol.report.v1.InappropriateBattleTagReport.target)
+ return target_ != NULL ? *target_ : *default_instance_->target_;
+}
+inline ::bgs::protocol::account::v1::GameAccountHandle* InappropriateBattleTagReport::mutable_target() {
+ set_has_target();
+ if (target_ == NULL) target_ = new ::bgs::protocol::account::v1::GameAccountHandle;
+ // @@protoc_insertion_point(field_mutable:bgs.protocol.report.v1.InappropriateBattleTagReport.target)
+ return target_;
+}
+inline ::bgs::protocol::account::v1::GameAccountHandle* InappropriateBattleTagReport::release_target() {
+ clear_has_target();
+ ::bgs::protocol::account::v1::GameAccountHandle* temp = target_;
+ target_ = NULL;
+ return temp;
+}
+inline void InappropriateBattleTagReport::set_allocated_target(::bgs::protocol::account::v1::GameAccountHandle* target) {
+ delete target_;
+ target_ = target;
+ if (target) {
+ set_has_target();
+ } else {
+ clear_has_target();
+ }
+ // @@protoc_insertion_point(field_set_allocated:bgs.protocol.report.v1.InappropriateBattleTagReport.target)
+}
+
+// optional string battle_tag = 2;
+inline bool InappropriateBattleTagReport::has_battle_tag() const {
+ return (_has_bits_[0] & 0x00000002u) != 0;
+}
+inline void InappropriateBattleTagReport::set_has_battle_tag() {
+ _has_bits_[0] |= 0x00000002u;
+}
+inline void InappropriateBattleTagReport::clear_has_battle_tag() {
+ _has_bits_[0] &= ~0x00000002u;
+}
+inline void InappropriateBattleTagReport::clear_battle_tag() {
+ if (battle_tag_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ battle_tag_->clear();
+ }
+ clear_has_battle_tag();
+}
+inline const ::std::string& InappropriateBattleTagReport::battle_tag() const {
+ // @@protoc_insertion_point(field_get:bgs.protocol.report.v1.InappropriateBattleTagReport.battle_tag)
+ return *battle_tag_;
+}
+inline void InappropriateBattleTagReport::set_battle_tag(const ::std::string& value) {
+ set_has_battle_tag();
+ if (battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ battle_tag_ = new ::std::string;
+ }
+ battle_tag_->assign(value);
+ // @@protoc_insertion_point(field_set:bgs.protocol.report.v1.InappropriateBattleTagReport.battle_tag)
+}
+inline void InappropriateBattleTagReport::set_battle_tag(const char* value) {
+ set_has_battle_tag();
+ if (battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ battle_tag_ = new ::std::string;
+ }
+ battle_tag_->assign(value);
+ // @@protoc_insertion_point(field_set_char:bgs.protocol.report.v1.InappropriateBattleTagReport.battle_tag)
+}
+inline void InappropriateBattleTagReport::set_battle_tag(const char* value, size_t size) {
+ set_has_battle_tag();
+ if (battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ battle_tag_ = new ::std::string;
+ }
+ battle_tag_->assign(reinterpret_cast<const char*>(value), size);
+ // @@protoc_insertion_point(field_set_pointer:bgs.protocol.report.v1.InappropriateBattleTagReport.battle_tag)
+}
+inline ::std::string* InappropriateBattleTagReport::mutable_battle_tag() {
+ set_has_battle_tag();
+ if (battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ battle_tag_ = new ::std::string;
+ }
+ // @@protoc_insertion_point(field_mutable:bgs.protocol.report.v1.InappropriateBattleTagReport.battle_tag)
+ return battle_tag_;
+}
+inline ::std::string* InappropriateBattleTagReport::release_battle_tag() {
+ clear_has_battle_tag();
+ if (battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ return NULL;
+ } else {
+ ::std::string* temp = battle_tag_;
+ battle_tag_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ return temp;
+ }
+}
+inline void InappropriateBattleTagReport::set_allocated_battle_tag(::std::string* battle_tag) {
+ if (battle_tag_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ delete battle_tag_;
+ }
+ if (battle_tag) {
+ set_has_battle_tag();
+ battle_tag_ = battle_tag;
+ } else {
+ clear_has_battle_tag();
+ battle_tag_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ }
+ // @@protoc_insertion_point(field_set_allocated:bgs.protocol.report.v1.InappropriateBattleTagReport.battle_tag)
+}
+
+// -------------------------------------------------------------------
+
+// HackingReport
+
+// optional .bgs.protocol.account.v1.GameAccountHandle target = 1;
+inline bool HackingReport::has_target() const {
+ return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void HackingReport::set_has_target() {
+ _has_bits_[0] |= 0x00000001u;
+}
+inline void HackingReport::clear_has_target() {
+ _has_bits_[0] &= ~0x00000001u;
+}
+inline void HackingReport::clear_target() {
+ if (target_ != NULL) target_->::bgs::protocol::account::v1::GameAccountHandle::Clear();
+ clear_has_target();
+}
+inline const ::bgs::protocol::account::v1::GameAccountHandle& HackingReport::target() const {
+ // @@protoc_insertion_point(field_get:bgs.protocol.report.v1.HackingReport.target)
+ return target_ != NULL ? *target_ : *default_instance_->target_;
+}
+inline ::bgs::protocol::account::v1::GameAccountHandle* HackingReport::mutable_target() {
+ set_has_target();
+ if (target_ == NULL) target_ = new ::bgs::protocol::account::v1::GameAccountHandle;
+ // @@protoc_insertion_point(field_mutable:bgs.protocol.report.v1.HackingReport.target)
+ return target_;
+}
+inline ::bgs::protocol::account::v1::GameAccountHandle* HackingReport::release_target() {
+ clear_has_target();
+ ::bgs::protocol::account::v1::GameAccountHandle* temp = target_;
+ target_ = NULL;
+ return temp;
+}
+inline void HackingReport::set_allocated_target(::bgs::protocol::account::v1::GameAccountHandle* target) {
+ delete target_;
+ target_ = target;
+ if (target) {
+ set_has_target();
+ } else {
+ clear_has_target();
+ }
+ // @@protoc_insertion_point(field_set_allocated:bgs.protocol.report.v1.HackingReport.target)
+}
+
+// -------------------------------------------------------------------
+
+// BottingReport
+
+// optional .bgs.protocol.account.v1.GameAccountHandle target = 1;
+inline bool BottingReport::has_target() const {
+ return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void BottingReport::set_has_target() {
+ _has_bits_[0] |= 0x00000001u;
+}
+inline void BottingReport::clear_has_target() {
+ _has_bits_[0] &= ~0x00000001u;
+}
+inline void BottingReport::clear_target() {
+ if (target_ != NULL) target_->::bgs::protocol::account::v1::GameAccountHandle::Clear();
+ clear_has_target();
+}
+inline const ::bgs::protocol::account::v1::GameAccountHandle& BottingReport::target() const {
+ // @@protoc_insertion_point(field_get:bgs.protocol.report.v1.BottingReport.target)
+ return target_ != NULL ? *target_ : *default_instance_->target_;
+}
+inline ::bgs::protocol::account::v1::GameAccountHandle* BottingReport::mutable_target() {
+ set_has_target();
+ if (target_ == NULL) target_ = new ::bgs::protocol::account::v1::GameAccountHandle;
+ // @@protoc_insertion_point(field_mutable:bgs.protocol.report.v1.BottingReport.target)
+ return target_;
+}
+inline ::bgs::protocol::account::v1::GameAccountHandle* BottingReport::release_target() {
+ clear_has_target();
+ ::bgs::protocol::account::v1::GameAccountHandle* temp = target_;
+ target_ = NULL;
+ return temp;
+}
+inline void BottingReport::set_allocated_target(::bgs::protocol::account::v1::GameAccountHandle* target) {
+ delete target_;
+ target_ = target;
+ if (target) {
+ set_has_target();
+ } else {
+ clear_has_target();
+ }
+ // @@protoc_insertion_point(field_set_allocated:bgs.protocol.report.v1.BottingReport.target)
+}
+
+// -------------------------------------------------------------------
+
+// Report
+
+// required string report_type = 1;
+inline bool Report::has_report_type() const {
+ return (_has_bits_[0] & 0x00000001u) != 0;
+}
+inline void Report::set_has_report_type() {
+ _has_bits_[0] |= 0x00000001u;
+}
+inline void Report::clear_has_report_type() {
+ _has_bits_[0] &= ~0x00000001u;
+}
+inline void Report::clear_report_type() {
+ if (report_type_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ report_type_->clear();
+ }
+ clear_has_report_type();
+}
+inline const ::std::string& Report::report_type() const {
+ // @@protoc_insertion_point(field_get:bgs.protocol.report.v1.Report.report_type)
+ return *report_type_;
+}
+inline void Report::set_report_type(const ::std::string& value) {
+ set_has_report_type();
+ if (report_type_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ report_type_ = new ::std::string;
+ }
+ report_type_->assign(value);
+ // @@protoc_insertion_point(field_set:bgs.protocol.report.v1.Report.report_type)
+}
+inline void Report::set_report_type(const char* value) {
+ set_has_report_type();
+ if (report_type_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ report_type_ = new ::std::string;
+ }
+ report_type_->assign(value);
+ // @@protoc_insertion_point(field_set_char:bgs.protocol.report.v1.Report.report_type)
+}
+inline void Report::set_report_type(const char* value, size_t size) {
+ set_has_report_type();
+ if (report_type_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ report_type_ = new ::std::string;
+ }
+ report_type_->assign(reinterpret_cast<const char*>(value), size);
+ // @@protoc_insertion_point(field_set_pointer:bgs.protocol.report.v1.Report.report_type)
+}
+inline ::std::string* Report::mutable_report_type() {
+ set_has_report_type();
+ if (report_type_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ report_type_ = new ::std::string;
+ }
+ // @@protoc_insertion_point(field_mutable:bgs.protocol.report.v1.Report.report_type)
+ return report_type_;
+}
+inline ::std::string* Report::release_report_type() {
+ clear_has_report_type();
+ if (report_type_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ return NULL;
+ } else {
+ ::std::string* temp = report_type_;
+ report_type_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ return temp;
+ }
+}
+inline void Report::set_allocated_report_type(::std::string* report_type) {
+ if (report_type_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
+ delete report_type_;
+ }
+ if (report_type) {
+ set_has_report_type();
+ report_type_ = report_type;
+ } else {
+ clear_has_report_type();
+ report_type_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
+ }
+ // @@protoc_insertion_point(field_set_allocated:bgs.protocol.report.v1.Report.report_type)
+}
+
+// repeated .bgs.protocol.Attribute attribute = 2;
+inline int Report::attribute_size() const {
+ return attribute_.size();
+}
+inline void Report::clear_attribute() {
+ attribute_.Clear();
+}
+inline const ::bgs::protocol::Attribute& Report::attribute(int index) const {
+ // @@protoc_insertion_point(field_get:bgs.protocol.report.v1.Report.attribute)
+ return attribute_.Get(index);
+}
+inline ::bgs::protocol::Attribute* Report::mutable_attribute(int index) {
+ // @@protoc_insertion_point(field_mutable:bgs.protocol.report.v1.Report.attribute)
+ return attribute_.Mutable(index);
+}
+inline ::bgs::protocol::Attribute* Report::add_attribute() {
+ // @@protoc_insertion_point(field_add:bgs.protocol.report.v1.Report.attribute)
+ return attribute_.Add();
+}
+inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::Attribute >&
+Report::attribute() const {
+ // @@protoc_insertion_point(field_list:bgs.protocol.report.v1.Report.attribute)
+ return attribute_;
+}
+inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::Attribute >*
+Report::mutable_attribute() {
+ // @@protoc_insertion_point(field_mutable_list:bgs.protocol.report.v1.Report.attribute)
+ return &attribute_;
+}
+
+// optional int32 report_qos = 3 [default = 0];
+inline bool Report::has_report_qos() const {
+ return (_has_bits_[0] & 0x00000004u) != 0;
+}
+inline void Report::set_has_report_qos() {
+ _has_bits_[0] |= 0x00000004u;
+}
+inline void Report::clear_has_report_qos() {
+ _has_bits_[0] &= ~0x00000004u;
+}
+inline void Report::clear_report_qos() {
+ report_qos_ = 0;
+ clear_has_report_qos();
+}
+inline ::google::protobuf::int32 Report::report_qos() const {
+ // @@protoc_insertion_point(field_get:bgs.protocol.report.v1.Report.report_qos)
+ return report_qos_;
+}
+inline void Report::set_report_qos(::google::protobuf::int32 value) {
+ set_has_report_qos();
+ report_qos_ = value;
+ // @@protoc_insertion_point(field_set:bgs.protocol.report.v1.Report.report_qos)
+}
+
+// optional .bgs.protocol.EntityId reporting_account = 4;
+inline bool Report::has_reporting_account() const {
+ return (_has_bits_[0] & 0x00000008u) != 0;
+}
+inline void Report::set_has_reporting_account() {
+ _has_bits_[0] |= 0x00000008u;
+}
+inline void Report::clear_has_reporting_account() {
+ _has_bits_[0] &= ~0x00000008u;
+}
+inline void Report::clear_reporting_account() {
+ if (reporting_account_ != NULL) reporting_account_->::bgs::protocol::EntityId::Clear();
+ clear_has_reporting_account();
+}
+inline const ::bgs::protocol::EntityId& Report::reporting_account() const {
+ // @@protoc_insertion_point(field_get:bgs.protocol.report.v1.Report.reporting_account)
+ return reporting_account_ != NULL ? *reporting_account_ : *default_instance_->reporting_account_;
+}
+inline ::bgs::protocol::EntityId* Report::mutable_reporting_account() {
+ set_has_reporting_account();
+ if (reporting_account_ == NULL) reporting_account_ = new ::bgs::protocol::EntityId;
+ // @@protoc_insertion_point(field_mutable:bgs.protocol.report.v1.Report.reporting_account)
+ return reporting_account_;
+}
+inline ::bgs::protocol::EntityId* Report::release_reporting_account() {
+ clear_has_reporting_account();
+ ::bgs::protocol::EntityId* temp = reporting_account_;
+ reporting_account_ = NULL;
+ return temp;
+}
+inline void Report::set_allocated_reporting_account(::bgs::protocol::EntityId* reporting_account) {
+ delete reporting_account_;
+ reporting_account_ = reporting_account;
+ if (reporting_account) {
+ set_has_reporting_account();
+ } else {
+ clear_has_reporting_account();
+ }
+ // @@protoc_insertion_point(field_set_allocated:bgs.protocol.report.v1.Report.reporting_account)
+}
+
+// optional .bgs.protocol.EntityId reporting_game_account = 5;
+inline bool Report::has_reporting_game_account() const {
+ return (_has_bits_[0] & 0x00000010u) != 0;
+}
+inline void Report::set_has_reporting_game_account() {
+ _has_bits_[0] |= 0x00000010u;
+}
+inline void Report::clear_has_reporting_game_account() {
+ _has_bits_[0] &= ~0x00000010u;
+}
+inline void Report::clear_reporting_game_account() {
+ if (reporting_game_account_ != NULL) reporting_game_account_->::bgs::protocol::EntityId::Clear();
+ clear_has_reporting_game_account();
+}
+inline const ::bgs::protocol::EntityId& Report::reporting_game_account() const {
+ // @@protoc_insertion_point(field_get:bgs.protocol.report.v1.Report.reporting_game_account)
+ return reporting_game_account_ != NULL ? *reporting_game_account_ : *default_instance_->reporting_game_account_;
+}
+inline ::bgs::protocol::EntityId* Report::mutable_reporting_game_account() {
+ set_has_reporting_game_account();
+ if (reporting_game_account_ == NULL) reporting_game_account_ = new ::bgs::protocol::EntityId;
+ // @@protoc_insertion_point(field_mutable:bgs.protocol.report.v1.Report.reporting_game_account)
+ return reporting_game_account_;
+}
+inline ::bgs::protocol::EntityId* Report::release_reporting_game_account() {
+ clear_has_reporting_game_account();
+ ::bgs::protocol::EntityId* temp = reporting_game_account_;
+ reporting_game_account_ = NULL;
+ return temp;
+}
+inline void Report::set_allocated_reporting_game_account(::bgs::protocol::EntityId* reporting_game_account) {
+ delete reporting_game_account_;
+ reporting_game_account_ = reporting_game_account;
+ if (reporting_game_account) {
+ set_has_reporting_game_account();
+ } else {
+ clear_has_reporting_game_account();
+ }
+ // @@protoc_insertion_point(field_set_allocated:bgs.protocol.report.v1.Report.reporting_game_account)
+}
+
+// optional fixed64 report_timestamp = 6;
+inline bool Report::has_report_timestamp() const {
+ return (_has_bits_[0] & 0x00000020u) != 0;
+}
+inline void Report::set_has_report_timestamp() {
+ _has_bits_[0] |= 0x00000020u;
+}
+inline void Report::clear_has_report_timestamp() {
+ _has_bits_[0] &= ~0x00000020u;
+}
+inline void Report::clear_report_timestamp() {
+ report_timestamp_ = GOOGLE_ULONGLONG(0);
+ clear_has_report_timestamp();
+}
+inline ::google::protobuf::uint64 Report::report_timestamp() const {
+ // @@protoc_insertion_point(field_get:bgs.protocol.report.v1.Report.report_timestamp)
+ return report_timestamp_;
+}
+inline void Report::set_report_timestamp(::google::protobuf::uint64 value) {
+ set_has_report_timestamp();
+ report_timestamp_ = value;
+ // @@protoc_insertion_point(field_set:bgs.protocol.report.v1.Report.report_timestamp)
+}
+
+// @@protoc_insertion_point(namespace_scope)
+
+} // namespace v1
+} // namespace report
+} // namespace protocol
+} // namespace bgs
+
+#ifndef SWIG
+namespace google {
+namespace protobuf {
+template <> struct is_proto_enum< ::bgs::protocol::report::v1::SpamReport_SpamSource> : ::google::protobuf::internal::true_type {};
+template <>
+inline const EnumDescriptor* GetEnumDescriptor< ::bgs::protocol::report::v1::SpamReport_SpamSource>() {
+ return ::bgs::protocol::report::v1::SpamReport_SpamSource_descriptor();
+}
+} // namespace google
+} // namespace protobuf
+#endif // SWIG
+
+// @@protoc_insertion_point(global_scope)
+
+#endif // PROTOBUF_report_5ftypes_2eproto__INCLUDED
diff --git a/src/server/proto/Client/report_types.proto b/src/server/proto/Client/report_types.proto
new file mode 100644
index 00000000000..fcd619f6ca7
--- /dev/null
+++ b/src/server/proto/Client/report_types.proto
@@ -0,0 +1,74 @@
+syntax = "proto2";
+
+import "account_types.proto";
+import "attribute_types.proto";
+import "entity_types.proto";
+import "rpc_types.proto";
+package bgs.protocol.report.v1;
+
+option optimize_for = CODE_SIZE;
+option cc_generic_services = false;
+
+message ReportType {
+ optional string user_description = 1;
+ oneof type {
+ .bgs.protocol.report.v1.CustomReport custom_report = 10;
+ .bgs.protocol.report.v1.SpamReport spam_report = 11;
+ .bgs.protocol.report.v1.HarassmentReport harassment_report = 12;
+ .bgs.protocol.report.v1.RealLifeThreatReport real_life_threat_report = 13;
+ .bgs.protocol.report.v1.InappropriateBattleTagReport inappropriate_battle_tag_report = 14;
+ .bgs.protocol.report.v1.HackingReport hacking_report = 15;
+ .bgs.protocol.report.v1.BottingReport botting_report = 16;
+ }
+}
+
+message CustomReport {
+ optional string type = 1;
+ optional string program_id = 2 [deprecated = true];
+ repeated .bgs.protocol.Attribute attribute = 3;
+}
+
+message SpamReport {
+ enum SpamSource {
+ OTHER = 1;
+ FRIEND_INVITATION = 2;
+ WHISPER = 3;
+ CHAT = 4;
+ }
+ optional .bgs.protocol.account.v1.GameAccountHandle target = 1;
+ optional .bgs.protocol.report.v1.SpamReport.SpamSource source = 2 [default = OTHER];
+}
+
+message HarassmentReport {
+ optional .bgs.protocol.account.v1.GameAccountHandle target = 1;
+ optional string text = 2;
+}
+
+message RealLifeThreatReport {
+ optional .bgs.protocol.account.v1.GameAccountHandle target = 1;
+ optional string text = 2;
+}
+
+message InappropriateBattleTagReport {
+ optional .bgs.protocol.account.v1.GameAccountHandle target = 1;
+ optional string battle_tag = 2;
+}
+
+message HackingReport {
+ optional .bgs.protocol.account.v1.GameAccountHandle target = 1;
+}
+
+message BottingReport {
+ optional .bgs.protocol.account.v1.GameAccountHandle target = 1;
+}
+
+message Report {
+ required string report_type = 1;
+ repeated .bgs.protocol.Attribute attribute = 2;
+ optional int32 report_qos = 3 [default = 0];
+ optional .bgs.protocol.EntityId reporting_account = 4;
+ optional .bgs.protocol.EntityId reporting_game_account = 5;
+ optional fixed64 report_timestamp = 6;
+}
+
+