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

#ifndef PROTOBUF_game_5futilities_5fservice_2eproto__INCLUDED
#define PROTOBUF_game_5futilities_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 "attribute_types.pb.h"
#include "content_handle_types.pb.h"
#include "entity_types.pb.h"
#include "game_utilities_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 game_utilities {
namespace v1 {

// Internal implementation detail -- do not call these.
void protobuf_AddDesc_game_5futilities_5fservice_2eproto();
void protobuf_AssignDesc_game_5futilities_5fservice_2eproto();
void protobuf_ShutdownFile_game_5futilities_5fservice_2eproto();

class ClientRequest;
class ClientResponse;
class ServerRequest;
class ServerResponse;
class PresenceChannelCreatedRequest;
class GetPlayerVariablesRequest;
class GetPlayerVariablesResponse;
class GameAccountOnlineNotification;
class GameAccountOfflineNotification;
class GetAchievementsFileRequest;
class GetAchievementsFileResponse;
class GetAllValuesForAttributeRequest;
class GetAllValuesForAttributeResponse;

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

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

  ClientRequest(const ClientRequest& from);

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

  void Swap(ClientRequest* other);

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

  ClientRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const ClientRequest& from);
  void MergeFrom(const ClientRequest& 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.Attribute attribute = 1;
  inline int attribute_size() const;
  inline void clear_attribute();
  static const int kAttributeFieldNumber = 1;
  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.ProcessId host = 2;
  inline bool has_host() const;
  inline void clear_host();
  static const int kHostFieldNumber = 2;
  inline const ::bgs::protocol::ProcessId& host() const;
  inline ::bgs::protocol::ProcessId* mutable_host();
  inline ::bgs::protocol::ProcessId* release_host();
  inline void set_allocated_host(::bgs::protocol::ProcessId* host);

  // optional .bgs.protocol.EntityId account_id = 3;
  inline bool has_account_id() const;
  inline void clear_account_id();
  static const int kAccountIdFieldNumber = 3;
  inline const ::bgs::protocol::EntityId& account_id() const;
  inline ::bgs::protocol::EntityId* mutable_account_id();
  inline ::bgs::protocol::EntityId* release_account_id();
  inline void set_allocated_account_id(::bgs::protocol::EntityId* account_id);

  // optional .bgs.protocol.EntityId game_account_id = 4;
  inline bool has_game_account_id() const;
  inline void clear_game_account_id();
  static const int kGameAccountIdFieldNumber = 4;
  inline const ::bgs::protocol::EntityId& game_account_id() const;
  inline ::bgs::protocol::EntityId* mutable_game_account_id();
  inline ::bgs::protocol::EntityId* release_game_account_id();
  inline void set_allocated_game_account_id(::bgs::protocol::EntityId* game_account_id);

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

  // optional .bgs.protocol.game_utilities.v1.ClientInfo client_info = 6;
  inline bool has_client_info() const;
  inline void clear_client_info();
  static const int kClientInfoFieldNumber = 6;
  inline const ::bgs::protocol::game_utilities::v1::ClientInfo& client_info() const;
  inline ::bgs::protocol::game_utilities::v1::ClientInfo* mutable_client_info();
  inline ::bgs::protocol::game_utilities::v1::ClientInfo* release_client_info();
  inline void set_allocated_client_info(::bgs::protocol::game_utilities::v1::ClientInfo* client_info);

  // @@protoc_insertion_point(class_scope:bgs.protocol.game_utilities.v1.ClientRequest)
 private:
  inline void set_has_host();
  inline void clear_has_host();
  inline void set_has_account_id();
  inline void clear_has_account_id();
  inline void set_has_game_account_id();
  inline void clear_has_game_account_id();
  inline void set_has_program();
  inline void clear_has_program();
  inline void set_has_client_info();
  inline void clear_has_client_info();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::Attribute > attribute_;
  ::bgs::protocol::ProcessId* host_;
  ::bgs::protocol::EntityId* account_id_;
  ::bgs::protocol::EntityId* game_account_id_;
  ::bgs::protocol::game_utilities::v1::ClientInfo* client_info_;
  ::google::protobuf::uint32 program_;
  friend void protobuf_AddDesc_game_5futilities_5fservice_2eproto();
  friend void protobuf_AssignDesc_game_5futilities_5fservice_2eproto();
  friend void protobuf_ShutdownFile_game_5futilities_5fservice_2eproto();

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

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

  ClientResponse(const ClientResponse& from);

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

  void Swap(ClientResponse* other);

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

  ClientResponse* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const ClientResponse& from);
  void MergeFrom(const ClientResponse& 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.Attribute attribute = 1;
  inline int attribute_size() const;
  inline void clear_attribute();
  static const int kAttributeFieldNumber = 1;
  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.game_utilities.v1.ClientResponse)
 private:

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::Attribute > attribute_;
  friend void protobuf_AddDesc_game_5futilities_5fservice_2eproto();
  friend void protobuf_AssignDesc_game_5futilities_5fservice_2eproto();
  friend void protobuf_ShutdownFile_game_5futilities_5fservice_2eproto();

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

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

  ServerRequest(const ServerRequest& from);

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

  void Swap(ServerRequest* other);

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

  ServerRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const ServerRequest& from);
  void MergeFrom(const ServerRequest& 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.Attribute attribute = 1;
  inline int attribute_size() const;
  inline void clear_attribute();
  static const int kAttributeFieldNumber = 1;
  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();

  // required fixed32 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);

  // optional .bgs.protocol.ProcessId host = 3;
  inline bool has_host() const;
  inline void clear_host();
  static const int kHostFieldNumber = 3;
  inline const ::bgs::protocol::ProcessId& host() const;
  inline ::bgs::protocol::ProcessId* mutable_host();
  inline ::bgs::protocol::ProcessId* release_host();
  inline void set_allocated_host(::bgs::protocol::ProcessId* host);

  // @@protoc_insertion_point(class_scope:bgs.protocol.game_utilities.v1.ServerRequest)
 private:
  inline void set_has_program();
  inline void clear_has_program();
  inline void set_has_host();
  inline void clear_has_host();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::Attribute > attribute_;
  ::bgs::protocol::ProcessId* host_;
  ::google::protobuf::uint32 program_;
  friend void protobuf_AddDesc_game_5futilities_5fservice_2eproto();
  friend void protobuf_AssignDesc_game_5futilities_5fservice_2eproto();
  friend void protobuf_ShutdownFile_game_5futilities_5fservice_2eproto();

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

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

  ServerResponse(const ServerResponse& from);

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

  void Swap(ServerResponse* other);

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

  ServerResponse* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const ServerResponse& from);
  void MergeFrom(const ServerResponse& 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.Attribute attribute = 1;
  inline int attribute_size() const;
  inline void clear_attribute();
  static const int kAttributeFieldNumber = 1;
  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.game_utilities.v1.ServerResponse)
 private:

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::Attribute > attribute_;
  friend void protobuf_AddDesc_game_5futilities_5fservice_2eproto();
  friend void protobuf_AssignDesc_game_5futilities_5fservice_2eproto();
  friend void protobuf_ShutdownFile_game_5futilities_5fservice_2eproto();

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

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

  PresenceChannelCreatedRequest(const PresenceChannelCreatedRequest& from);

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

  void Swap(PresenceChannelCreatedRequest* other);

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

  PresenceChannelCreatedRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const PresenceChannelCreatedRequest& from);
  void MergeFrom(const PresenceChannelCreatedRequest& 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.EntityId id = 1;
  inline bool has_id() const;
  inline void clear_id();
  static const int kIdFieldNumber = 1;
  inline const ::bgs::protocol::EntityId& id() const;
  inline ::bgs::protocol::EntityId* mutable_id();
  inline ::bgs::protocol::EntityId* release_id();
  inline void set_allocated_id(::bgs::protocol::EntityId* id);

  // optional .bgs.protocol.EntityId game_account_id = 3;
  inline bool has_game_account_id() const;
  inline void clear_game_account_id();
  static const int kGameAccountIdFieldNumber = 3;
  inline const ::bgs::protocol::EntityId& game_account_id() const;
  inline ::bgs::protocol::EntityId* mutable_game_account_id();
  inline ::bgs::protocol::EntityId* release_game_account_id();
  inline void set_allocated_game_account_id(::bgs::protocol::EntityId* game_account_id);

  // optional .bgs.protocol.EntityId account_id = 4;
  inline bool has_account_id() const;
  inline void clear_account_id();
  static const int kAccountIdFieldNumber = 4;
  inline const ::bgs::protocol::EntityId& account_id() const;
  inline ::bgs::protocol::EntityId* mutable_account_id();
  inline ::bgs::protocol::EntityId* release_account_id();
  inline void set_allocated_account_id(::bgs::protocol::EntityId* account_id);

  // optional .bgs.protocol.ProcessId host = 5;
  inline bool has_host() const;
  inline void clear_host();
  static const int kHostFieldNumber = 5;
  inline const ::bgs::protocol::ProcessId& host() const;
  inline ::bgs::protocol::ProcessId* mutable_host();
  inline ::bgs::protocol::ProcessId* release_host();
  inline void set_allocated_host(::bgs::protocol::ProcessId* host);

  // @@protoc_insertion_point(class_scope:bgs.protocol.game_utilities.v1.PresenceChannelCreatedRequest)
 private:
  inline void set_has_id();
  inline void clear_has_id();
  inline void set_has_game_account_id();
  inline void clear_has_game_account_id();
  inline void set_has_account_id();
  inline void clear_has_account_id();
  inline void set_has_host();
  inline void clear_has_host();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::EntityId* id_;
  ::bgs::protocol::EntityId* game_account_id_;
  ::bgs::protocol::EntityId* account_id_;
  ::bgs::protocol::ProcessId* host_;
  friend void protobuf_AddDesc_game_5futilities_5fservice_2eproto();
  friend void protobuf_AssignDesc_game_5futilities_5fservice_2eproto();
  friend void protobuf_ShutdownFile_game_5futilities_5fservice_2eproto();

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

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

  GetPlayerVariablesRequest(const GetPlayerVariablesRequest& from);

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

  void Swap(GetPlayerVariablesRequest* other);

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

  GetPlayerVariablesRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GetPlayerVariablesRequest& from);
  void MergeFrom(const GetPlayerVariablesRequest& 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.game_utilities.v1.PlayerVariables player_variables = 1;
  inline int player_variables_size() const;
  inline void clear_player_variables();
  static const int kPlayerVariablesFieldNumber = 1;
  inline const ::bgs::protocol::game_utilities::v1::PlayerVariables& player_variables(int index) const;
  inline ::bgs::protocol::game_utilities::v1::PlayerVariables* mutable_player_variables(int index);
  inline ::bgs::protocol::game_utilities::v1::PlayerVariables* add_player_variables();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::game_utilities::v1::PlayerVariables >&
      player_variables() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::game_utilities::v1::PlayerVariables >*
      mutable_player_variables();

  // optional .bgs.protocol.ProcessId host = 2;
  inline bool has_host() const;
  inline void clear_host();
  static const int kHostFieldNumber = 2;
  inline const ::bgs::protocol::ProcessId& host() const;
  inline ::bgs::protocol::ProcessId* mutable_host();
  inline ::bgs::protocol::ProcessId* release_host();
  inline void set_allocated_host(::bgs::protocol::ProcessId* host);

  // @@protoc_insertion_point(class_scope:bgs.protocol.game_utilities.v1.GetPlayerVariablesRequest)
 private:
  inline void set_has_host();
  inline void clear_has_host();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::game_utilities::v1::PlayerVariables > player_variables_;
  ::bgs::protocol::ProcessId* host_;
  friend void protobuf_AddDesc_game_5futilities_5fservice_2eproto();
  friend void protobuf_AssignDesc_game_5futilities_5fservice_2eproto();
  friend void protobuf_ShutdownFile_game_5futilities_5fservice_2eproto();

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

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

  GetPlayerVariablesResponse(const GetPlayerVariablesResponse& from);

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

  void Swap(GetPlayerVariablesResponse* other);

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

  GetPlayerVariablesResponse* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GetPlayerVariablesResponse& from);
  void MergeFrom(const GetPlayerVariablesResponse& 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.game_utilities.v1.PlayerVariables player_variables = 1;
  inline int player_variables_size() const;
  inline void clear_player_variables();
  static const int kPlayerVariablesFieldNumber = 1;
  inline const ::bgs::protocol::game_utilities::v1::PlayerVariables& player_variables(int index) const;
  inline ::bgs::protocol::game_utilities::v1::PlayerVariables* mutable_player_variables(int index);
  inline ::bgs::protocol::game_utilities::v1::PlayerVariables* add_player_variables();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::game_utilities::v1::PlayerVariables >&
      player_variables() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::game_utilities::v1::PlayerVariables >*
      mutable_player_variables();

  // @@protoc_insertion_point(class_scope:bgs.protocol.game_utilities.v1.GetPlayerVariablesResponse)
 private:

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::game_utilities::v1::PlayerVariables > player_variables_;
  friend void protobuf_AddDesc_game_5futilities_5fservice_2eproto();
  friend void protobuf_AssignDesc_game_5futilities_5fservice_2eproto();
  friend void protobuf_ShutdownFile_game_5futilities_5fservice_2eproto();

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

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

  GameAccountOnlineNotification(const GameAccountOnlineNotification& from);

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

  void Swap(GameAccountOnlineNotification* other);

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

  GameAccountOnlineNotification* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GameAccountOnlineNotification& from);
  void MergeFrom(const GameAccountOnlineNotification& 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.EntityId game_account_id = 1;
  inline bool has_game_account_id() const;
  inline void clear_game_account_id();
  static const int kGameAccountIdFieldNumber = 1;
  inline const ::bgs::protocol::EntityId& game_account_id() const;
  inline ::bgs::protocol::EntityId* mutable_game_account_id();
  inline ::bgs::protocol::EntityId* release_game_account_id();
  inline void set_allocated_game_account_id(::bgs::protocol::EntityId* game_account_id);

  // optional .bgs.protocol.ProcessId host = 2;
  inline bool has_host() const;
  inline void clear_host();
  static const int kHostFieldNumber = 2;
  inline const ::bgs::protocol::ProcessId& host() const;
  inline ::bgs::protocol::ProcessId* mutable_host();
  inline ::bgs::protocol::ProcessId* release_host();
  inline void set_allocated_host(::bgs::protocol::ProcessId* host);

  // optional string session_id = 3;
  inline bool has_session_id() const;
  inline void clear_session_id();
  static const int kSessionIdFieldNumber = 3;
  inline const ::std::string& session_id() const;
  inline void set_session_id(const ::std::string& value);
  inline void set_session_id(const char* value);
  inline void set_session_id(const char* value, size_t size);
  inline ::std::string* mutable_session_id();
  inline ::std::string* release_session_id();
  inline void set_allocated_session_id(::std::string* session_id);

  // @@protoc_insertion_point(class_scope:bgs.protocol.game_utilities.v1.GameAccountOnlineNotification)
 private:
  inline void set_has_game_account_id();
  inline void clear_has_game_account_id();
  inline void set_has_host();
  inline void clear_has_host();
  inline void set_has_session_id();
  inline void clear_has_session_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::EntityId* game_account_id_;
  ::bgs::protocol::ProcessId* host_;
  ::std::string* session_id_;
  friend void protobuf_AddDesc_game_5futilities_5fservice_2eproto();
  friend void protobuf_AssignDesc_game_5futilities_5fservice_2eproto();
  friend void protobuf_ShutdownFile_game_5futilities_5fservice_2eproto();

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

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

  GameAccountOfflineNotification(const GameAccountOfflineNotification& from);

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

  void Swap(GameAccountOfflineNotification* other);

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

  GameAccountOfflineNotification* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GameAccountOfflineNotification& from);
  void MergeFrom(const GameAccountOfflineNotification& 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.EntityId game_account_id = 1;
  inline bool has_game_account_id() const;
  inline void clear_game_account_id();
  static const int kGameAccountIdFieldNumber = 1;
  inline const ::bgs::protocol::EntityId& game_account_id() const;
  inline ::bgs::protocol::EntityId* mutable_game_account_id();
  inline ::bgs::protocol::EntityId* release_game_account_id();
  inline void set_allocated_game_account_id(::bgs::protocol::EntityId* game_account_id);

  // optional .bgs.protocol.ProcessId host = 2;
  inline bool has_host() const;
  inline void clear_host();
  static const int kHostFieldNumber = 2;
  inline const ::bgs::protocol::ProcessId& host() const;
  inline ::bgs::protocol::ProcessId* mutable_host();
  inline ::bgs::protocol::ProcessId* release_host();
  inline void set_allocated_host(::bgs::protocol::ProcessId* host);

  // optional string session_id = 3;
  inline bool has_session_id() const;
  inline void clear_session_id();
  static const int kSessionIdFieldNumber = 3;
  inline const ::std::string& session_id() const;
  inline void set_session_id(const ::std::string& value);
  inline void set_session_id(const char* value);
  inline void set_session_id(const char* value, size_t size);
  inline ::std::string* mutable_session_id();
  inline ::std::string* release_session_id();
  inline void set_allocated_session_id(::std::string* session_id);

  // @@protoc_insertion_point(class_scope:bgs.protocol.game_utilities.v1.GameAccountOfflineNotification)
 private:
  inline void set_has_game_account_id();
  inline void clear_has_game_account_id();
  inline void set_has_host();
  inline void clear_has_host();
  inline void set_has_session_id();
  inline void clear_has_session_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::EntityId* game_account_id_;
  ::bgs::protocol::ProcessId* host_;
  ::std::string* session_id_;
  friend void protobuf_AddDesc_game_5futilities_5fservice_2eproto();
  friend void protobuf_AssignDesc_game_5futilities_5fservice_2eproto();
  friend void protobuf_ShutdownFile_game_5futilities_5fservice_2eproto();

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

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

  GetAchievementsFileRequest(const GetAchievementsFileRequest& from);

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

  void Swap(GetAchievementsFileRequest* other);

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

  GetAchievementsFileRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GetAchievementsFileRequest& from);
  void MergeFrom(const GetAchievementsFileRequest& 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.ProcessId host = 1;
  inline bool has_host() const;
  inline void clear_host();
  static const int kHostFieldNumber = 1;
  inline const ::bgs::protocol::ProcessId& host() const;
  inline ::bgs::protocol::ProcessId* mutable_host();
  inline ::bgs::protocol::ProcessId* release_host();
  inline void set_allocated_host(::bgs::protocol::ProcessId* host);

  // @@protoc_insertion_point(class_scope:bgs.protocol.game_utilities.v1.GetAchievementsFileRequest)
 private:
  inline void set_has_host();
  inline void clear_has_host();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::ProcessId* host_;
  friend void protobuf_AddDesc_game_5futilities_5fservice_2eproto();
  friend void protobuf_AssignDesc_game_5futilities_5fservice_2eproto();
  friend void protobuf_ShutdownFile_game_5futilities_5fservice_2eproto();

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

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

  GetAchievementsFileResponse(const GetAchievementsFileResponse& from);

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

  void Swap(GetAchievementsFileResponse* other);

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

  GetAchievementsFileResponse* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GetAchievementsFileResponse& from);
  void MergeFrom(const GetAchievementsFileResponse& 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.ContentHandle content_handle = 1;
  inline bool has_content_handle() const;
  inline void clear_content_handle();
  static const int kContentHandleFieldNumber = 1;
  inline const ::bgs::protocol::ContentHandle& content_handle() const;
  inline ::bgs::protocol::ContentHandle* mutable_content_handle();
  inline ::bgs::protocol::ContentHandle* release_content_handle();
  inline void set_allocated_content_handle(::bgs::protocol::ContentHandle* content_handle);

  // @@protoc_insertion_point(class_scope:bgs.protocol.game_utilities.v1.GetAchievementsFileResponse)
 private:
  inline void set_has_content_handle();
  inline void clear_has_content_handle();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::ContentHandle* content_handle_;
  friend void protobuf_AddDesc_game_5futilities_5fservice_2eproto();
  friend void protobuf_AssignDesc_game_5futilities_5fservice_2eproto();
  friend void protobuf_ShutdownFile_game_5futilities_5fservice_2eproto();

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

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

  GetAllValuesForAttributeRequest(const GetAllValuesForAttributeRequest& from);

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

  void Swap(GetAllValuesForAttributeRequest* other);

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

  GetAllValuesForAttributeRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GetAllValuesForAttributeRequest& from);
  void MergeFrom(const GetAllValuesForAttributeRequest& 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 string attribute_key = 1;
  inline bool has_attribute_key() const;
  inline void clear_attribute_key();
  static const int kAttributeKeyFieldNumber = 1;
  inline const ::std::string& attribute_key() const;
  inline void set_attribute_key(const ::std::string& value);
  inline void set_attribute_key(const char* value);
  inline void set_attribute_key(const char* value, size_t size);
  inline ::std::string* mutable_attribute_key();
  inline ::std::string* release_attribute_key();
  inline void set_allocated_attribute_key(::std::string* attribute_key);

  // optional .bgs.protocol.EntityId agent_id = 2;
  inline bool has_agent_id() const;
  inline void clear_agent_id();
  static const int kAgentIdFieldNumber = 2;
  inline const ::bgs::protocol::EntityId& agent_id() const;
  inline ::bgs::protocol::EntityId* mutable_agent_id();
  inline ::bgs::protocol::EntityId* release_agent_id();
  inline void set_allocated_agent_id(::bgs::protocol::EntityId* agent_id);

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

  // @@protoc_insertion_point(class_scope:bgs.protocol.game_utilities.v1.GetAllValuesForAttributeRequest)
 private:
  inline void set_has_attribute_key();
  inline void clear_has_attribute_key();
  inline void set_has_agent_id();
  inline void clear_has_agent_id();
  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_;
  ::std::string* attribute_key_;
  ::bgs::protocol::EntityId* agent_id_;
  ::google::protobuf::uint32 program_;
  friend void protobuf_AddDesc_game_5futilities_5fservice_2eproto();
  friend void protobuf_AssignDesc_game_5futilities_5fservice_2eproto();
  friend void protobuf_ShutdownFile_game_5futilities_5fservice_2eproto();

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

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

  GetAllValuesForAttributeResponse(const GetAllValuesForAttributeResponse& from);

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

  void Swap(GetAllValuesForAttributeResponse* other);

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

  GetAllValuesForAttributeResponse* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GetAllValuesForAttributeResponse& from);
  void MergeFrom(const GetAllValuesForAttributeResponse& 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.Variant attribute_value = 1;
  inline int attribute_value_size() const;
  inline void clear_attribute_value();
  static const int kAttributeValueFieldNumber = 1;
  inline const ::bgs::protocol::Variant& attribute_value(int index) const;
  inline ::bgs::protocol::Variant* mutable_attribute_value(int index);
  inline ::bgs::protocol::Variant* add_attribute_value();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::Variant >&
      attribute_value() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::Variant >*
      mutable_attribute_value();

  // @@protoc_insertion_point(class_scope:bgs.protocol.game_utilities.v1.GetAllValuesForAttributeResponse)
 private:

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::Variant > attribute_value_;
  friend void protobuf_AddDesc_game_5futilities_5fservice_2eproto();
  friend void protobuf_AssignDesc_game_5futilities_5fservice_2eproto();
  friend void protobuf_ShutdownFile_game_5futilities_5fservice_2eproto();

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

class GameUtilitiesService : public ServiceBase
{
 public:

  explicit GameUtilitiesService(bool use_original_hash);
  virtual ~GameUtilitiesService();

  typedef std::integral_constant<uint32, 0x3FC1274Du> OriginalHash;
  typedef std::integral_constant<uint32, 0x51923A28u> NameHash;

  static google::protobuf::ServiceDescriptor const* descriptor();

  // client methods --------------------------------------------------

  void ProcessClientRequest(::bgs::protocol::game_utilities::v1::ClientRequest const* request, std::function<void(::bgs::protocol::game_utilities::v1::ClientResponse const*)> responseCallback);
  void PresenceChannelCreated(::bgs::protocol::game_utilities::v1::PresenceChannelCreatedRequest const* request, std::function<void(::bgs::protocol::NoData const*)> responseCallback);
  void GetPlayerVariables(::bgs::protocol::game_utilities::v1::GetPlayerVariablesRequest const* request, std::function<void(::bgs::protocol::game_utilities::v1::GetPlayerVariablesResponse const*)> responseCallback);
  void ProcessServerRequest(::bgs::protocol::game_utilities::v1::ServerRequest const* request, std::function<void(::bgs::protocol::game_utilities::v1::ServerResponse const*)> responseCallback);
  void OnGameAccountOnline(::bgs::protocol::game_utilities::v1::GameAccountOnlineNotification const* request);
  void OnGameAccountOffline(::bgs::protocol::game_utilities::v1::GameAccountOfflineNotification const* request);
  void GetAchievementsFile(::bgs::protocol::game_utilities::v1::GetAchievementsFileRequest const* request, std::function<void(::bgs::protocol::game_utilities::v1::GetAchievementsFileResponse const*)> responseCallback);
  void GetAllValuesForAttribute(::bgs::protocol::game_utilities::v1::GetAllValuesForAttributeRequest const* request, std::function<void(::bgs::protocol::game_utilities::v1::GetAllValuesForAttributeResponse const*)> responseCallback);
  // server methods --------------------------------------------------

  void CallServerMethod(uint32 token, uint32 methodId, MessageBuffer buffer) override final;

 protected:
  virtual uint32 HandleProcessClientRequest(::bgs::protocol::game_utilities::v1::ClientRequest const* request, ::bgs::protocol::game_utilities::v1::ClientResponse* response);
  virtual uint32 HandlePresenceChannelCreated(::bgs::protocol::game_utilities::v1::PresenceChannelCreatedRequest const* request, ::bgs::protocol::NoData* response);
  virtual uint32 HandleGetPlayerVariables(::bgs::protocol::game_utilities::v1::GetPlayerVariablesRequest const* request, ::bgs::protocol::game_utilities::v1::GetPlayerVariablesResponse* response);
  virtual uint32 HandleProcessServerRequest(::bgs::protocol::game_utilities::v1::ServerRequest const* request, ::bgs::protocol::game_utilities::v1::ServerResponse* response);
  virtual uint32 HandleOnGameAccountOnline(::bgs::protocol::game_utilities::v1::GameAccountOnlineNotification const* request);
  virtual uint32 HandleOnGameAccountOffline(::bgs::protocol::game_utilities::v1::GameAccountOfflineNotification const* request);
  virtual uint32 HandleGetAchievementsFile(::bgs::protocol::game_utilities::v1::GetAchievementsFileRequest const* request, ::bgs::protocol::game_utilities::v1::GetAchievementsFileResponse* response);
  virtual uint32 HandleGetAllValuesForAttribute(::bgs::protocol::game_utilities::v1::GetAllValuesForAttributeRequest const* request, ::bgs::protocol::game_utilities::v1::GetAllValuesForAttributeResponse* response);

 private:
  uint32 service_hash_;

  GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(GameUtilitiesService);
};

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


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

// ClientRequest

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

// optional .bgs.protocol.ProcessId host = 2;
inline bool ClientRequest::has_host() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void ClientRequest::set_has_host() {
  _has_bits_[0] |= 0x00000002u;
}
inline void ClientRequest::clear_has_host() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void ClientRequest::clear_host() {
  if (host_ != NULL) host_->::bgs::protocol::ProcessId::Clear();
  clear_has_host();
}
inline const ::bgs::protocol::ProcessId& ClientRequest::host() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.game_utilities.v1.ClientRequest.host)
  return host_ != NULL ? *host_ : *default_instance_->host_;
}
inline ::bgs::protocol::ProcessId* ClientRequest::mutable_host() {
  set_has_host();
  if (host_ == NULL) host_ = new ::bgs::protocol::ProcessId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.game_utilities.v1.ClientRequest.host)
  return host_;
}
inline ::bgs::protocol::ProcessId* ClientRequest::release_host() {
  clear_has_host();
  ::bgs::protocol::ProcessId* temp = host_;
  host_ = NULL;
  return temp;
}
inline void ClientRequest::set_allocated_host(::bgs::protocol::ProcessId* host) {
  delete host_;
  host_ = host;
  if (host) {
    set_has_host();
  } else {
    clear_has_host();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.game_utilities.v1.ClientRequest.host)
}

// optional .bgs.protocol.EntityId account_id = 3;
inline bool ClientRequest::has_account_id() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void ClientRequest::set_has_account_id() {
  _has_bits_[0] |= 0x00000004u;
}
inline void ClientRequest::clear_has_account_id() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void ClientRequest::clear_account_id() {
  if (account_id_ != NULL) account_id_->::bgs::protocol::EntityId::Clear();
  clear_has_account_id();
}
inline const ::bgs::protocol::EntityId& ClientRequest::account_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.game_utilities.v1.ClientRequest.account_id)
  return account_id_ != NULL ? *account_id_ : *default_instance_->account_id_;
}
inline ::bgs::protocol::EntityId* ClientRequest::mutable_account_id() {
  set_has_account_id();
  if (account_id_ == NULL) account_id_ = new ::bgs::protocol::EntityId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.game_utilities.v1.ClientRequest.account_id)
  return account_id_;
}
inline ::bgs::protocol::EntityId* ClientRequest::release_account_id() {
  clear_has_account_id();
  ::bgs::protocol::EntityId* temp = account_id_;
  account_id_ = NULL;
  return temp;
}
inline void ClientRequest::set_allocated_account_id(::bgs::protocol::EntityId* account_id) {
  delete account_id_;
  account_id_ = account_id;
  if (account_id) {
    set_has_account_id();
  } else {
    clear_has_account_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.game_utilities.v1.ClientRequest.account_id)
}

// optional .bgs.protocol.EntityId game_account_id = 4;
inline bool ClientRequest::has_game_account_id() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void ClientRequest::set_has_game_account_id() {
  _has_bits_[0] |= 0x00000008u;
}
inline void ClientRequest::clear_has_game_account_id() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void ClientRequest::clear_game_account_id() {
  if (game_account_id_ != NULL) game_account_id_->::bgs::protocol::EntityId::Clear();
  clear_has_game_account_id();
}
inline const ::bgs::protocol::EntityId& ClientRequest::game_account_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.game_utilities.v1.ClientRequest.game_account_id)
  return game_account_id_ != NULL ? *game_account_id_ : *default_instance_->game_account_id_;
}
inline ::bgs::protocol::EntityId* ClientRequest::mutable_game_account_id() {
  set_has_game_account_id();
  if (game_account_id_ == NULL) game_account_id_ = new ::bgs::protocol::EntityId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.game_utilities.v1.ClientRequest.game_account_id)
  return game_account_id_;
}
inline ::bgs::protocol::EntityId* ClientRequest::release_game_account_id() {
  clear_has_game_account_id();
  ::bgs::protocol::EntityId* temp = game_account_id_;
  game_account_id_ = NULL;
  return temp;
}
inline void ClientRequest::set_allocated_game_account_id(::bgs::protocol::EntityId* game_account_id) {
  delete game_account_id_;
  game_account_id_ = game_account_id;
  if (game_account_id) {
    set_has_game_account_id();
  } else {
    clear_has_game_account_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.game_utilities.v1.ClientRequest.game_account_id)
}

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

// optional .bgs.protocol.game_utilities.v1.ClientInfo client_info = 6;
inline bool ClientRequest::has_client_info() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void ClientRequest::set_has_client_info() {
  _has_bits_[0] |= 0x00000020u;
}
inline void ClientRequest::clear_has_client_info() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void ClientRequest::clear_client_info() {
  if (client_info_ != NULL) client_info_->::bgs::protocol::game_utilities::v1::ClientInfo::Clear();
  clear_has_client_info();
}
inline const ::bgs::protocol::game_utilities::v1::ClientInfo& ClientRequest::client_info() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.game_utilities.v1.ClientRequest.client_info)
  return client_info_ != NULL ? *client_info_ : *default_instance_->client_info_;
}
inline ::bgs::protocol::game_utilities::v1::ClientInfo* ClientRequest::mutable_client_info() {
  set_has_client_info();
  if (client_info_ == NULL) client_info_ = new ::bgs::protocol::game_utilities::v1::ClientInfo;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.game_utilities.v1.ClientRequest.client_info)
  return client_info_;
}
inline ::bgs::protocol::game_utilities::v1::ClientInfo* ClientRequest::release_client_info() {
  clear_has_client_info();
  ::bgs::protocol::game_utilities::v1::ClientInfo* temp = client_info_;
  client_info_ = NULL;
  return temp;
}
inline void ClientRequest::set_allocated_client_info(::bgs::protocol::game_utilities::v1::ClientInfo* client_info) {
  delete client_info_;
  client_info_ = client_info;
  if (client_info) {
    set_has_client_info();
  } else {
    clear_has_client_info();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.game_utilities.v1.ClientRequest.client_info)
}

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

// ClientResponse

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

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

// ServerRequest

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

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

// optional .bgs.protocol.ProcessId host = 3;
inline bool ServerRequest::has_host() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void ServerRequest::set_has_host() {
  _has_bits_[0] |= 0x00000004u;
}
inline void ServerRequest::clear_has_host() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void ServerRequest::clear_host() {
  if (host_ != NULL) host_->::bgs::protocol::ProcessId::Clear();
  clear_has_host();
}
inline const ::bgs::protocol::ProcessId& ServerRequest::host() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.game_utilities.v1.ServerRequest.host)
  return host_ != NULL ? *host_ : *default_instance_->host_;
}
inline ::bgs::protocol::ProcessId* ServerRequest::mutable_host() {
  set_has_host();
  if (host_ == NULL) host_ = new ::bgs::protocol::ProcessId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.game_utilities.v1.ServerRequest.host)
  return host_;
}
inline ::bgs::protocol::ProcessId* ServerRequest::release_host() {
  clear_has_host();
  ::bgs::protocol::ProcessId* temp = host_;
  host_ = NULL;
  return temp;
}
inline void ServerRequest::set_allocated_host(::bgs::protocol::ProcessId* host) {
  delete host_;
  host_ = host;
  if (host) {
    set_has_host();
  } else {
    clear_has_host();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.game_utilities.v1.ServerRequest.host)
}

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

// ServerResponse

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

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

// PresenceChannelCreatedRequest

// required .bgs.protocol.EntityId id = 1;
inline bool PresenceChannelCreatedRequest::has_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void PresenceChannelCreatedRequest::set_has_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void PresenceChannelCreatedRequest::clear_has_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void PresenceChannelCreatedRequest::clear_id() {
  if (id_ != NULL) id_->::bgs::protocol::EntityId::Clear();
  clear_has_id();
}
inline const ::bgs::protocol::EntityId& PresenceChannelCreatedRequest::id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.game_utilities.v1.PresenceChannelCreatedRequest.id)
  return id_ != NULL ? *id_ : *default_instance_->id_;
}
inline ::bgs::protocol::EntityId* PresenceChannelCreatedRequest::mutable_id() {
  set_has_id();
  if (id_ == NULL) id_ = new ::bgs::protocol::EntityId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.game_utilities.v1.PresenceChannelCreatedRequest.id)
  return id_;
}
inline ::bgs::protocol::EntityId* PresenceChannelCreatedRequest::release_id() {
  clear_has_id();
  ::bgs::protocol::EntityId* temp = id_;
  id_ = NULL;
  return temp;
}
inline void PresenceChannelCreatedRequest::set_allocated_id(::bgs::protocol::EntityId* id) {
  delete id_;
  id_ = id;
  if (id) {
    set_has_id();
  } else {
    clear_has_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.game_utilities.v1.PresenceChannelCreatedRequest.id)
}

// optional .bgs.protocol.EntityId game_account_id = 3;
inline bool PresenceChannelCreatedRequest::has_game_account_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void PresenceChannelCreatedRequest::set_has_game_account_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void PresenceChannelCreatedRequest::clear_has_game_account_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void PresenceChannelCreatedRequest::clear_game_account_id() {
  if (game_account_id_ != NULL) game_account_id_->::bgs::protocol::EntityId::Clear();
  clear_has_game_account_id();
}
inline const ::bgs::protocol::EntityId& PresenceChannelCreatedRequest::game_account_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.game_utilities.v1.PresenceChannelCreatedRequest.game_account_id)
  return game_account_id_ != NULL ? *game_account_id_ : *default_instance_->game_account_id_;
}
inline ::bgs::protocol::EntityId* PresenceChannelCreatedRequest::mutable_game_account_id() {
  set_has_game_account_id();
  if (game_account_id_ == NULL) game_account_id_ = new ::bgs::protocol::EntityId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.game_utilities.v1.PresenceChannelCreatedRequest.game_account_id)
  return game_account_id_;
}
inline ::bgs::protocol::EntityId* PresenceChannelCreatedRequest::release_game_account_id() {
  clear_has_game_account_id();
  ::bgs::protocol::EntityId* temp = game_account_id_;
  game_account_id_ = NULL;
  return temp;
}
inline void PresenceChannelCreatedRequest::set_allocated_game_account_id(::bgs::protocol::EntityId* game_account_id) {
  delete game_account_id_;
  game_account_id_ = game_account_id;
  if (game_account_id) {
    set_has_game_account_id();
  } else {
    clear_has_game_account_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.game_utilities.v1.PresenceChannelCreatedRequest.game_account_id)
}

// optional .bgs.protocol.EntityId account_id = 4;
inline bool PresenceChannelCreatedRequest::has_account_id() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void PresenceChannelCreatedRequest::set_has_account_id() {
  _has_bits_[0] |= 0x00000004u;
}
inline void PresenceChannelCreatedRequest::clear_has_account_id() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void PresenceChannelCreatedRequest::clear_account_id() {
  if (account_id_ != NULL) account_id_->::bgs::protocol::EntityId::Clear();
  clear_has_account_id();
}
inline const ::bgs::protocol::EntityId& PresenceChannelCreatedRequest::account_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.game_utilities.v1.PresenceChannelCreatedRequest.account_id)
  return account_id_ != NULL ? *account_id_ : *default_instance_->account_id_;
}
inline ::bgs::protocol::EntityId* PresenceChannelCreatedRequest::mutable_account_id() {
  set_has_account_id();
  if (account_id_ == NULL) account_id_ = new ::bgs::protocol::EntityId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.game_utilities.v1.PresenceChannelCreatedRequest.account_id)
  return account_id_;
}
inline ::bgs::protocol::EntityId* PresenceChannelCreatedRequest::release_account_id() {
  clear_has_account_id();
  ::bgs::protocol::EntityId* temp = account_id_;
  account_id_ = NULL;
  return temp;
}
inline void PresenceChannelCreatedRequest::set_allocated_account_id(::bgs::protocol::EntityId* account_id) {
  delete account_id_;
  account_id_ = account_id;
  if (account_id) {
    set_has_account_id();
  } else {
    clear_has_account_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.game_utilities.v1.PresenceChannelCreatedRequest.account_id)
}

// optional .bgs.protocol.ProcessId host = 5;
inline bool PresenceChannelCreatedRequest::has_host() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void PresenceChannelCreatedRequest::set_has_host() {
  _has_bits_[0] |= 0x00000008u;
}
inline void PresenceChannelCreatedRequest::clear_has_host() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void PresenceChannelCreatedRequest::clear_host() {
  if (host_ != NULL) host_->::bgs::protocol::ProcessId::Clear();
  clear_has_host();
}
inline const ::bgs::protocol::ProcessId& PresenceChannelCreatedRequest::host() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.game_utilities.v1.PresenceChannelCreatedRequest.host)
  return host_ != NULL ? *host_ : *default_instance_->host_;
}
inline ::bgs::protocol::ProcessId* PresenceChannelCreatedRequest::mutable_host() {
  set_has_host();
  if (host_ == NULL) host_ = new ::bgs::protocol::ProcessId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.game_utilities.v1.PresenceChannelCreatedRequest.host)
  return host_;
}
inline ::bgs::protocol::ProcessId* PresenceChannelCreatedRequest::release_host() {
  clear_has_host();
  ::bgs::protocol::ProcessId* temp = host_;
  host_ = NULL;
  return temp;
}
inline void PresenceChannelCreatedRequest::set_allocated_host(::bgs::protocol::ProcessId* host) {
  delete host_;
  host_ = host;
  if (host) {
    set_has_host();
  } else {
    clear_has_host();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.game_utilities.v1.PresenceChannelCreatedRequest.host)
}

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

// GetPlayerVariablesRequest

// repeated .bgs.protocol.game_utilities.v1.PlayerVariables player_variables = 1;
inline int GetPlayerVariablesRequest::player_variables_size() const {
  return player_variables_.size();
}
inline void GetPlayerVariablesRequest::clear_player_variables() {
  player_variables_.Clear();
}
inline const ::bgs::protocol::game_utilities::v1::PlayerVariables& GetPlayerVariablesRequest::player_variables(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.game_utilities.v1.GetPlayerVariablesRequest.player_variables)
  return player_variables_.Get(index);
}
inline ::bgs::protocol::game_utilities::v1::PlayerVariables* GetPlayerVariablesRequest::mutable_player_variables(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.game_utilities.v1.GetPlayerVariablesRequest.player_variables)
  return player_variables_.Mutable(index);
}
inline ::bgs::protocol::game_utilities::v1::PlayerVariables* GetPlayerVariablesRequest::add_player_variables() {
  // @@protoc_insertion_point(field_add:bgs.protocol.game_utilities.v1.GetPlayerVariablesRequest.player_variables)
  return player_variables_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::game_utilities::v1::PlayerVariables >&
GetPlayerVariablesRequest::player_variables() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.game_utilities.v1.GetPlayerVariablesRequest.player_variables)
  return player_variables_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::game_utilities::v1::PlayerVariables >*
GetPlayerVariablesRequest::mutable_player_variables() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.game_utilities.v1.GetPlayerVariablesRequest.player_variables)
  return &player_variables_;
}

// optional .bgs.protocol.ProcessId host = 2;
inline bool GetPlayerVariablesRequest::has_host() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GetPlayerVariablesRequest::set_has_host() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GetPlayerVariablesRequest::clear_has_host() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GetPlayerVariablesRequest::clear_host() {
  if (host_ != NULL) host_->::bgs::protocol::ProcessId::Clear();
  clear_has_host();
}
inline const ::bgs::protocol::ProcessId& GetPlayerVariablesRequest::host() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.game_utilities.v1.GetPlayerVariablesRequest.host)
  return host_ != NULL ? *host_ : *default_instance_->host_;
}
inline ::bgs::protocol::ProcessId* GetPlayerVariablesRequest::mutable_host() {
  set_has_host();
  if (host_ == NULL) host_ = new ::bgs::protocol::ProcessId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.game_utilities.v1.GetPlayerVariablesRequest.host)
  return host_;
}
inline ::bgs::protocol::ProcessId* GetPlayerVariablesRequest::release_host() {
  clear_has_host();
  ::bgs::protocol::ProcessId* temp = host_;
  host_ = NULL;
  return temp;
}
inline void GetPlayerVariablesRequest::set_allocated_host(::bgs::protocol::ProcessId* host) {
  delete host_;
  host_ = host;
  if (host) {
    set_has_host();
  } else {
    clear_has_host();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.game_utilities.v1.GetPlayerVariablesRequest.host)
}

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

// GetPlayerVariablesResponse

// repeated .bgs.protocol.game_utilities.v1.PlayerVariables player_variables = 1;
inline int GetPlayerVariablesResponse::player_variables_size() const {
  return player_variables_.size();
}
inline void GetPlayerVariablesResponse::clear_player_variables() {
  player_variables_.Clear();
}
inline const ::bgs::protocol::game_utilities::v1::PlayerVariables& GetPlayerVariablesResponse::player_variables(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.game_utilities.v1.GetPlayerVariablesResponse.player_variables)
  return player_variables_.Get(index);
}
inline ::bgs::protocol::game_utilities::v1::PlayerVariables* GetPlayerVariablesResponse::mutable_player_variables(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.game_utilities.v1.GetPlayerVariablesResponse.player_variables)
  return player_variables_.Mutable(index);
}
inline ::bgs::protocol::game_utilities::v1::PlayerVariables* GetPlayerVariablesResponse::add_player_variables() {
  // @@protoc_insertion_point(field_add:bgs.protocol.game_utilities.v1.GetPlayerVariablesResponse.player_variables)
  return player_variables_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::game_utilities::v1::PlayerVariables >&
GetPlayerVariablesResponse::player_variables() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.game_utilities.v1.GetPlayerVariablesResponse.player_variables)
  return player_variables_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::game_utilities::v1::PlayerVariables >*
GetPlayerVariablesResponse::mutable_player_variables() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.game_utilities.v1.GetPlayerVariablesResponse.player_variables)
  return &player_variables_;
}

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

// GameAccountOnlineNotification

// required .bgs.protocol.EntityId game_account_id = 1;
inline bool GameAccountOnlineNotification::has_game_account_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GameAccountOnlineNotification::set_has_game_account_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GameAccountOnlineNotification::clear_has_game_account_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GameAccountOnlineNotification::clear_game_account_id() {
  if (game_account_id_ != NULL) game_account_id_->::bgs::protocol::EntityId::Clear();
  clear_has_game_account_id();
}
inline const ::bgs::protocol::EntityId& GameAccountOnlineNotification::game_account_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.game_utilities.v1.GameAccountOnlineNotification.game_account_id)
  return game_account_id_ != NULL ? *game_account_id_ : *default_instance_->game_account_id_;
}
inline ::bgs::protocol::EntityId* GameAccountOnlineNotification::mutable_game_account_id() {
  set_has_game_account_id();
  if (game_account_id_ == NULL) game_account_id_ = new ::bgs::protocol::EntityId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.game_utilities.v1.GameAccountOnlineNotification.game_account_id)
  return game_account_id_;
}
inline ::bgs::protocol::EntityId* GameAccountOnlineNotification::release_game_account_id() {
  clear_has_game_account_id();
  ::bgs::protocol::EntityId* temp = game_account_id_;
  game_account_id_ = NULL;
  return temp;
}
inline void GameAccountOnlineNotification::set_allocated_game_account_id(::bgs::protocol::EntityId* game_account_id) {
  delete game_account_id_;
  game_account_id_ = game_account_id;
  if (game_account_id) {
    set_has_game_account_id();
  } else {
    clear_has_game_account_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.game_utilities.v1.GameAccountOnlineNotification.game_account_id)
}

// optional .bgs.protocol.ProcessId host = 2;
inline bool GameAccountOnlineNotification::has_host() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GameAccountOnlineNotification::set_has_host() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GameAccountOnlineNotification::clear_has_host() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GameAccountOnlineNotification::clear_host() {
  if (host_ != NULL) host_->::bgs::protocol::ProcessId::Clear();
  clear_has_host();
}
inline const ::bgs::protocol::ProcessId& GameAccountOnlineNotification::host() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.game_utilities.v1.GameAccountOnlineNotification.host)
  return host_ != NULL ? *host_ : *default_instance_->host_;
}
inline ::bgs::protocol::ProcessId* GameAccountOnlineNotification::mutable_host() {
  set_has_host();
  if (host_ == NULL) host_ = new ::bgs::protocol::ProcessId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.game_utilities.v1.GameAccountOnlineNotification.host)
  return host_;
}
inline ::bgs::protocol::ProcessId* GameAccountOnlineNotification::release_host() {
  clear_has_host();
  ::bgs::protocol::ProcessId* temp = host_;
  host_ = NULL;
  return temp;
}
inline void GameAccountOnlineNotification::set_allocated_host(::bgs::protocol::ProcessId* host) {
  delete host_;
  host_ = host;
  if (host) {
    set_has_host();
  } else {
    clear_has_host();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.game_utilities.v1.GameAccountOnlineNotification.host)
}

// optional string session_id = 3;
inline bool GameAccountOnlineNotification::has_session_id() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void GameAccountOnlineNotification::set_has_session_id() {
  _has_bits_[0] |= 0x00000004u;
}
inline void GameAccountOnlineNotification::clear_has_session_id() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void GameAccountOnlineNotification::clear_session_id() {
  if (session_id_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    session_id_->clear();
  }
  clear_has_session_id();
}
inline const ::std::string& GameAccountOnlineNotification::session_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.game_utilities.v1.GameAccountOnlineNotification.session_id)
  return *session_id_;
}
inline void GameAccountOnlineNotification::set_session_id(const ::std::string& value) {
  set_has_session_id();
  if (session_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    session_id_ = new ::std::string;
  }
  session_id_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.game_utilities.v1.GameAccountOnlineNotification.session_id)
}
inline void GameAccountOnlineNotification::set_session_id(const char* value) {
  set_has_session_id();
  if (session_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    session_id_ = new ::std::string;
  }
  session_id_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.game_utilities.v1.GameAccountOnlineNotification.session_id)
}
inline void GameAccountOnlineNotification::set_session_id(const char* value, size_t size) {
  set_has_session_id();
  if (session_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    session_id_ = new ::std::string;
  }
  session_id_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.game_utilities.v1.GameAccountOnlineNotification.session_id)
}
inline ::std::string* GameAccountOnlineNotification::mutable_session_id() {
  set_has_session_id();
  if (session_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    session_id_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.game_utilities.v1.GameAccountOnlineNotification.session_id)
  return session_id_;
}
inline ::std::string* GameAccountOnlineNotification::release_session_id() {
  clear_has_session_id();
  if (session_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = session_id_;
    session_id_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void GameAccountOnlineNotification::set_allocated_session_id(::std::string* session_id) {
  if (session_id_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete session_id_;
  }
  if (session_id) {
    set_has_session_id();
    session_id_ = session_id;
  } else {
    clear_has_session_id();
    session_id_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.game_utilities.v1.GameAccountOnlineNotification.session_id)
}

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

// GameAccountOfflineNotification

// required .bgs.protocol.EntityId game_account_id = 1;
inline bool GameAccountOfflineNotification::has_game_account_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GameAccountOfflineNotification::set_has_game_account_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GameAccountOfflineNotification::clear_has_game_account_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GameAccountOfflineNotification::clear_game_account_id() {
  if (game_account_id_ != NULL) game_account_id_->::bgs::protocol::EntityId::Clear();
  clear_has_game_account_id();
}
inline const ::bgs::protocol::EntityId& GameAccountOfflineNotification::game_account_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.game_utilities.v1.GameAccountOfflineNotification.game_account_id)
  return game_account_id_ != NULL ? *game_account_id_ : *default_instance_->game_account_id_;
}
inline ::bgs::protocol::EntityId* GameAccountOfflineNotification::mutable_game_account_id() {
  set_has_game_account_id();
  if (game_account_id_ == NULL) game_account_id_ = new ::bgs::protocol::EntityId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.game_utilities.v1.GameAccountOfflineNotification.game_account_id)
  return game_account_id_;
}
inline ::bgs::protocol::EntityId* GameAccountOfflineNotification::release_game_account_id() {
  clear_has_game_account_id();
  ::bgs::protocol::EntityId* temp = game_account_id_;
  game_account_id_ = NULL;
  return temp;
}
inline void GameAccountOfflineNotification::set_allocated_game_account_id(::bgs::protocol::EntityId* game_account_id) {
  delete game_account_id_;
  game_account_id_ = game_account_id;
  if (game_account_id) {
    set_has_game_account_id();
  } else {
    clear_has_game_account_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.game_utilities.v1.GameAccountOfflineNotification.game_account_id)
}

// optional .bgs.protocol.ProcessId host = 2;
inline bool GameAccountOfflineNotification::has_host() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GameAccountOfflineNotification::set_has_host() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GameAccountOfflineNotification::clear_has_host() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GameAccountOfflineNotification::clear_host() {
  if (host_ != NULL) host_->::bgs::protocol::ProcessId::Clear();
  clear_has_host();
}
inline const ::bgs::protocol::ProcessId& GameAccountOfflineNotification::host() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.game_utilities.v1.GameAccountOfflineNotification.host)
  return host_ != NULL ? *host_ : *default_instance_->host_;
}
inline ::bgs::protocol::ProcessId* GameAccountOfflineNotification::mutable_host() {
  set_has_host();
  if (host_ == NULL) host_ = new ::bgs::protocol::ProcessId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.game_utilities.v1.GameAccountOfflineNotification.host)
  return host_;
}
inline ::bgs::protocol::ProcessId* GameAccountOfflineNotification::release_host() {
  clear_has_host();
  ::bgs::protocol::ProcessId* temp = host_;
  host_ = NULL;
  return temp;
}
inline void GameAccountOfflineNotification::set_allocated_host(::bgs::protocol::ProcessId* host) {
  delete host_;
  host_ = host;
  if (host) {
    set_has_host();
  } else {
    clear_has_host();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.game_utilities.v1.GameAccountOfflineNotification.host)
}

// optional string session_id = 3;
inline bool GameAccountOfflineNotification::has_session_id() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void GameAccountOfflineNotification::set_has_session_id() {
  _has_bits_[0] |= 0x00000004u;
}
inline void GameAccountOfflineNotification::clear_has_session_id() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void GameAccountOfflineNotification::clear_session_id() {
  if (session_id_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    session_id_->clear();
  }
  clear_has_session_id();
}
inline const ::std::string& GameAccountOfflineNotification::session_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.game_utilities.v1.GameAccountOfflineNotification.session_id)
  return *session_id_;
}
inline void GameAccountOfflineNotification::set_session_id(const ::std::string& value) {
  set_has_session_id();
  if (session_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    session_id_ = new ::std::string;
  }
  session_id_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.game_utilities.v1.GameAccountOfflineNotification.session_id)
}
inline void GameAccountOfflineNotification::set_session_id(const char* value) {
  set_has_session_id();
  if (session_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    session_id_ = new ::std::string;
  }
  session_id_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.game_utilities.v1.GameAccountOfflineNotification.session_id)
}
inline void GameAccountOfflineNotification::set_session_id(const char* value, size_t size) {
  set_has_session_id();
  if (session_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    session_id_ = new ::std::string;
  }
  session_id_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.game_utilities.v1.GameAccountOfflineNotification.session_id)
}
inline ::std::string* GameAccountOfflineNotification::mutable_session_id() {
  set_has_session_id();
  if (session_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    session_id_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.game_utilities.v1.GameAccountOfflineNotification.session_id)
  return session_id_;
}
inline ::std::string* GameAccountOfflineNotification::release_session_id() {
  clear_has_session_id();
  if (session_id_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = session_id_;
    session_id_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void GameAccountOfflineNotification::set_allocated_session_id(::std::string* session_id) {
  if (session_id_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete session_id_;
  }
  if (session_id) {
    set_has_session_id();
    session_id_ = session_id;
  } else {
    clear_has_session_id();
    session_id_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.game_utilities.v1.GameAccountOfflineNotification.session_id)
}

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

// GetAchievementsFileRequest

// optional .bgs.protocol.ProcessId host = 1;
inline bool GetAchievementsFileRequest::has_host() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GetAchievementsFileRequest::set_has_host() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GetAchievementsFileRequest::clear_has_host() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GetAchievementsFileRequest::clear_host() {
  if (host_ != NULL) host_->::bgs::protocol::ProcessId::Clear();
  clear_has_host();
}
inline const ::bgs::protocol::ProcessId& GetAchievementsFileRequest::host() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.game_utilities.v1.GetAchievementsFileRequest.host)
  return host_ != NULL ? *host_ : *default_instance_->host_;
}
inline ::bgs::protocol::ProcessId* GetAchievementsFileRequest::mutable_host() {
  set_has_host();
  if (host_ == NULL) host_ = new ::bgs::protocol::ProcessId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.game_utilities.v1.GetAchievementsFileRequest.host)
  return host_;
}
inline ::bgs::protocol::ProcessId* GetAchievementsFileRequest::release_host() {
  clear_has_host();
  ::bgs::protocol::ProcessId* temp = host_;
  host_ = NULL;
  return temp;
}
inline void GetAchievementsFileRequest::set_allocated_host(::bgs::protocol::ProcessId* host) {
  delete host_;
  host_ = host;
  if (host) {
    set_has_host();
  } else {
    clear_has_host();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.game_utilities.v1.GetAchievementsFileRequest.host)
}

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

// GetAchievementsFileResponse

// optional .bgs.protocol.ContentHandle content_handle = 1;
inline bool GetAchievementsFileResponse::has_content_handle() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GetAchievementsFileResponse::set_has_content_handle() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GetAchievementsFileResponse::clear_has_content_handle() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GetAchievementsFileResponse::clear_content_handle() {
  if (content_handle_ != NULL) content_handle_->::bgs::protocol::ContentHandle::Clear();
  clear_has_content_handle();
}
inline const ::bgs::protocol::ContentHandle& GetAchievementsFileResponse::content_handle() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.game_utilities.v1.GetAchievementsFileResponse.content_handle)
  return content_handle_ != NULL ? *content_handle_ : *default_instance_->content_handle_;
}
inline ::bgs::protocol::ContentHandle* GetAchievementsFileResponse::mutable_content_handle() {
  set_has_content_handle();
  if (content_handle_ == NULL) content_handle_ = new ::bgs::protocol::ContentHandle;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.game_utilities.v1.GetAchievementsFileResponse.content_handle)
  return content_handle_;
}
inline ::bgs::protocol::ContentHandle* GetAchievementsFileResponse::release_content_handle() {
  clear_has_content_handle();
  ::bgs::protocol::ContentHandle* temp = content_handle_;
  content_handle_ = NULL;
  return temp;
}
inline void GetAchievementsFileResponse::set_allocated_content_handle(::bgs::protocol::ContentHandle* content_handle) {
  delete content_handle_;
  content_handle_ = content_handle;
  if (content_handle) {
    set_has_content_handle();
  } else {
    clear_has_content_handle();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.game_utilities.v1.GetAchievementsFileResponse.content_handle)
}

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

// GetAllValuesForAttributeRequest

// optional string attribute_key = 1;
inline bool GetAllValuesForAttributeRequest::has_attribute_key() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GetAllValuesForAttributeRequest::set_has_attribute_key() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GetAllValuesForAttributeRequest::clear_has_attribute_key() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GetAllValuesForAttributeRequest::clear_attribute_key() {
  if (attribute_key_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    attribute_key_->clear();
  }
  clear_has_attribute_key();
}
inline const ::std::string& GetAllValuesForAttributeRequest::attribute_key() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.game_utilities.v1.GetAllValuesForAttributeRequest.attribute_key)
  return *attribute_key_;
}
inline void GetAllValuesForAttributeRequest::set_attribute_key(const ::std::string& value) {
  set_has_attribute_key();
  if (attribute_key_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    attribute_key_ = new ::std::string;
  }
  attribute_key_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.game_utilities.v1.GetAllValuesForAttributeRequest.attribute_key)
}
inline void GetAllValuesForAttributeRequest::set_attribute_key(const char* value) {
  set_has_attribute_key();
  if (attribute_key_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    attribute_key_ = new ::std::string;
  }
  attribute_key_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.game_utilities.v1.GetAllValuesForAttributeRequest.attribute_key)
}
inline void GetAllValuesForAttributeRequest::set_attribute_key(const char* value, size_t size) {
  set_has_attribute_key();
  if (attribute_key_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    attribute_key_ = new ::std::string;
  }
  attribute_key_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.game_utilities.v1.GetAllValuesForAttributeRequest.attribute_key)
}
inline ::std::string* GetAllValuesForAttributeRequest::mutable_attribute_key() {
  set_has_attribute_key();
  if (attribute_key_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    attribute_key_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.game_utilities.v1.GetAllValuesForAttributeRequest.attribute_key)
  return attribute_key_;
}
inline ::std::string* GetAllValuesForAttributeRequest::release_attribute_key() {
  clear_has_attribute_key();
  if (attribute_key_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = attribute_key_;
    attribute_key_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void GetAllValuesForAttributeRequest::set_allocated_attribute_key(::std::string* attribute_key) {
  if (attribute_key_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete attribute_key_;
  }
  if (attribute_key) {
    set_has_attribute_key();
    attribute_key_ = attribute_key;
  } else {
    clear_has_attribute_key();
    attribute_key_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.game_utilities.v1.GetAllValuesForAttributeRequest.attribute_key)
}

// optional .bgs.protocol.EntityId agent_id = 2;
inline bool GetAllValuesForAttributeRequest::has_agent_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GetAllValuesForAttributeRequest::set_has_agent_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GetAllValuesForAttributeRequest::clear_has_agent_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GetAllValuesForAttributeRequest::clear_agent_id() {
  if (agent_id_ != NULL) agent_id_->::bgs::protocol::EntityId::Clear();
  clear_has_agent_id();
}
inline const ::bgs::protocol::EntityId& GetAllValuesForAttributeRequest::agent_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.game_utilities.v1.GetAllValuesForAttributeRequest.agent_id)
  return agent_id_ != NULL ? *agent_id_ : *default_instance_->agent_id_;
}
inline ::bgs::protocol::EntityId* GetAllValuesForAttributeRequest::mutable_agent_id() {
  set_has_agent_id();
  if (agent_id_ == NULL) agent_id_ = new ::bgs::protocol::EntityId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.game_utilities.v1.GetAllValuesForAttributeRequest.agent_id)
  return agent_id_;
}
inline ::bgs::protocol::EntityId* GetAllValuesForAttributeRequest::release_agent_id() {
  clear_has_agent_id();
  ::bgs::protocol::EntityId* temp = agent_id_;
  agent_id_ = NULL;
  return temp;
}
inline void GetAllValuesForAttributeRequest::set_allocated_agent_id(::bgs::protocol::EntityId* 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.game_utilities.v1.GetAllValuesForAttributeRequest.agent_id)
}

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

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

// GetAllValuesForAttributeResponse

// repeated .bgs.protocol.Variant attribute_value = 1;
inline int GetAllValuesForAttributeResponse::attribute_value_size() const {
  return attribute_value_.size();
}
inline void GetAllValuesForAttributeResponse::clear_attribute_value() {
  attribute_value_.Clear();
}
inline const ::bgs::protocol::Variant& GetAllValuesForAttributeResponse::attribute_value(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.game_utilities.v1.GetAllValuesForAttributeResponse.attribute_value)
  return attribute_value_.Get(index);
}
inline ::bgs::protocol::Variant* GetAllValuesForAttributeResponse::mutable_attribute_value(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.game_utilities.v1.GetAllValuesForAttributeResponse.attribute_value)
  return attribute_value_.Mutable(index);
}
inline ::bgs::protocol::Variant* GetAllValuesForAttributeResponse::add_attribute_value() {
  // @@protoc_insertion_point(field_add:bgs.protocol.game_utilities.v1.GetAllValuesForAttributeResponse.attribute_value)
  return attribute_value_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::Variant >&
GetAllValuesForAttributeResponse::attribute_value() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.game_utilities.v1.GetAllValuesForAttributeResponse.attribute_value)
  return attribute_value_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::Variant >*
GetAllValuesForAttributeResponse::mutable_attribute_value() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.game_utilities.v1.GetAllValuesForAttributeResponse.attribute_value)
  return &attribute_value_;
}


// @@protoc_insertion_point(namespace_scope)

}  // namespace v1
}  // namespace game_utilities
}  // namespace protocol
}  // namespace bgs

#ifndef SWIG
namespace google {
namespace protobuf {


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

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_game_5futilities_5fservice_2eproto__INCLUDED
