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

#ifndef PROTOBUF_presence_5ftypes_2eproto__INCLUDED
#define PROTOBUF_presence_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 "attribute_types.pb.h"
#include "entity_types.pb.h"
#include "channel_types.pb.h"
#include "Define.h" // for TC_PROTO_API
// @@protoc_insertion_point(includes)

namespace bgs {
namespace protocol {
namespace presence {
namespace v1 {

// Internal implementation detail -- do not call these.
void TC_PROTO_API protobuf_AddDesc_presence_5ftypes_2eproto();
void protobuf_AssignDesc_presence_5ftypes_2eproto();
void protobuf_ShutdownFile_presence_5ftypes_2eproto();

class RichPresenceLocalizationKey;
class FieldKey;
class Field;
class FieldOperation;
class PresenceState;
class ChannelState;

enum FieldOperation_OperationType {
  FieldOperation_OperationType_SET = 0,
  FieldOperation_OperationType_CLEAR = 1
};
TC_PROTO_API bool FieldOperation_OperationType_IsValid(int value);
const FieldOperation_OperationType FieldOperation_OperationType_OperationType_MIN = FieldOperation_OperationType_SET;
const FieldOperation_OperationType FieldOperation_OperationType_OperationType_MAX = FieldOperation_OperationType_CLEAR;
const int FieldOperation_OperationType_OperationType_ARRAYSIZE = FieldOperation_OperationType_OperationType_MAX + 1;

TC_PROTO_API const ::google::protobuf::EnumDescriptor* FieldOperation_OperationType_descriptor();
inline const ::std::string& FieldOperation_OperationType_Name(FieldOperation_OperationType value) {
  return ::google::protobuf::internal::NameOfEnum(
    FieldOperation_OperationType_descriptor(), value);
}
inline bool FieldOperation_OperationType_Parse(
    const ::std::string& name, FieldOperation_OperationType* value) {
  return ::google::protobuf::internal::ParseNamedEnum<FieldOperation_OperationType>(
    FieldOperation_OperationType_descriptor(), name, value);
}
// ===================================================================

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

  RichPresenceLocalizationKey(const RichPresenceLocalizationKey& from);

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

  void Swap(RichPresenceLocalizationKey* other);

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

  RichPresenceLocalizationKey* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const RichPresenceLocalizationKey& from);
  void MergeFrom(const RichPresenceLocalizationKey& 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 -------------------------------------------------------

  // required fixed32 program = 1;
  inline bool has_program() const;
  inline void clear_program();
  static const int kProgramFieldNumber = 1;
  inline ::google::protobuf::uint32 program() const;
  inline void set_program(::google::protobuf::uint32 value);

  // required fixed32 stream = 2;
  inline bool has_stream() const;
  inline void clear_stream();
  static const int kStreamFieldNumber = 2;
  inline ::google::protobuf::uint32 stream() const;
  inline void set_stream(::google::protobuf::uint32 value);

  // required uint32 localization_id = 3;
  inline bool has_localization_id() const;
  inline void clear_localization_id();
  static const int kLocalizationIdFieldNumber = 3;
  inline ::google::protobuf::uint32 localization_id() const;
  inline void set_localization_id(::google::protobuf::uint32 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.presence.v1.RichPresenceLocalizationKey)
 private:
  inline void set_has_program();
  inline void clear_has_program();
  inline void set_has_stream();
  inline void clear_has_stream();
  inline void set_has_localization_id();
  inline void clear_has_localization_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint32 program_;
  ::google::protobuf::uint32 stream_;
  ::google::protobuf::uint32 localization_id_;
  friend void TC_PROTO_API protobuf_AddDesc_presence_5ftypes_2eproto();
  friend void protobuf_AssignDesc_presence_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_presence_5ftypes_2eproto();

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

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

  FieldKey(const FieldKey& from);

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

  void Swap(FieldKey* other);

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

  FieldKey* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const FieldKey& from);
  void MergeFrom(const FieldKey& 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 -------------------------------------------------------

  // required uint32 program = 1;
  inline bool has_program() const;
  inline void clear_program();
  static const int kProgramFieldNumber = 1;
  inline ::google::protobuf::uint32 program() const;
  inline void set_program(::google::protobuf::uint32 value);

  // required uint32 group = 2;
  inline bool has_group() const;
  inline void clear_group();
  static const int kGroupFieldNumber = 2;
  inline ::google::protobuf::uint32 group() const;
  inline void set_group(::google::protobuf::uint32 value);

  // required uint32 field = 3;
  inline bool has_field() const;
  inline void clear_field();
  static const int kFieldFieldNumber = 3;
  inline ::google::protobuf::uint32 field() const;
  inline void set_field(::google::protobuf::uint32 value);

  // optional uint64 unique_id = 4 [default = 0];
  inline bool has_unique_id() const;
  inline void clear_unique_id();
  static const int kUniqueIdFieldNumber = 4;
  inline ::google::protobuf::uint64 unique_id() const;
  inline void set_unique_id(::google::protobuf::uint64 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.presence.v1.FieldKey)
 private:
  inline void set_has_program();
  inline void clear_has_program();
  inline void set_has_group();
  inline void clear_has_group();
  inline void set_has_field();
  inline void clear_has_field();
  inline void set_has_unique_id();
  inline void clear_has_unique_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint32 program_;
  ::google::protobuf::uint32 group_;
  ::google::protobuf::uint64 unique_id_;
  ::google::protobuf::uint32 field_;
  friend void TC_PROTO_API protobuf_AddDesc_presence_5ftypes_2eproto();
  friend void protobuf_AssignDesc_presence_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_presence_5ftypes_2eproto();

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

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

  Field(const Field& from);

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

  void Swap(Field* other);

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

  Field* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const Field& from);
  void MergeFrom(const Field& 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 -------------------------------------------------------

  // required .bgs.protocol.presence.v1.FieldKey key = 1;
  inline bool has_key() const;
  inline void clear_key();
  static const int kKeyFieldNumber = 1;
  inline const ::bgs::protocol::presence::v1::FieldKey& key() const;
  inline ::bgs::protocol::presence::v1::FieldKey* mutable_key();
  inline ::bgs::protocol::presence::v1::FieldKey* release_key();
  inline void set_allocated_key(::bgs::protocol::presence::v1::FieldKey* key);

  // required .bgs.protocol.Variant value = 2;
  inline bool has_value() const;
  inline void clear_value();
  static const int kValueFieldNumber = 2;
  inline const ::bgs::protocol::Variant& value() const;
  inline ::bgs::protocol::Variant* mutable_value();
  inline ::bgs::protocol::Variant* release_value();
  inline void set_allocated_value(::bgs::protocol::Variant* value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.presence.v1.Field)
 private:
  inline void set_has_key();
  inline void clear_has_key();
  inline void set_has_value();
  inline void clear_has_value();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::presence::v1::FieldKey* key_;
  ::bgs::protocol::Variant* value_;
  friend void TC_PROTO_API protobuf_AddDesc_presence_5ftypes_2eproto();
  friend void protobuf_AssignDesc_presence_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_presence_5ftypes_2eproto();

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

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

  FieldOperation(const FieldOperation& from);

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

  void Swap(FieldOperation* other);

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

  FieldOperation* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const FieldOperation& from);
  void MergeFrom(const FieldOperation& 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 ----------------------------------------------------

  typedef FieldOperation_OperationType OperationType;
  static const OperationType SET = FieldOperation_OperationType_SET;
  static const OperationType CLEAR = FieldOperation_OperationType_CLEAR;
  static inline bool OperationType_IsValid(int value) {
    return FieldOperation_OperationType_IsValid(value);
  }
  static const OperationType OperationType_MIN =
    FieldOperation_OperationType_OperationType_MIN;
  static const OperationType OperationType_MAX =
    FieldOperation_OperationType_OperationType_MAX;
  static const int OperationType_ARRAYSIZE =
    FieldOperation_OperationType_OperationType_ARRAYSIZE;
  static inline const ::google::protobuf::EnumDescriptor*
  OperationType_descriptor() {
    return FieldOperation_OperationType_descriptor();
  }
  static inline const ::std::string& OperationType_Name(OperationType value) {
    return FieldOperation_OperationType_Name(value);
  }
  static inline bool OperationType_Parse(const ::std::string& name,
      OperationType* value) {
    return FieldOperation_OperationType_Parse(name, value);
  }

  // accessors -------------------------------------------------------

  // required .bgs.protocol.presence.v1.Field field = 1;
  inline bool has_field() const;
  inline void clear_field();
  static const int kFieldFieldNumber = 1;
  inline const ::bgs::protocol::presence::v1::Field& field() const;
  inline ::bgs::protocol::presence::v1::Field* mutable_field();
  inline ::bgs::protocol::presence::v1::Field* release_field();
  inline void set_allocated_field(::bgs::protocol::presence::v1::Field* field);

  // optional .bgs.protocol.presence.v1.FieldOperation.OperationType operation = 2 [default = SET];
  inline bool has_operation() const;
  inline void clear_operation();
  static const int kOperationFieldNumber = 2;
  inline ::bgs::protocol::presence::v1::FieldOperation_OperationType operation() const;
  inline void set_operation(::bgs::protocol::presence::v1::FieldOperation_OperationType value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.presence.v1.FieldOperation)
 private:
  inline void set_has_field();
  inline void clear_has_field();
  inline void set_has_operation();
  inline void clear_has_operation();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::presence::v1::Field* field_;
  int operation_;
  friend void TC_PROTO_API protobuf_AddDesc_presence_5ftypes_2eproto();
  friend void protobuf_AssignDesc_presence_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_presence_5ftypes_2eproto();

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

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

  PresenceState(const PresenceState& from);

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

  void Swap(PresenceState* other);

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

  PresenceState* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const PresenceState& from);
  void MergeFrom(const PresenceState& 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 entity_id = 1;
  inline bool has_entity_id() const;
  inline void clear_entity_id();
  static const int kEntityIdFieldNumber = 1;
  inline const ::bgs::protocol::EntityId& entity_id() const;
  inline ::bgs::protocol::EntityId* mutable_entity_id();
  inline ::bgs::protocol::EntityId* release_entity_id();
  inline void set_allocated_entity_id(::bgs::protocol::EntityId* entity_id);

  // repeated .bgs.protocol.presence.v1.FieldOperation field_operation = 2;
  inline int field_operation_size() const;
  inline void clear_field_operation();
  static const int kFieldOperationFieldNumber = 2;
  inline const ::bgs::protocol::presence::v1::FieldOperation& field_operation(int index) const;
  inline ::bgs::protocol::presence::v1::FieldOperation* mutable_field_operation(int index);
  inline ::bgs::protocol::presence::v1::FieldOperation* add_field_operation();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::presence::v1::FieldOperation >&
      field_operation() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::presence::v1::FieldOperation >*
      mutable_field_operation();

  // @@protoc_insertion_point(class_scope:bgs.protocol.presence.v1.PresenceState)
 private:
  inline void set_has_entity_id();
  inline void clear_has_entity_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::EntityId* entity_id_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::presence::v1::FieldOperation > field_operation_;
  friend void TC_PROTO_API protobuf_AddDesc_presence_5ftypes_2eproto();
  friend void protobuf_AssignDesc_presence_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_presence_5ftypes_2eproto();

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

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

  ChannelState(const ChannelState& from);

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

  void Swap(ChannelState* other);

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

  ChannelState* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const ChannelState& from);
  void MergeFrom(const ChannelState& 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 entity_id = 1;
  inline bool has_entity_id() const;
  inline void clear_entity_id();
  static const int kEntityIdFieldNumber = 1;
  inline const ::bgs::protocol::EntityId& entity_id() const;
  inline ::bgs::protocol::EntityId* mutable_entity_id();
  inline ::bgs::protocol::EntityId* release_entity_id();
  inline void set_allocated_entity_id(::bgs::protocol::EntityId* entity_id);

  // repeated .bgs.protocol.presence.v1.FieldOperation field_operation = 2;
  inline int field_operation_size() const;
  inline void clear_field_operation();
  static const int kFieldOperationFieldNumber = 2;
  inline const ::bgs::protocol::presence::v1::FieldOperation& field_operation(int index) const;
  inline ::bgs::protocol::presence::v1::FieldOperation* mutable_field_operation(int index);
  inline ::bgs::protocol::presence::v1::FieldOperation* add_field_operation();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::presence::v1::FieldOperation >&
      field_operation() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::presence::v1::FieldOperation >*
      mutable_field_operation();

  // optional bool healing = 3 [default = false];
  inline bool has_healing() const;
  inline void clear_healing();
  static const int kHealingFieldNumber = 3;
  inline bool healing() const;
  inline void set_healing(bool value);

  static const int kPresenceFieldNumber = 101;
  static ::google::protobuf::internal::ExtensionIdentifier< ::bgs::protocol::channel::v1::ChannelState,
      ::google::protobuf::internal::MessageTypeTraits< ::bgs::protocol::presence::v1::ChannelState >, 11, false >
    presence;
  // @@protoc_insertion_point(class_scope:bgs.protocol.presence.v1.ChannelState)
 private:
  inline void set_has_entity_id();
  inline void clear_has_entity_id();
  inline void set_has_healing();
  inline void clear_has_healing();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::EntityId* entity_id_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::presence::v1::FieldOperation > field_operation_;
  bool healing_;
  friend void TC_PROTO_API protobuf_AddDesc_presence_5ftypes_2eproto();
  friend void protobuf_AssignDesc_presence_5ftypes_2eproto();
  friend void protobuf_ShutdownFile_presence_5ftypes_2eproto();

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


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


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

// RichPresenceLocalizationKey

// required fixed32 program = 1;
inline bool RichPresenceLocalizationKey::has_program() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RichPresenceLocalizationKey::set_has_program() {
  _has_bits_[0] |= 0x00000001u;
}
inline void RichPresenceLocalizationKey::clear_has_program() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void RichPresenceLocalizationKey::clear_program() {
  program_ = 0u;
  clear_has_program();
}
inline ::google::protobuf::uint32 RichPresenceLocalizationKey::program() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.presence.v1.RichPresenceLocalizationKey.program)
  return program_;
}
inline void RichPresenceLocalizationKey::set_program(::google::protobuf::uint32 value) {
  set_has_program();
  program_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.presence.v1.RichPresenceLocalizationKey.program)
}

// required fixed32 stream = 2;
inline bool RichPresenceLocalizationKey::has_stream() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void RichPresenceLocalizationKey::set_has_stream() {
  _has_bits_[0] |= 0x00000002u;
}
inline void RichPresenceLocalizationKey::clear_has_stream() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void RichPresenceLocalizationKey::clear_stream() {
  stream_ = 0u;
  clear_has_stream();
}
inline ::google::protobuf::uint32 RichPresenceLocalizationKey::stream() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.presence.v1.RichPresenceLocalizationKey.stream)
  return stream_;
}
inline void RichPresenceLocalizationKey::set_stream(::google::protobuf::uint32 value) {
  set_has_stream();
  stream_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.presence.v1.RichPresenceLocalizationKey.stream)
}

// required uint32 localization_id = 3;
inline bool RichPresenceLocalizationKey::has_localization_id() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void RichPresenceLocalizationKey::set_has_localization_id() {
  _has_bits_[0] |= 0x00000004u;
}
inline void RichPresenceLocalizationKey::clear_has_localization_id() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void RichPresenceLocalizationKey::clear_localization_id() {
  localization_id_ = 0u;
  clear_has_localization_id();
}
inline ::google::protobuf::uint32 RichPresenceLocalizationKey::localization_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.presence.v1.RichPresenceLocalizationKey.localization_id)
  return localization_id_;
}
inline void RichPresenceLocalizationKey::set_localization_id(::google::protobuf::uint32 value) {
  set_has_localization_id();
  localization_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.presence.v1.RichPresenceLocalizationKey.localization_id)
}

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

// FieldKey

// required uint32 program = 1;
inline bool FieldKey::has_program() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void FieldKey::set_has_program() {
  _has_bits_[0] |= 0x00000001u;
}
inline void FieldKey::clear_has_program() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void FieldKey::clear_program() {
  program_ = 0u;
  clear_has_program();
}
inline ::google::protobuf::uint32 FieldKey::program() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.presence.v1.FieldKey.program)
  return program_;
}
inline void FieldKey::set_program(::google::protobuf::uint32 value) {
  set_has_program();
  program_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.presence.v1.FieldKey.program)
}

// required uint32 group = 2;
inline bool FieldKey::has_group() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void FieldKey::set_has_group() {
  _has_bits_[0] |= 0x00000002u;
}
inline void FieldKey::clear_has_group() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void FieldKey::clear_group() {
  group_ = 0u;
  clear_has_group();
}
inline ::google::protobuf::uint32 FieldKey::group() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.presence.v1.FieldKey.group)
  return group_;
}
inline void FieldKey::set_group(::google::protobuf::uint32 value) {
  set_has_group();
  group_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.presence.v1.FieldKey.group)
}

// required uint32 field = 3;
inline bool FieldKey::has_field() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void FieldKey::set_has_field() {
  _has_bits_[0] |= 0x00000004u;
}
inline void FieldKey::clear_has_field() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void FieldKey::clear_field() {
  field_ = 0u;
  clear_has_field();
}
inline ::google::protobuf::uint32 FieldKey::field() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.presence.v1.FieldKey.field)
  return field_;
}
inline void FieldKey::set_field(::google::protobuf::uint32 value) {
  set_has_field();
  field_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.presence.v1.FieldKey.field)
}

// optional uint64 unique_id = 4 [default = 0];
inline bool FieldKey::has_unique_id() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void FieldKey::set_has_unique_id() {
  _has_bits_[0] |= 0x00000008u;
}
inline void FieldKey::clear_has_unique_id() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void FieldKey::clear_unique_id() {
  unique_id_ = GOOGLE_ULONGLONG(0);
  clear_has_unique_id();
}
inline ::google::protobuf::uint64 FieldKey::unique_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.presence.v1.FieldKey.unique_id)
  return unique_id_;
}
inline void FieldKey::set_unique_id(::google::protobuf::uint64 value) {
  set_has_unique_id();
  unique_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.presence.v1.FieldKey.unique_id)
}

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

// Field

// required .bgs.protocol.presence.v1.FieldKey key = 1;
inline bool Field::has_key() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void Field::set_has_key() {
  _has_bits_[0] |= 0x00000001u;
}
inline void Field::clear_has_key() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void Field::clear_key() {
  if (key_ != NULL) key_->::bgs::protocol::presence::v1::FieldKey::Clear();
  clear_has_key();
}
inline const ::bgs::protocol::presence::v1::FieldKey& Field::key() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.presence.v1.Field.key)
  return key_ != NULL ? *key_ : *default_instance_->key_;
}
inline ::bgs::protocol::presence::v1::FieldKey* Field::mutable_key() {
  set_has_key();
  if (key_ == NULL) key_ = new ::bgs::protocol::presence::v1::FieldKey;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.presence.v1.Field.key)
  return key_;
}
inline ::bgs::protocol::presence::v1::FieldKey* Field::release_key() {
  clear_has_key();
  ::bgs::protocol::presence::v1::FieldKey* temp = key_;
  key_ = NULL;
  return temp;
}
inline void Field::set_allocated_key(::bgs::protocol::presence::v1::FieldKey* key) {
  delete key_;
  key_ = key;
  if (key) {
    set_has_key();
  } else {
    clear_has_key();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.presence.v1.Field.key)
}

// required .bgs.protocol.Variant value = 2;
inline bool Field::has_value() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void Field::set_has_value() {
  _has_bits_[0] |= 0x00000002u;
}
inline void Field::clear_has_value() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void Field::clear_value() {
  if (value_ != NULL) value_->::bgs::protocol::Variant::Clear();
  clear_has_value();
}
inline const ::bgs::protocol::Variant& Field::value() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.presence.v1.Field.value)
  return value_ != NULL ? *value_ : *default_instance_->value_;
}
inline ::bgs::protocol::Variant* Field::mutable_value() {
  set_has_value();
  if (value_ == NULL) value_ = new ::bgs::protocol::Variant;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.presence.v1.Field.value)
  return value_;
}
inline ::bgs::protocol::Variant* Field::release_value() {
  clear_has_value();
  ::bgs::protocol::Variant* temp = value_;
  value_ = NULL;
  return temp;
}
inline void Field::set_allocated_value(::bgs::protocol::Variant* value) {
  delete value_;
  value_ = value;
  if (value) {
    set_has_value();
  } else {
    clear_has_value();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.presence.v1.Field.value)
}

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

// FieldOperation

// required .bgs.protocol.presence.v1.Field field = 1;
inline bool FieldOperation::has_field() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void FieldOperation::set_has_field() {
  _has_bits_[0] |= 0x00000001u;
}
inline void FieldOperation::clear_has_field() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void FieldOperation::clear_field() {
  if (field_ != NULL) field_->::bgs::protocol::presence::v1::Field::Clear();
  clear_has_field();
}
inline const ::bgs::protocol::presence::v1::Field& FieldOperation::field() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.presence.v1.FieldOperation.field)
  return field_ != NULL ? *field_ : *default_instance_->field_;
}
inline ::bgs::protocol::presence::v1::Field* FieldOperation::mutable_field() {
  set_has_field();
  if (field_ == NULL) field_ = new ::bgs::protocol::presence::v1::Field;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.presence.v1.FieldOperation.field)
  return field_;
}
inline ::bgs::protocol::presence::v1::Field* FieldOperation::release_field() {
  clear_has_field();
  ::bgs::protocol::presence::v1::Field* temp = field_;
  field_ = NULL;
  return temp;
}
inline void FieldOperation::set_allocated_field(::bgs::protocol::presence::v1::Field* field) {
  delete field_;
  field_ = field;
  if (field) {
    set_has_field();
  } else {
    clear_has_field();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.presence.v1.FieldOperation.field)
}

// optional .bgs.protocol.presence.v1.FieldOperation.OperationType operation = 2 [default = SET];
inline bool FieldOperation::has_operation() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void FieldOperation::set_has_operation() {
  _has_bits_[0] |= 0x00000002u;
}
inline void FieldOperation::clear_has_operation() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void FieldOperation::clear_operation() {
  operation_ = 0;
  clear_has_operation();
}
inline ::bgs::protocol::presence::v1::FieldOperation_OperationType FieldOperation::operation() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.presence.v1.FieldOperation.operation)
  return static_cast< ::bgs::protocol::presence::v1::FieldOperation_OperationType >(operation_);
}
inline void FieldOperation::set_operation(::bgs::protocol::presence::v1::FieldOperation_OperationType value) {
  assert(::bgs::protocol::presence::v1::FieldOperation_OperationType_IsValid(value));
  set_has_operation();
  operation_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.presence.v1.FieldOperation.operation)
}

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

// PresenceState

// optional .bgs.protocol.EntityId entity_id = 1;
inline bool PresenceState::has_entity_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PresenceState::set_has_entity_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void PresenceState::clear_has_entity_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void PresenceState::clear_entity_id() {
  if (entity_id_ != NULL) entity_id_->::bgs::protocol::EntityId::Clear();
  clear_has_entity_id();
}
inline const ::bgs::protocol::EntityId& PresenceState::entity_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.presence.v1.PresenceState.entity_id)
  return entity_id_ != NULL ? *entity_id_ : *default_instance_->entity_id_;
}
inline ::bgs::protocol::EntityId* PresenceState::mutable_entity_id() {
  set_has_entity_id();
  if (entity_id_ == NULL) entity_id_ = new ::bgs::protocol::EntityId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.presence.v1.PresenceState.entity_id)
  return entity_id_;
}
inline ::bgs::protocol::EntityId* PresenceState::release_entity_id() {
  clear_has_entity_id();
  ::bgs::protocol::EntityId* temp = entity_id_;
  entity_id_ = NULL;
  return temp;
}
inline void PresenceState::set_allocated_entity_id(::bgs::protocol::EntityId* entity_id) {
  delete entity_id_;
  entity_id_ = entity_id;
  if (entity_id) {
    set_has_entity_id();
  } else {
    clear_has_entity_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.presence.v1.PresenceState.entity_id)
}

// repeated .bgs.protocol.presence.v1.FieldOperation field_operation = 2;
inline int PresenceState::field_operation_size() const {
  return field_operation_.size();
}
inline void PresenceState::clear_field_operation() {
  field_operation_.Clear();
}
inline const ::bgs::protocol::presence::v1::FieldOperation& PresenceState::field_operation(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.presence.v1.PresenceState.field_operation)
  return field_operation_.Get(index);
}
inline ::bgs::protocol::presence::v1::FieldOperation* PresenceState::mutable_field_operation(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.presence.v1.PresenceState.field_operation)
  return field_operation_.Mutable(index);
}
inline ::bgs::protocol::presence::v1::FieldOperation* PresenceState::add_field_operation() {
  // @@protoc_insertion_point(field_add:bgs.protocol.presence.v1.PresenceState.field_operation)
  return field_operation_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::presence::v1::FieldOperation >&
PresenceState::field_operation() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.presence.v1.PresenceState.field_operation)
  return field_operation_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::presence::v1::FieldOperation >*
PresenceState::mutable_field_operation() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.presence.v1.PresenceState.field_operation)
  return &field_operation_;
}

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

// ChannelState

// optional .bgs.protocol.EntityId entity_id = 1;
inline bool ChannelState::has_entity_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void ChannelState::set_has_entity_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void ChannelState::clear_has_entity_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void ChannelState::clear_entity_id() {
  if (entity_id_ != NULL) entity_id_->::bgs::protocol::EntityId::Clear();
  clear_has_entity_id();
}
inline const ::bgs::protocol::EntityId& ChannelState::entity_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.presence.v1.ChannelState.entity_id)
  return entity_id_ != NULL ? *entity_id_ : *default_instance_->entity_id_;
}
inline ::bgs::protocol::EntityId* ChannelState::mutable_entity_id() {
  set_has_entity_id();
  if (entity_id_ == NULL) entity_id_ = new ::bgs::protocol::EntityId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.presence.v1.ChannelState.entity_id)
  return entity_id_;
}
inline ::bgs::protocol::EntityId* ChannelState::release_entity_id() {
  clear_has_entity_id();
  ::bgs::protocol::EntityId* temp = entity_id_;
  entity_id_ = NULL;
  return temp;
}
inline void ChannelState::set_allocated_entity_id(::bgs::protocol::EntityId* entity_id) {
  delete entity_id_;
  entity_id_ = entity_id;
  if (entity_id) {
    set_has_entity_id();
  } else {
    clear_has_entity_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.presence.v1.ChannelState.entity_id)
}

// repeated .bgs.protocol.presence.v1.FieldOperation field_operation = 2;
inline int ChannelState::field_operation_size() const {
  return field_operation_.size();
}
inline void ChannelState::clear_field_operation() {
  field_operation_.Clear();
}
inline const ::bgs::protocol::presence::v1::FieldOperation& ChannelState::field_operation(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.presence.v1.ChannelState.field_operation)
  return field_operation_.Get(index);
}
inline ::bgs::protocol::presence::v1::FieldOperation* ChannelState::mutable_field_operation(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.presence.v1.ChannelState.field_operation)
  return field_operation_.Mutable(index);
}
inline ::bgs::protocol::presence::v1::FieldOperation* ChannelState::add_field_operation() {
  // @@protoc_insertion_point(field_add:bgs.protocol.presence.v1.ChannelState.field_operation)
  return field_operation_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::presence::v1::FieldOperation >&
ChannelState::field_operation() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.presence.v1.ChannelState.field_operation)
  return field_operation_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::presence::v1::FieldOperation >*
ChannelState::mutable_field_operation() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.presence.v1.ChannelState.field_operation)
  return &field_operation_;
}

// optional bool healing = 3 [default = false];
inline bool ChannelState::has_healing() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void ChannelState::set_has_healing() {
  _has_bits_[0] |= 0x00000004u;
}
inline void ChannelState::clear_has_healing() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void ChannelState::clear_healing() {
  healing_ = false;
  clear_has_healing();
}
inline bool ChannelState::healing() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.presence.v1.ChannelState.healing)
  return healing_;
}
inline void ChannelState::set_healing(bool value) {
  set_has_healing();
  healing_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.presence.v1.ChannelState.healing)
}


// @@protoc_insertion_point(namespace_scope)

}  // namespace v1
}  // namespace presence
}  // namespace protocol
}  // namespace bgs

#ifndef SWIG
namespace google {
namespace protobuf {

template <> struct is_proto_enum< ::bgs::protocol::presence::v1::FieldOperation_OperationType> : ::google::protobuf::internal::true_type {};
template <>
inline const EnumDescriptor* GetEnumDescriptor< ::bgs::protocol::presence::v1::FieldOperation_OperationType>() {
  return ::bgs::protocol::presence::v1::FieldOperation_OperationType_descriptor();
}

}  // namespace google
}  // namespace protobuf
#endif  // SWIG

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_presence_5ftypes_2eproto__INCLUDED
