// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: notification_types.proto

#ifndef PROTOBUF_notification_5ftypes_2eproto__INCLUDED
#define PROTOBUF_notification_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/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"
// @@protoc_insertion_point(includes)

namespace bgs {
namespace protocol {
namespace notification {
namespace v1 {

// Internal implementation detail -- do not call these.
void protobuf_AddDesc_notification_5ftypes_2eproto();
void protobuf_AssignDesc_notification_5ftypes_2eproto();
void protobuf_ShutdownFile_notification_5ftypes_2eproto();

class Target;
class Subscription;
class Notification;

// ===================================================================

class Target : public ::google::protobuf::Message {
 public:
  Target();
  virtual ~Target();

  Target(const Target& from);

  inline Target& operator=(const Target& 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 Target& default_instance();

  void Swap(Target* other);

  // implements Message ----------------------------------------------

  Target* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const Target& from);
  void MergeFrom(const Target& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) 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.Identity identity = 1;
  inline bool has_identity() const;
  inline void clear_identity();
  static const int kIdentityFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::Identity& identity() const;
  inline ::bgs::protocol::account::v1::Identity* mutable_identity();
  inline ::bgs::protocol::account::v1::Identity* release_identity();
  inline void set_allocated_identity(::bgs::protocol::account::v1::Identity* identity);

  // optional string type = 2;
  inline bool has_type() const;
  inline void clear_type();
  static const int kTypeFieldNumber = 2;
  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);

  // @@protoc_insertion_point(class_scope:bgs.protocol.notification.v1.Target)
 private:
  inline void set_has_identity();
  inline void clear_has_identity();
  inline void set_has_type();
  inline void clear_has_type();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::Identity* identity_;
  ::std::string* type_;
  friend void protobuf_AddDesc_notification_5ftypes_2eproto();
  friend void protobuf_AssignDesc_notification_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_notification_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static Target* default_instance_;
};
// -------------------------------------------------------------------

class Subscription : public ::google::protobuf::Message {
 public:
  Subscription();
  virtual ~Subscription();

  Subscription(const Subscription& from);

  inline Subscription& operator=(const Subscription& 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 Subscription& default_instance();

  void Swap(Subscription* other);

  // implements Message ----------------------------------------------

  Subscription* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const Subscription& from);
  void MergeFrom(const Subscription& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) 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.v1.Target target = 1;
  inline int target_size() const;
  inline void clear_target();
  static const int kTargetFieldNumber = 1;
  inline const ::bgs::protocol::notification::v1::Target& target(int index) const;
  inline ::bgs::protocol::notification::v1::Target* mutable_target(int index);
  inline ::bgs::protocol::notification::v1::Target* add_target();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::notification::v1::Target >&
      target() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::notification::v1::Target >*
      mutable_target();

  // optional .bgs.protocol.account.v1.Identity subscriber = 2;
  inline bool has_subscriber() const;
  inline void clear_subscriber();
  static const int kSubscriberFieldNumber = 2;
  inline const ::bgs::protocol::account::v1::Identity& subscriber() const;
  inline ::bgs::protocol::account::v1::Identity* mutable_subscriber();
  inline ::bgs::protocol::account::v1::Identity* release_subscriber();
  inline void set_allocated_subscriber(::bgs::protocol::account::v1::Identity* subscriber);

  // optional bool delivery_required = 3 [default = false];
  inline bool has_delivery_required() const;
  inline void clear_delivery_required();
  static const int kDeliveryRequiredFieldNumber = 3;
  inline bool delivery_required() const;
  inline void set_delivery_required(bool value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.notification.v1.Subscription)
 private:
  inline void set_has_subscriber();
  inline void clear_has_subscriber();
  inline void set_has_delivery_required();
  inline void clear_has_delivery_required();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::notification::v1::Target > target_;
  ::bgs::protocol::account::v1::Identity* subscriber_;
  bool delivery_required_;
  friend void protobuf_AddDesc_notification_5ftypes_2eproto();
  friend void protobuf_AssignDesc_notification_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_notification_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static Subscription* default_instance_;
};
// -------------------------------------------------------------------

class Notification : public ::google::protobuf::Message {
 public:
  Notification();
  virtual ~Notification();

  Notification(const Notification& from);

  inline Notification& operator=(const Notification& 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 Notification& default_instance();

  void Swap(Notification* other);

  // implements Message ----------------------------------------------

  Notification* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const Notification& from);
  void MergeFrom(const Notification& from);
  void Clear();
  bool IsInitialized() const;

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) 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.EntityId sender_id = 1;
  inline bool has_sender_id() const;
  inline void clear_sender_id();
  static const int kSenderIdFieldNumber = 1;
  inline const ::bgs::protocol::EntityId& sender_id() const;
  inline ::bgs::protocol::EntityId* mutable_sender_id();
  inline ::bgs::protocol::EntityId* release_sender_id();
  inline void set_allocated_sender_id(::bgs::protocol::EntityId* sender_id);

  // required .bgs.protocol.EntityId target_id = 2;
  inline bool has_target_id() const;
  inline void clear_target_id();
  static const int kTargetIdFieldNumber = 2;
  inline const ::bgs::protocol::EntityId& target_id() const;
  inline ::bgs::protocol::EntityId* mutable_target_id();
  inline ::bgs::protocol::EntityId* release_target_id();
  inline void set_allocated_target_id(::bgs::protocol::EntityId* target_id);

  // required string type = 3;
  inline bool has_type() const;
  inline void clear_type();
  static const int kTypeFieldNumber = 3;
  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);

  // repeated .bgs.protocol.Attribute attribute = 4;
  inline int attribute_size() const;
  inline void clear_attribute();
  static const int kAttributeFieldNumber = 4;
  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 .bgs.protocol.EntityId sender_account_id = 5;
  inline bool has_sender_account_id() const;
  inline void clear_sender_account_id();
  static const int kSenderAccountIdFieldNumber = 5;
  inline const ::bgs::protocol::EntityId& sender_account_id() const;
  inline ::bgs::protocol::EntityId* mutable_sender_account_id();
  inline ::bgs::protocol::EntityId* release_sender_account_id();
  inline void set_allocated_sender_account_id(::bgs::protocol::EntityId* sender_account_id);

  // optional .bgs.protocol.EntityId target_account_id = 6;
  inline bool has_target_account_id() const;
  inline void clear_target_account_id();
  static const int kTargetAccountIdFieldNumber = 6;
  inline const ::bgs::protocol::EntityId& target_account_id() const;
  inline ::bgs::protocol::EntityId* mutable_target_account_id();
  inline ::bgs::protocol::EntityId* release_target_account_id();
  inline void set_allocated_target_account_id(::bgs::protocol::EntityId* target_account_id);

  // optional string sender_battle_tag = 7;
  inline bool has_sender_battle_tag() const;
  inline void clear_sender_battle_tag();
  static const int kSenderBattleTagFieldNumber = 7;
  inline const ::std::string& sender_battle_tag() const;
  inline void set_sender_battle_tag(const ::std::string& value);
  inline void set_sender_battle_tag(const char* value);
  inline void set_sender_battle_tag(const char* value, size_t size);
  inline ::std::string* mutable_sender_battle_tag();
  inline ::std::string* release_sender_battle_tag();
  inline void set_allocated_sender_battle_tag(::std::string* sender_battle_tag);

  // optional string target_battle_tag = 8;
  inline bool has_target_battle_tag() const;
  inline void clear_target_battle_tag();
  static const int kTargetBattleTagFieldNumber = 8;
  inline const ::std::string& target_battle_tag() const;
  inline void set_target_battle_tag(const ::std::string& value);
  inline void set_target_battle_tag(const char* value);
  inline void set_target_battle_tag(const char* value, size_t size);
  inline ::std::string* mutable_target_battle_tag();
  inline ::std::string* release_target_battle_tag();
  inline void set_allocated_target_battle_tag(::std::string* target_battle_tag);

  // optional .bgs.protocol.ProcessId peer = 9;
  inline bool has_peer() const;
  inline void clear_peer();
  static const int kPeerFieldNumber = 9;
  inline const ::bgs::protocol::ProcessId& peer() const;
  inline ::bgs::protocol::ProcessId* mutable_peer();
  inline ::bgs::protocol::ProcessId* release_peer();
  inline void set_allocated_peer(::bgs::protocol::ProcessId* peer);

  // optional .bgs.protocol.account.v1.Identity forwarding_identity = 10;
  inline bool has_forwarding_identity() const;
  inline void clear_forwarding_identity();
  static const int kForwardingIdentityFieldNumber = 10;
  inline const ::bgs::protocol::account::v1::Identity& forwarding_identity() const;
  inline ::bgs::protocol::account::v1::Identity* mutable_forwarding_identity();
  inline ::bgs::protocol::account::v1::Identity* release_forwarding_identity();
  inline void set_allocated_forwarding_identity(::bgs::protocol::account::v1::Identity* forwarding_identity);

  // @@protoc_insertion_point(class_scope:bgs.protocol.notification.v1.Notification)
 private:
  inline void set_has_sender_id();
  inline void clear_has_sender_id();
  inline void set_has_target_id();
  inline void clear_has_target_id();
  inline void set_has_type();
  inline void clear_has_type();
  inline void set_has_sender_account_id();
  inline void clear_has_sender_account_id();
  inline void set_has_target_account_id();
  inline void clear_has_target_account_id();
  inline void set_has_sender_battle_tag();
  inline void clear_has_sender_battle_tag();
  inline void set_has_target_battle_tag();
  inline void clear_has_target_battle_tag();
  inline void set_has_peer();
  inline void clear_has_peer();
  inline void set_has_forwarding_identity();
  inline void clear_has_forwarding_identity();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::EntityId* sender_id_;
  ::bgs::protocol::EntityId* target_id_;
  ::std::string* type_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::Attribute > attribute_;
  ::bgs::protocol::EntityId* sender_account_id_;
  ::bgs::protocol::EntityId* target_account_id_;
  ::std::string* sender_battle_tag_;
  ::std::string* target_battle_tag_;
  ::bgs::protocol::ProcessId* peer_;
  ::bgs::protocol::account::v1::Identity* forwarding_identity_;
  friend void protobuf_AddDesc_notification_5ftypes_2eproto();
  friend void protobuf_AssignDesc_notification_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_notification_5ftypes_2eproto();

  void InitAsDefaultInstance();
  static Notification* default_instance_;
};
// ===================================================================


// ===================================================================


// ===================================================================

// Target

// optional .bgs.protocol.account.v1.Identity identity = 1;
inline bool Target::has_identity() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void Target::set_has_identity() {
  _has_bits_[0] |= 0x00000001u;
}
inline void Target::clear_has_identity() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void Target::clear_identity() {
  if (identity_ != NULL) identity_->::bgs::protocol::account::v1::Identity::Clear();
  clear_has_identity();
}
inline const ::bgs::protocol::account::v1::Identity& Target::identity() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.notification.v1.Target.identity)
  return identity_ != NULL ? *identity_ : *default_instance_->identity_;
}
inline ::bgs::protocol::account::v1::Identity* Target::mutable_identity() {
  set_has_identity();
  if (identity_ == NULL) identity_ = new ::bgs::protocol::account::v1::Identity;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.notification.v1.Target.identity)
  return identity_;
}
inline ::bgs::protocol::account::v1::Identity* Target::release_identity() {
  clear_has_identity();
  ::bgs::protocol::account::v1::Identity* temp = identity_;
  identity_ = NULL;
  return temp;
}
inline void Target::set_allocated_identity(::bgs::protocol::account::v1::Identity* identity) {
  delete identity_;
  identity_ = identity;
  if (identity) {
    set_has_identity();
  } else {
    clear_has_identity();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.notification.v1.Target.identity)
}

// optional string type = 2;
inline bool Target::has_type() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void Target::set_has_type() {
  _has_bits_[0] |= 0x00000002u;
}
inline void Target::clear_has_type() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void Target::clear_type() {
  if (type_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    type_->clear();
  }
  clear_has_type();
}
inline const ::std::string& Target::type() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.notification.v1.Target.type)
  return *type_;
}
inline void Target::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.notification.v1.Target.type)
}
inline void Target::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.notification.v1.Target.type)
}
inline void Target::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.notification.v1.Target.type)
}
inline ::std::string* Target::mutable_type() {
  set_has_type();
  if (type_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    type_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.notification.v1.Target.type)
  return type_;
}
inline ::std::string* Target::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 Target::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.notification.v1.Target.type)
}

// -------------------------------------------------------------------

// Subscription

// repeated .bgs.protocol.notification.v1.Target target = 1;
inline int Subscription::target_size() const {
  return target_.size();
}
inline void Subscription::clear_target() {
  target_.Clear();
}
inline const ::bgs::protocol::notification::v1::Target& Subscription::target(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.notification.v1.Subscription.target)
  return target_.Get(index);
}
inline ::bgs::protocol::notification::v1::Target* Subscription::mutable_target(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.notification.v1.Subscription.target)
  return target_.Mutable(index);
}
inline ::bgs::protocol::notification::v1::Target* Subscription::add_target() {
  // @@protoc_insertion_point(field_add:bgs.protocol.notification.v1.Subscription.target)
  return target_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::notification::v1::Target >&
Subscription::target() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.notification.v1.Subscription.target)
  return target_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::notification::v1::Target >*
Subscription::mutable_target() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.notification.v1.Subscription.target)
  return &target_;
}

// optional .bgs.protocol.account.v1.Identity subscriber = 2;
inline bool Subscription::has_subscriber() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void Subscription::set_has_subscriber() {
  _has_bits_[0] |= 0x00000002u;
}
inline void Subscription::clear_has_subscriber() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void Subscription::clear_subscriber() {
  if (subscriber_ != NULL) subscriber_->::bgs::protocol::account::v1::Identity::Clear();
  clear_has_subscriber();
}
inline const ::bgs::protocol::account::v1::Identity& Subscription::subscriber() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.notification.v1.Subscription.subscriber)
  return subscriber_ != NULL ? *subscriber_ : *default_instance_->subscriber_;
}
inline ::bgs::protocol::account::v1::Identity* Subscription::mutable_subscriber() {
  set_has_subscriber();
  if (subscriber_ == NULL) subscriber_ = new ::bgs::protocol::account::v1::Identity;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.notification.v1.Subscription.subscriber)
  return subscriber_;
}
inline ::bgs::protocol::account::v1::Identity* Subscription::release_subscriber() {
  clear_has_subscriber();
  ::bgs::protocol::account::v1::Identity* temp = subscriber_;
  subscriber_ = NULL;
  return temp;
}
inline void Subscription::set_allocated_subscriber(::bgs::protocol::account::v1::Identity* subscriber) {
  delete subscriber_;
  subscriber_ = subscriber;
  if (subscriber) {
    set_has_subscriber();
  } else {
    clear_has_subscriber();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.notification.v1.Subscription.subscriber)
}

// optional bool delivery_required = 3 [default = false];
inline bool Subscription::has_delivery_required() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void Subscription::set_has_delivery_required() {
  _has_bits_[0] |= 0x00000004u;
}
inline void Subscription::clear_has_delivery_required() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void Subscription::clear_delivery_required() {
  delivery_required_ = false;
  clear_has_delivery_required();
}
inline bool Subscription::delivery_required() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.notification.v1.Subscription.delivery_required)
  return delivery_required_;
}
inline void Subscription::set_delivery_required(bool value) {
  set_has_delivery_required();
  delivery_required_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.notification.v1.Subscription.delivery_required)
}

// -------------------------------------------------------------------

// Notification

// optional .bgs.protocol.EntityId sender_id = 1;
inline bool Notification::has_sender_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void Notification::set_has_sender_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void Notification::clear_has_sender_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void Notification::clear_sender_id() {
  if (sender_id_ != NULL) sender_id_->::bgs::protocol::EntityId::Clear();
  clear_has_sender_id();
}
inline const ::bgs::protocol::EntityId& Notification::sender_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.notification.v1.Notification.sender_id)
  return sender_id_ != NULL ? *sender_id_ : *default_instance_->sender_id_;
}
inline ::bgs::protocol::EntityId* Notification::mutable_sender_id() {
  set_has_sender_id();
  if (sender_id_ == NULL) sender_id_ = new ::bgs::protocol::EntityId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.notification.v1.Notification.sender_id)
  return sender_id_;
}
inline ::bgs::protocol::EntityId* Notification::release_sender_id() {
  clear_has_sender_id();
  ::bgs::protocol::EntityId* temp = sender_id_;
  sender_id_ = NULL;
  return temp;
}
inline void Notification::set_allocated_sender_id(::bgs::protocol::EntityId* sender_id) {
  delete sender_id_;
  sender_id_ = sender_id;
  if (sender_id) {
    set_has_sender_id();
  } else {
    clear_has_sender_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.notification.v1.Notification.sender_id)
}

// required .bgs.protocol.EntityId target_id = 2;
inline bool Notification::has_target_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void Notification::set_has_target_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void Notification::clear_has_target_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void Notification::clear_target_id() {
  if (target_id_ != NULL) target_id_->::bgs::protocol::EntityId::Clear();
  clear_has_target_id();
}
inline const ::bgs::protocol::EntityId& Notification::target_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.notification.v1.Notification.target_id)
  return target_id_ != NULL ? *target_id_ : *default_instance_->target_id_;
}
inline ::bgs::protocol::EntityId* Notification::mutable_target_id() {
  set_has_target_id();
  if (target_id_ == NULL) target_id_ = new ::bgs::protocol::EntityId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.notification.v1.Notification.target_id)
  return target_id_;
}
inline ::bgs::protocol::EntityId* Notification::release_target_id() {
  clear_has_target_id();
  ::bgs::protocol::EntityId* temp = target_id_;
  target_id_ = NULL;
  return temp;
}
inline void Notification::set_allocated_target_id(::bgs::protocol::EntityId* target_id) {
  delete target_id_;
  target_id_ = target_id;
  if (target_id) {
    set_has_target_id();
  } else {
    clear_has_target_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.notification.v1.Notification.target_id)
}

// required string type = 3;
inline bool Notification::has_type() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void Notification::set_has_type() {
  _has_bits_[0] |= 0x00000004u;
}
inline void Notification::clear_has_type() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void Notification::clear_type() {
  if (type_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    type_->clear();
  }
  clear_has_type();
}
inline const ::std::string& Notification::type() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.notification.v1.Notification.type)
  return *type_;
}
inline void Notification::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.notification.v1.Notification.type)
}
inline void Notification::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.notification.v1.Notification.type)
}
inline void Notification::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.notification.v1.Notification.type)
}
inline ::std::string* Notification::mutable_type() {
  set_has_type();
  if (type_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    type_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.notification.v1.Notification.type)
  return type_;
}
inline ::std::string* Notification::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 Notification::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.notification.v1.Notification.type)
}

// repeated .bgs.protocol.Attribute attribute = 4;
inline int Notification::attribute_size() const {
  return attribute_.size();
}
inline void Notification::clear_attribute() {
  attribute_.Clear();
}
inline const ::bgs::protocol::Attribute& Notification::attribute(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.notification.v1.Notification.attribute)
  return attribute_.Get(index);
}
inline ::bgs::protocol::Attribute* Notification::mutable_attribute(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.notification.v1.Notification.attribute)
  return attribute_.Mutable(index);
}
inline ::bgs::protocol::Attribute* Notification::add_attribute() {
  // @@protoc_insertion_point(field_add:bgs.protocol.notification.v1.Notification.attribute)
  return attribute_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::Attribute >&
Notification::attribute() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.notification.v1.Notification.attribute)
  return attribute_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::Attribute >*
Notification::mutable_attribute() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.notification.v1.Notification.attribute)
  return &attribute_;
}

// optional .bgs.protocol.EntityId sender_account_id = 5;
inline bool Notification::has_sender_account_id() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void Notification::set_has_sender_account_id() {
  _has_bits_[0] |= 0x00000010u;
}
inline void Notification::clear_has_sender_account_id() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void Notification::clear_sender_account_id() {
  if (sender_account_id_ != NULL) sender_account_id_->::bgs::protocol::EntityId::Clear();
  clear_has_sender_account_id();
}
inline const ::bgs::protocol::EntityId& Notification::sender_account_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.notification.v1.Notification.sender_account_id)
  return sender_account_id_ != NULL ? *sender_account_id_ : *default_instance_->sender_account_id_;
}
inline ::bgs::protocol::EntityId* Notification::mutable_sender_account_id() {
  set_has_sender_account_id();
  if (sender_account_id_ == NULL) sender_account_id_ = new ::bgs::protocol::EntityId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.notification.v1.Notification.sender_account_id)
  return sender_account_id_;
}
inline ::bgs::protocol::EntityId* Notification::release_sender_account_id() {
  clear_has_sender_account_id();
  ::bgs::protocol::EntityId* temp = sender_account_id_;
  sender_account_id_ = NULL;
  return temp;
}
inline void Notification::set_allocated_sender_account_id(::bgs::protocol::EntityId* sender_account_id) {
  delete sender_account_id_;
  sender_account_id_ = sender_account_id;
  if (sender_account_id) {
    set_has_sender_account_id();
  } else {
    clear_has_sender_account_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.notification.v1.Notification.sender_account_id)
}

// optional .bgs.protocol.EntityId target_account_id = 6;
inline bool Notification::has_target_account_id() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void Notification::set_has_target_account_id() {
  _has_bits_[0] |= 0x00000020u;
}
inline void Notification::clear_has_target_account_id() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void Notification::clear_target_account_id() {
  if (target_account_id_ != NULL) target_account_id_->::bgs::protocol::EntityId::Clear();
  clear_has_target_account_id();
}
inline const ::bgs::protocol::EntityId& Notification::target_account_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.notification.v1.Notification.target_account_id)
  return target_account_id_ != NULL ? *target_account_id_ : *default_instance_->target_account_id_;
}
inline ::bgs::protocol::EntityId* Notification::mutable_target_account_id() {
  set_has_target_account_id();
  if (target_account_id_ == NULL) target_account_id_ = new ::bgs::protocol::EntityId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.notification.v1.Notification.target_account_id)
  return target_account_id_;
}
inline ::bgs::protocol::EntityId* Notification::release_target_account_id() {
  clear_has_target_account_id();
  ::bgs::protocol::EntityId* temp = target_account_id_;
  target_account_id_ = NULL;
  return temp;
}
inline void Notification::set_allocated_target_account_id(::bgs::protocol::EntityId* target_account_id) {
  delete target_account_id_;
  target_account_id_ = target_account_id;
  if (target_account_id) {
    set_has_target_account_id();
  } else {
    clear_has_target_account_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.notification.v1.Notification.target_account_id)
}

// optional string sender_battle_tag = 7;
inline bool Notification::has_sender_battle_tag() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void Notification::set_has_sender_battle_tag() {
  _has_bits_[0] |= 0x00000040u;
}
inline void Notification::clear_has_sender_battle_tag() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void Notification::clear_sender_battle_tag() {
  if (sender_battle_tag_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    sender_battle_tag_->clear();
  }
  clear_has_sender_battle_tag();
}
inline const ::std::string& Notification::sender_battle_tag() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.notification.v1.Notification.sender_battle_tag)
  return *sender_battle_tag_;
}
inline void Notification::set_sender_battle_tag(const ::std::string& value) {
  set_has_sender_battle_tag();
  if (sender_battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    sender_battle_tag_ = new ::std::string;
  }
  sender_battle_tag_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.notification.v1.Notification.sender_battle_tag)
}
inline void Notification::set_sender_battle_tag(const char* value) {
  set_has_sender_battle_tag();
  if (sender_battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    sender_battle_tag_ = new ::std::string;
  }
  sender_battle_tag_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.notification.v1.Notification.sender_battle_tag)
}
inline void Notification::set_sender_battle_tag(const char* value, size_t size) {
  set_has_sender_battle_tag();
  if (sender_battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    sender_battle_tag_ = new ::std::string;
  }
  sender_battle_tag_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.notification.v1.Notification.sender_battle_tag)
}
inline ::std::string* Notification::mutable_sender_battle_tag() {
  set_has_sender_battle_tag();
  if (sender_battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    sender_battle_tag_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.notification.v1.Notification.sender_battle_tag)
  return sender_battle_tag_;
}
inline ::std::string* Notification::release_sender_battle_tag() {
  clear_has_sender_battle_tag();
  if (sender_battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = sender_battle_tag_;
    sender_battle_tag_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void Notification::set_allocated_sender_battle_tag(::std::string* sender_battle_tag) {
  if (sender_battle_tag_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete sender_battle_tag_;
  }
  if (sender_battle_tag) {
    set_has_sender_battle_tag();
    sender_battle_tag_ = sender_battle_tag;
  } else {
    clear_has_sender_battle_tag();
    sender_battle_tag_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.notification.v1.Notification.sender_battle_tag)
}

// optional string target_battle_tag = 8;
inline bool Notification::has_target_battle_tag() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void Notification::set_has_target_battle_tag() {
  _has_bits_[0] |= 0x00000080u;
}
inline void Notification::clear_has_target_battle_tag() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void Notification::clear_target_battle_tag() {
  if (target_battle_tag_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    target_battle_tag_->clear();
  }
  clear_has_target_battle_tag();
}
inline const ::std::string& Notification::target_battle_tag() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.notification.v1.Notification.target_battle_tag)
  return *target_battle_tag_;
}
inline void Notification::set_target_battle_tag(const ::std::string& value) {
  set_has_target_battle_tag();
  if (target_battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    target_battle_tag_ = new ::std::string;
  }
  target_battle_tag_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.notification.v1.Notification.target_battle_tag)
}
inline void Notification::set_target_battle_tag(const char* value) {
  set_has_target_battle_tag();
  if (target_battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    target_battle_tag_ = new ::std::string;
  }
  target_battle_tag_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.notification.v1.Notification.target_battle_tag)
}
inline void Notification::set_target_battle_tag(const char* value, size_t size) {
  set_has_target_battle_tag();
  if (target_battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    target_battle_tag_ = new ::std::string;
  }
  target_battle_tag_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.notification.v1.Notification.target_battle_tag)
}
inline ::std::string* Notification::mutable_target_battle_tag() {
  set_has_target_battle_tag();
  if (target_battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    target_battle_tag_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.notification.v1.Notification.target_battle_tag)
  return target_battle_tag_;
}
inline ::std::string* Notification::release_target_battle_tag() {
  clear_has_target_battle_tag();
  if (target_battle_tag_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = target_battle_tag_;
    target_battle_tag_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void Notification::set_allocated_target_battle_tag(::std::string* target_battle_tag) {
  if (target_battle_tag_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete target_battle_tag_;
  }
  if (target_battle_tag) {
    set_has_target_battle_tag();
    target_battle_tag_ = target_battle_tag;
  } else {
    clear_has_target_battle_tag();
    target_battle_tag_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.notification.v1.Notification.target_battle_tag)
}

// optional .bgs.protocol.ProcessId peer = 9;
inline bool Notification::has_peer() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void Notification::set_has_peer() {
  _has_bits_[0] |= 0x00000100u;
}
inline void Notification::clear_has_peer() {
  _has_bits_[0] &= ~0x00000100u;
}
inline void Notification::clear_peer() {
  if (peer_ != NULL) peer_->::bgs::protocol::ProcessId::Clear();
  clear_has_peer();
}
inline const ::bgs::protocol::ProcessId& Notification::peer() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.notification.v1.Notification.peer)
  return peer_ != NULL ? *peer_ : *default_instance_->peer_;
}
inline ::bgs::protocol::ProcessId* Notification::mutable_peer() {
  set_has_peer();
  if (peer_ == NULL) peer_ = new ::bgs::protocol::ProcessId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.notification.v1.Notification.peer)
  return peer_;
}
inline ::bgs::protocol::ProcessId* Notification::release_peer() {
  clear_has_peer();
  ::bgs::protocol::ProcessId* temp = peer_;
  peer_ = NULL;
  return temp;
}
inline void Notification::set_allocated_peer(::bgs::protocol::ProcessId* peer) {
  delete peer_;
  peer_ = peer;
  if (peer) {
    set_has_peer();
  } else {
    clear_has_peer();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.notification.v1.Notification.peer)
}

// optional .bgs.protocol.account.v1.Identity forwarding_identity = 10;
inline bool Notification::has_forwarding_identity() const {
  return (_has_bits_[0] & 0x00000200u) != 0;
}
inline void Notification::set_has_forwarding_identity() {
  _has_bits_[0] |= 0x00000200u;
}
inline void Notification::clear_has_forwarding_identity() {
  _has_bits_[0] &= ~0x00000200u;
}
inline void Notification::clear_forwarding_identity() {
  if (forwarding_identity_ != NULL) forwarding_identity_->::bgs::protocol::account::v1::Identity::Clear();
  clear_has_forwarding_identity();
}
inline const ::bgs::protocol::account::v1::Identity& Notification::forwarding_identity() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.notification.v1.Notification.forwarding_identity)
  return forwarding_identity_ != NULL ? *forwarding_identity_ : *default_instance_->forwarding_identity_;
}
inline ::bgs::protocol::account::v1::Identity* Notification::mutable_forwarding_identity() {
  set_has_forwarding_identity();
  if (forwarding_identity_ == NULL) forwarding_identity_ = new ::bgs::protocol::account::v1::Identity;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.notification.v1.Notification.forwarding_identity)
  return forwarding_identity_;
}
inline ::bgs::protocol::account::v1::Identity* Notification::release_forwarding_identity() {
  clear_has_forwarding_identity();
  ::bgs::protocol::account::v1::Identity* temp = forwarding_identity_;
  forwarding_identity_ = NULL;
  return temp;
}
inline void Notification::set_allocated_forwarding_identity(::bgs::protocol::account::v1::Identity* forwarding_identity) {
  delete forwarding_identity_;
  forwarding_identity_ = forwarding_identity;
  if (forwarding_identity) {
    set_has_forwarding_identity();
  } else {
    clear_has_forwarding_identity();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.notification.v1.Notification.forwarding_identity)
}


// @@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_5ftypes_2eproto__INCLUDED
