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

#ifndef PROTOBUF_friends_5fservice_2eproto__INCLUDED
#define PROTOBUF_friends_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 "entity_types.pb.h"
#include "friends_types.pb.h"
#include "invitation_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 friends {
namespace v1 {

// Internal implementation detail -- do not call these.
void protobuf_AddDesc_friends_5fservice_2eproto();
void protobuf_AssignDesc_friends_5fservice_2eproto();
void protobuf_ShutdownFile_friends_5fservice_2eproto();

class SubscribeRequest;
class UnsubscribeRequest;
class GenericFriendRequest;
class GenericFriendResponse;
class AssignRoleRequest;
class ViewFriendsRequest;
class ViewFriendsResponse;
class UpdateFriendStateRequest;
class GetFriendListRequest;
class GetFriendListResponse;
class CreateFriendshipRequest;
class FriendNotification;
class UpdateFriendStateNotification;
class InvitationNotification;

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

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

  SubscribeRequest(const SubscribeRequest& from);

  inline SubscribeRequest& operator=(const SubscribeRequest& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const SubscribeRequest& default_instance();

  void Swap(SubscribeRequest* other);

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

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

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

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

  // optional .bgs.protocol.EntityId agent_id = 1;
  inline bool has_agent_id() const;
  inline void clear_agent_id();
  static const int kAgentIdFieldNumber = 1;
  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);

  // required uint64 object_id = 2;
  inline bool has_object_id() const;
  inline void clear_object_id();
  static const int kObjectIdFieldNumber = 2;
  inline ::google::protobuf::uint64 object_id() const;
  inline void set_object_id(::google::protobuf::uint64 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.friends.v1.SubscribeRequest)
 private:
  inline void set_has_agent_id();
  inline void clear_has_agent_id();
  inline void set_has_object_id();
  inline void clear_has_object_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::EntityId* agent_id_;
  ::google::protobuf::uint64 object_id_;
  friend void protobuf_AddDesc_friends_5fservice_2eproto();
  friend void protobuf_AssignDesc_friends_5fservice_2eproto();
  friend void protobuf_ShutdownFile_friends_5fservice_2eproto();

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

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

  UnsubscribeRequest(const UnsubscribeRequest& from);

  inline UnsubscribeRequest& operator=(const UnsubscribeRequest& from) {
    CopyFrom(from);
    return *this;
  }

  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
    return _unknown_fields_;
  }

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return &_unknown_fields_;
  }

  static const ::google::protobuf::Descriptor* descriptor();
  static const UnsubscribeRequest& default_instance();

  void Swap(UnsubscribeRequest* other);

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

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

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

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

  // optional .bgs.protocol.EntityId agent_id = 1;
  inline bool has_agent_id() const;
  inline void clear_agent_id();
  static const int kAgentIdFieldNumber = 1;
  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 uint64 object_id = 2;
  inline bool has_object_id() const;
  inline void clear_object_id();
  static const int kObjectIdFieldNumber = 2;
  inline ::google::protobuf::uint64 object_id() const;
  inline void set_object_id(::google::protobuf::uint64 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.friends.v1.UnsubscribeRequest)
 private:
  inline void set_has_agent_id();
  inline void clear_has_agent_id();
  inline void set_has_object_id();
  inline void clear_has_object_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::EntityId* agent_id_;
  ::google::protobuf::uint64 object_id_;
  friend void protobuf_AddDesc_friends_5fservice_2eproto();
  friend void protobuf_AssignDesc_friends_5fservice_2eproto();
  friend void protobuf_ShutdownFile_friends_5fservice_2eproto();

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

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

  GenericFriendRequest(const GenericFriendRequest& from);

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

  void Swap(GenericFriendRequest* other);

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

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

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

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

  // optional .bgs.protocol.EntityId agent_id = 1;
  inline bool has_agent_id() const;
  inline void clear_agent_id();
  static const int kAgentIdFieldNumber = 1;
  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);

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

  // @@protoc_insertion_point(class_scope:bgs.protocol.friends.v1.GenericFriendRequest)
 private:
  inline void set_has_agent_id();
  inline void clear_has_agent_id();
  inline void set_has_target_id();
  inline void clear_has_target_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::EntityId* agent_id_;
  ::bgs::protocol::EntityId* target_id_;
  friend void protobuf_AddDesc_friends_5fservice_2eproto();
  friend void protobuf_AssignDesc_friends_5fservice_2eproto();
  friend void protobuf_ShutdownFile_friends_5fservice_2eproto();

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

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

  GenericFriendResponse(const GenericFriendResponse& from);

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

  void Swap(GenericFriendResponse* other);

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

  GenericFriendResponse* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GenericFriendResponse& from);
  void MergeFrom(const GenericFriendResponse& 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.friends.v1.Friend target_friend = 1;
  inline bool has_target_friend() const;
  inline void clear_target_friend();
  static const int kTargetFriendFieldNumber = 1;
  inline const ::bgs::protocol::friends::v1::Friend& target_friend() const;
  inline ::bgs::protocol::friends::v1::Friend* mutable_target_friend();
  inline ::bgs::protocol::friends::v1::Friend* release_target_friend();
  inline void set_allocated_target_friend(::bgs::protocol::friends::v1::Friend* target_friend);

  // @@protoc_insertion_point(class_scope:bgs.protocol.friends.v1.GenericFriendResponse)
 private:
  inline void set_has_target_friend();
  inline void clear_has_target_friend();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::friends::v1::Friend* target_friend_;
  friend void protobuf_AddDesc_friends_5fservice_2eproto();
  friend void protobuf_AssignDesc_friends_5fservice_2eproto();
  friend void protobuf_ShutdownFile_friends_5fservice_2eproto();

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

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

  AssignRoleRequest(const AssignRoleRequest& from);

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

  void Swap(AssignRoleRequest* other);

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

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

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

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

  // optional .bgs.protocol.EntityId agent_id = 1;
  inline bool has_agent_id() const;
  inline void clear_agent_id();
  static const int kAgentIdFieldNumber = 1;
  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);

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

  // repeated int32 role = 3;
  inline int role_size() const;
  inline void clear_role();
  static const int kRoleFieldNumber = 3;
  inline ::google::protobuf::int32 role(int index) const;
  inline void set_role(int index, ::google::protobuf::int32 value);
  inline void add_role(::google::protobuf::int32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      role() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_role();

  // @@protoc_insertion_point(class_scope:bgs.protocol.friends.v1.AssignRoleRequest)
 private:
  inline void set_has_agent_id();
  inline void clear_has_agent_id();
  inline void set_has_target_id();
  inline void clear_has_target_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::EntityId* agent_id_;
  ::bgs::protocol::EntityId* target_id_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > role_;
  friend void protobuf_AddDesc_friends_5fservice_2eproto();
  friend void protobuf_AssignDesc_friends_5fservice_2eproto();
  friend void protobuf_ShutdownFile_friends_5fservice_2eproto();

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

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

  ViewFriendsRequest(const ViewFriendsRequest& from);

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

  void Swap(ViewFriendsRequest* other);

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

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

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

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

  // optional .bgs.protocol.EntityId agent_id = 1;
  inline bool has_agent_id() const;
  inline void clear_agent_id();
  static const int kAgentIdFieldNumber = 1;
  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);

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

  // repeated uint32 role = 3 [packed = true];
  inline int role_size() const;
  inline void clear_role();
  static const int kRoleFieldNumber = 3;
  inline ::google::protobuf::uint32 role(int index) const;
  inline void set_role(int index, ::google::protobuf::uint32 value);
  inline void add_role(::google::protobuf::uint32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
      role() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
      mutable_role();

  // @@protoc_insertion_point(class_scope:bgs.protocol.friends.v1.ViewFriendsRequest)
 private:
  inline void set_has_agent_id();
  inline void clear_has_agent_id();
  inline void set_has_target_id();
  inline void clear_has_target_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::EntityId* agent_id_;
  ::bgs::protocol::EntityId* target_id_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > role_;
  mutable int _role_cached_byte_size_;
  friend void protobuf_AddDesc_friends_5fservice_2eproto();
  friend void protobuf_AssignDesc_friends_5fservice_2eproto();
  friend void protobuf_ShutdownFile_friends_5fservice_2eproto();

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

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

  ViewFriendsResponse(const ViewFriendsResponse& from);

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

  void Swap(ViewFriendsResponse* other);

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

  ViewFriendsResponse* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const ViewFriendsResponse& from);
  void MergeFrom(const ViewFriendsResponse& 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.friends.v1.FriendOfFriend friends = 1;
  inline int friends_size() const;
  inline void clear_friends();
  static const int kFriendsFieldNumber = 1;
  inline const ::bgs::protocol::friends::v1::FriendOfFriend& friends(int index) const;
  inline ::bgs::protocol::friends::v1::FriendOfFriend* mutable_friends(int index);
  inline ::bgs::protocol::friends::v1::FriendOfFriend* add_friends();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::friends::v1::FriendOfFriend >&
      friends() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::friends::v1::FriendOfFriend >*
      mutable_friends();

  // @@protoc_insertion_point(class_scope:bgs.protocol.friends.v1.ViewFriendsResponse)
 private:

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::friends::v1::FriendOfFriend > friends_;
  friend void protobuf_AddDesc_friends_5fservice_2eproto();
  friend void protobuf_AssignDesc_friends_5fservice_2eproto();
  friend void protobuf_ShutdownFile_friends_5fservice_2eproto();

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

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

  UpdateFriendStateRequest(const UpdateFriendStateRequest& from);

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

  void Swap(UpdateFriendStateRequest* other);

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

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

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

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

  // optional .bgs.protocol.EntityId agent_id = 1;
  inline bool has_agent_id() const;
  inline void clear_agent_id();
  static const int kAgentIdFieldNumber = 1;
  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);

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

  // repeated .bgs.protocol.Attribute attribute = 3;
  inline int attribute_size() const;
  inline void clear_attribute();
  static const int kAttributeFieldNumber = 3;
  inline const ::bgs::protocol::Attribute& attribute(int index) const;
  inline ::bgs::protocol::Attribute* mutable_attribute(int index);
  inline ::bgs::protocol::Attribute* add_attribute();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::Attribute >&
      attribute() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::Attribute >*
      mutable_attribute();

  // optional uint64 attributes_epoch = 4;
  inline bool has_attributes_epoch() const;
  inline void clear_attributes_epoch();
  static const int kAttributesEpochFieldNumber = 4;
  inline ::google::protobuf::uint64 attributes_epoch() const;
  inline void set_attributes_epoch(::google::protobuf::uint64 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.friends.v1.UpdateFriendStateRequest)
 private:
  inline void set_has_agent_id();
  inline void clear_has_agent_id();
  inline void set_has_target_id();
  inline void clear_has_target_id();
  inline void set_has_attributes_epoch();
  inline void clear_has_attributes_epoch();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::EntityId* agent_id_;
  ::bgs::protocol::EntityId* target_id_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::Attribute > attribute_;
  ::google::protobuf::uint64 attributes_epoch_;
  friend void protobuf_AddDesc_friends_5fservice_2eproto();
  friend void protobuf_AssignDesc_friends_5fservice_2eproto();
  friend void protobuf_ShutdownFile_friends_5fservice_2eproto();

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

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

  GetFriendListRequest(const GetFriendListRequest& from);

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

  void Swap(GetFriendListRequest* other);

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

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

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

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

  // optional .bgs.protocol.EntityId agent_id = 1;
  inline bool has_agent_id() const;
  inline void clear_agent_id();
  static const int kAgentIdFieldNumber = 1;
  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 .bgs.protocol.EntityId target_id = 2;
  inline bool has_target_id() const;
  inline void clear_target_id();
  static const int kTargetIdFieldNumber = 2;
  inline const ::bgs::protocol::EntityId& target_id() const;
  inline ::bgs::protocol::EntityId* mutable_target_id();
  inline ::bgs::protocol::EntityId* release_target_id();
  inline void set_allocated_target_id(::bgs::protocol::EntityId* target_id);

  // @@protoc_insertion_point(class_scope:bgs.protocol.friends.v1.GetFriendListRequest)
 private:
  inline void set_has_agent_id();
  inline void clear_has_agent_id();
  inline void set_has_target_id();
  inline void clear_has_target_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::EntityId* agent_id_;
  ::bgs::protocol::EntityId* target_id_;
  friend void protobuf_AddDesc_friends_5fservice_2eproto();
  friend void protobuf_AssignDesc_friends_5fservice_2eproto();
  friend void protobuf_ShutdownFile_friends_5fservice_2eproto();

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

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

  GetFriendListResponse(const GetFriendListResponse& from);

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

  void Swap(GetFriendListResponse* other);

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

  GetFriendListResponse* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GetFriendListResponse& from);
  void MergeFrom(const GetFriendListResponse& 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.friends.v1.Friend friends = 1;
  inline int friends_size() const;
  inline void clear_friends();
  static const int kFriendsFieldNumber = 1;
  inline const ::bgs::protocol::friends::v1::Friend& friends(int index) const;
  inline ::bgs::protocol::friends::v1::Friend* mutable_friends(int index);
  inline ::bgs::protocol::friends::v1::Friend* add_friends();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::friends::v1::Friend >&
      friends() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::friends::v1::Friend >*
      mutable_friends();

  // @@protoc_insertion_point(class_scope:bgs.protocol.friends.v1.GetFriendListResponse)
 private:

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::friends::v1::Friend > friends_;
  friend void protobuf_AddDesc_friends_5fservice_2eproto();
  friend void protobuf_AssignDesc_friends_5fservice_2eproto();
  friend void protobuf_ShutdownFile_friends_5fservice_2eproto();

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

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

  CreateFriendshipRequest(const CreateFriendshipRequest& from);

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

  void Swap(CreateFriendshipRequest* other);

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

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

  int ByteSize() const;
  bool MergePartialFromCodedStream(
      ::google::protobuf::io::CodedInputStream* input);
  void SerializeWithCachedSizes(
      ::google::protobuf::io::CodedOutputStream* output) const;
  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
  int GetCachedSize() const { return _cached_size_; }
  private:
  void SharedCtor();
  void SharedDtor();
  void SetCachedSize(int size) const;
  public:
  ::google::protobuf::Metadata GetMetadata() const;

  // nested types ----------------------------------------------------

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

  // optional .bgs.protocol.EntityId inviter_id = 1;
  inline bool has_inviter_id() const;
  inline void clear_inviter_id();
  static const int kInviterIdFieldNumber = 1;
  inline const ::bgs::protocol::EntityId& inviter_id() const;
  inline ::bgs::protocol::EntityId* mutable_inviter_id();
  inline ::bgs::protocol::EntityId* release_inviter_id();
  inline void set_allocated_inviter_id(::bgs::protocol::EntityId* inviter_id);

  // optional .bgs.protocol.EntityId invitee_id = 2;
  inline bool has_invitee_id() const;
  inline void clear_invitee_id();
  static const int kInviteeIdFieldNumber = 2;
  inline const ::bgs::protocol::EntityId& invitee_id() const;
  inline ::bgs::protocol::EntityId* mutable_invitee_id();
  inline ::bgs::protocol::EntityId* release_invitee_id();
  inline void set_allocated_invitee_id(::bgs::protocol::EntityId* invitee_id);

  // repeated uint32 role = 3 [packed = true];
  inline int role_size() const;
  inline void clear_role();
  static const int kRoleFieldNumber = 3;
  inline ::google::protobuf::uint32 role(int index) const;
  inline void set_role(int index, ::google::protobuf::uint32 value);
  inline void add_role(::google::protobuf::uint32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
      role() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
      mutable_role();

  // @@protoc_insertion_point(class_scope:bgs.protocol.friends.v1.CreateFriendshipRequest)
 private:
  inline void set_has_inviter_id();
  inline void clear_has_inviter_id();
  inline void set_has_invitee_id();
  inline void clear_has_invitee_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::EntityId* inviter_id_;
  ::bgs::protocol::EntityId* invitee_id_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > role_;
  mutable int _role_cached_byte_size_;
  friend void protobuf_AddDesc_friends_5fservice_2eproto();
  friend void protobuf_AssignDesc_friends_5fservice_2eproto();
  friend void protobuf_ShutdownFile_friends_5fservice_2eproto();

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

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

  FriendNotification(const FriendNotification& from);

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

  void Swap(FriendNotification* other);

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

  FriendNotification* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const FriendNotification& from);
  void MergeFrom(const FriendNotification& 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.friends.v1.Friend target = 1;
  inline bool has_target() const;
  inline void clear_target();
  static const int kTargetFieldNumber = 1;
  inline const ::bgs::protocol::friends::v1::Friend& target() const;
  inline ::bgs::protocol::friends::v1::Friend* mutable_target();
  inline ::bgs::protocol::friends::v1::Friend* release_target();
  inline void set_allocated_target(::bgs::protocol::friends::v1::Friend* target);

  // optional .bgs.protocol.EntityId game_account_id = 2;
  inline bool has_game_account_id() const;
  inline void clear_game_account_id();
  static const int kGameAccountIdFieldNumber = 2;
  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 peer = 4;
  inline bool has_peer() const;
  inline void clear_peer();
  static const int kPeerFieldNumber = 4;
  inline const ::bgs::protocol::ProcessId& peer() const;
  inline ::bgs::protocol::ProcessId* mutable_peer();
  inline ::bgs::protocol::ProcessId* release_peer();
  inline void set_allocated_peer(::bgs::protocol::ProcessId* peer);

  // optional .bgs.protocol.EntityId account_id = 5;
  inline bool has_account_id() const;
  inline void clear_account_id();
  static const int kAccountIdFieldNumber = 5;
  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);

  // @@protoc_insertion_point(class_scope:bgs.protocol.friends.v1.FriendNotification)
 private:
  inline void set_has_target();
  inline void clear_has_target();
  inline void set_has_game_account_id();
  inline void clear_has_game_account_id();
  inline void set_has_peer();
  inline void clear_has_peer();
  inline void set_has_account_id();
  inline void clear_has_account_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::friends::v1::Friend* target_;
  ::bgs::protocol::EntityId* game_account_id_;
  ::bgs::protocol::ProcessId* peer_;
  ::bgs::protocol::EntityId* account_id_;
  friend void protobuf_AddDesc_friends_5fservice_2eproto();
  friend void protobuf_AssignDesc_friends_5fservice_2eproto();
  friend void protobuf_ShutdownFile_friends_5fservice_2eproto();

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

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

  UpdateFriendStateNotification(const UpdateFriendStateNotification& from);

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

  void Swap(UpdateFriendStateNotification* other);

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

  UpdateFriendStateNotification* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const UpdateFriendStateNotification& from);
  void MergeFrom(const UpdateFriendStateNotification& 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.friends.v1.Friend changed_friend = 1;
  inline bool has_changed_friend() const;
  inline void clear_changed_friend();
  static const int kChangedFriendFieldNumber = 1;
  inline const ::bgs::protocol::friends::v1::Friend& changed_friend() const;
  inline ::bgs::protocol::friends::v1::Friend* mutable_changed_friend();
  inline ::bgs::protocol::friends::v1::Friend* release_changed_friend();
  inline void set_allocated_changed_friend(::bgs::protocol::friends::v1::Friend* changed_friend);

  // optional .bgs.protocol.EntityId game_account_id = 2;
  inline bool has_game_account_id() const;
  inline void clear_game_account_id();
  static const int kGameAccountIdFieldNumber = 2;
  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 peer = 4;
  inline bool has_peer() const;
  inline void clear_peer();
  static const int kPeerFieldNumber = 4;
  inline const ::bgs::protocol::ProcessId& peer() const;
  inline ::bgs::protocol::ProcessId* mutable_peer();
  inline ::bgs::protocol::ProcessId* release_peer();
  inline void set_allocated_peer(::bgs::protocol::ProcessId* peer);

  // optional .bgs.protocol.EntityId account_id = 5;
  inline bool has_account_id() const;
  inline void clear_account_id();
  static const int kAccountIdFieldNumber = 5;
  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);

  // @@protoc_insertion_point(class_scope:bgs.protocol.friends.v1.UpdateFriendStateNotification)
 private:
  inline void set_has_changed_friend();
  inline void clear_has_changed_friend();
  inline void set_has_game_account_id();
  inline void clear_has_game_account_id();
  inline void set_has_peer();
  inline void clear_has_peer();
  inline void set_has_account_id();
  inline void clear_has_account_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::friends::v1::Friend* changed_friend_;
  ::bgs::protocol::EntityId* game_account_id_;
  ::bgs::protocol::ProcessId* peer_;
  ::bgs::protocol::EntityId* account_id_;
  friend void protobuf_AddDesc_friends_5fservice_2eproto();
  friend void protobuf_AssignDesc_friends_5fservice_2eproto();
  friend void protobuf_ShutdownFile_friends_5fservice_2eproto();

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

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

  InvitationNotification(const InvitationNotification& from);

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

  void Swap(InvitationNotification* other);

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

  InvitationNotification* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const InvitationNotification& from);
  void MergeFrom(const InvitationNotification& 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.Invitation invitation = 1;
  inline bool has_invitation() const;
  inline void clear_invitation();
  static const int kInvitationFieldNumber = 1;
  inline const ::bgs::protocol::Invitation& invitation() const;
  inline ::bgs::protocol::Invitation* mutable_invitation();
  inline ::bgs::protocol::Invitation* release_invitation();
  inline void set_allocated_invitation(::bgs::protocol::Invitation* invitation);

  // optional .bgs.protocol.EntityId game_account_id = 2;
  inline bool has_game_account_id() const;
  inline void clear_game_account_id();
  static const int kGameAccountIdFieldNumber = 2;
  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 uint32 reason = 3 [default = 0];
  inline bool has_reason() const;
  inline void clear_reason();
  static const int kReasonFieldNumber = 3;
  inline ::google::protobuf::uint32 reason() const;
  inline void set_reason(::google::protobuf::uint32 value);

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

  // optional .bgs.protocol.EntityId account_id = 5;
  inline bool has_account_id() const;
  inline void clear_account_id();
  static const int kAccountIdFieldNumber = 5;
  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);

  // @@protoc_insertion_point(class_scope:bgs.protocol.friends.v1.InvitationNotification)
 private:
  inline void set_has_invitation();
  inline void clear_has_invitation();
  inline void set_has_game_account_id();
  inline void clear_has_game_account_id();
  inline void set_has_reason();
  inline void clear_has_reason();
  inline void set_has_peer();
  inline void clear_has_peer();
  inline void set_has_account_id();
  inline void clear_has_account_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::Invitation* invitation_;
  ::bgs::protocol::EntityId* game_account_id_;
  ::bgs::protocol::ProcessId* peer_;
  ::bgs::protocol::EntityId* account_id_;
  ::google::protobuf::uint32 reason_;
  friend void protobuf_AddDesc_friends_5fservice_2eproto();
  friend void protobuf_AssignDesc_friends_5fservice_2eproto();
  friend void protobuf_ShutdownFile_friends_5fservice_2eproto();

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

class FriendsService : public ServiceBase
{
 public:

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

  typedef std::integral_constant<uint32, 0xA3DDB1BDu> OriginalHash;
  typedef std::integral_constant<uint32, 0xABDFED63u> NameHash;

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

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

  void Subscribe(::bgs::protocol::friends::v1::SubscribeRequest const* request, std::function<void(::bgs::protocol::friends::v1::SubscribeResponse const*)> responseCallback);
  void SendInvitation(::bgs::protocol::SendInvitationRequest const* request, std::function<void(::bgs::protocol::NoData const*)> responseCallback);
  void AcceptInvitation(::bgs::protocol::GenericInvitationRequest const* request, std::function<void(::bgs::protocol::NoData const*)> responseCallback);
  void RevokeInvitation(::bgs::protocol::GenericInvitationRequest const* request, std::function<void(::bgs::protocol::NoData const*)> responseCallback);
  void DeclineInvitation(::bgs::protocol::GenericInvitationRequest const* request, std::function<void(::bgs::protocol::NoData const*)> responseCallback);
  void IgnoreInvitation(::bgs::protocol::GenericInvitationRequest const* request, std::function<void(::bgs::protocol::NoData const*)> responseCallback);
  void AssignRole(::bgs::protocol::friends::v1::AssignRoleRequest const* request, std::function<void(::bgs::protocol::NoData const*)> responseCallback);
  void RemoveFriend(::bgs::protocol::friends::v1::GenericFriendRequest const* request, std::function<void(::bgs::protocol::friends::v1::GenericFriendResponse const*)> responseCallback);
  void ViewFriends(::bgs::protocol::friends::v1::ViewFriendsRequest const* request, std::function<void(::bgs::protocol::friends::v1::ViewFriendsResponse const*)> responseCallback);
  void UpdateFriendState(::bgs::protocol::friends::v1::UpdateFriendStateRequest const* request, std::function<void(::bgs::protocol::NoData const*)> responseCallback);
  void Unsubscribe(::bgs::protocol::friends::v1::UnsubscribeRequest const* request, std::function<void(::bgs::protocol::NoData const*)> responseCallback);
  void RevokeAllInvitations(::bgs::protocol::friends::v1::GenericFriendRequest const* request, std::function<void(::bgs::protocol::NoData const*)> responseCallback);
  void GetFriendList(::bgs::protocol::friends::v1::GetFriendListRequest const* request, std::function<void(::bgs::protocol::friends::v1::GetFriendListResponse const*)> responseCallback);
  void CreateFriendship(::bgs::protocol::friends::v1::CreateFriendshipRequest const* request, std::function<void(::bgs::protocol::NoData const*)> responseCallback);
  // server methods --------------------------------------------------

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

 protected:
  virtual uint32 HandleSubscribe(::bgs::protocol::friends::v1::SubscribeRequest const* request, ::bgs::protocol::friends::v1::SubscribeResponse* response);
  virtual uint32 HandleSendInvitation(::bgs::protocol::SendInvitationRequest const* request, ::bgs::protocol::NoData* response);
  virtual uint32 HandleAcceptInvitation(::bgs::protocol::GenericInvitationRequest const* request, ::bgs::protocol::NoData* response);
  virtual uint32 HandleRevokeInvitation(::bgs::protocol::GenericInvitationRequest const* request, ::bgs::protocol::NoData* response);
  virtual uint32 HandleDeclineInvitation(::bgs::protocol::GenericInvitationRequest const* request, ::bgs::protocol::NoData* response);
  virtual uint32 HandleIgnoreInvitation(::bgs::protocol::GenericInvitationRequest const* request, ::bgs::protocol::NoData* response);
  virtual uint32 HandleAssignRole(::bgs::protocol::friends::v1::AssignRoleRequest const* request, ::bgs::protocol::NoData* response);
  virtual uint32 HandleRemoveFriend(::bgs::protocol::friends::v1::GenericFriendRequest const* request, ::bgs::protocol::friends::v1::GenericFriendResponse* response);
  virtual uint32 HandleViewFriends(::bgs::protocol::friends::v1::ViewFriendsRequest const* request, ::bgs::protocol::friends::v1::ViewFriendsResponse* response);
  virtual uint32 HandleUpdateFriendState(::bgs::protocol::friends::v1::UpdateFriendStateRequest const* request, ::bgs::protocol::NoData* response);
  virtual uint32 HandleUnsubscribe(::bgs::protocol::friends::v1::UnsubscribeRequest const* request, ::bgs::protocol::NoData* response);
  virtual uint32 HandleRevokeAllInvitations(::bgs::protocol::friends::v1::GenericFriendRequest const* request, ::bgs::protocol::NoData* response);
  virtual uint32 HandleGetFriendList(::bgs::protocol::friends::v1::GetFriendListRequest const* request, ::bgs::protocol::friends::v1::GetFriendListResponse* response);
  virtual uint32 HandleCreateFriendship(::bgs::protocol::friends::v1::CreateFriendshipRequest const* request, ::bgs::protocol::NoData* response);

 private:
  uint32 service_hash_;

  GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FriendsService);
};

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

class FriendsListener : public ServiceBase
{
 public:

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

  typedef std::integral_constant<uint32, 0x6F259A13u> OriginalHash;
  typedef std::integral_constant<uint32, 0xA6717548u> NameHash;

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

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

  void OnFriendAdded(::bgs::protocol::friends::v1::FriendNotification const* request);
  void OnFriendRemoved(::bgs::protocol::friends::v1::FriendNotification const* request);
  void OnReceivedInvitationAdded(::bgs::protocol::friends::v1::InvitationNotification const* request);
  void OnReceivedInvitationRemoved(::bgs::protocol::friends::v1::InvitationNotification const* request);
  void OnSentInvitationAdded(::bgs::protocol::friends::v1::InvitationNotification const* request);
  void OnSentInvitationRemoved(::bgs::protocol::friends::v1::InvitationNotification const* request);
  void OnUpdateFriendState(::bgs::protocol::friends::v1::UpdateFriendStateNotification const* request);
  // server methods --------------------------------------------------

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

 protected:
  virtual uint32 HandleOnFriendAdded(::bgs::protocol::friends::v1::FriendNotification const* request);
  virtual uint32 HandleOnFriendRemoved(::bgs::protocol::friends::v1::FriendNotification const* request);
  virtual uint32 HandleOnReceivedInvitationAdded(::bgs::protocol::friends::v1::InvitationNotification const* request);
  virtual uint32 HandleOnReceivedInvitationRemoved(::bgs::protocol::friends::v1::InvitationNotification const* request);
  virtual uint32 HandleOnSentInvitationAdded(::bgs::protocol::friends::v1::InvitationNotification const* request);
  virtual uint32 HandleOnSentInvitationRemoved(::bgs::protocol::friends::v1::InvitationNotification const* request);
  virtual uint32 HandleOnUpdateFriendState(::bgs::protocol::friends::v1::UpdateFriendStateNotification const* request);

 private:
  uint32 service_hash_;

  GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FriendsListener);
};

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


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

// SubscribeRequest

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

// required uint64 object_id = 2;
inline bool SubscribeRequest::has_object_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void SubscribeRequest::set_has_object_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void SubscribeRequest::clear_has_object_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void SubscribeRequest::clear_object_id() {
  object_id_ = GOOGLE_ULONGLONG(0);
  clear_has_object_id();
}
inline ::google::protobuf::uint64 SubscribeRequest::object_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.SubscribeRequest.object_id)
  return object_id_;
}
inline void SubscribeRequest::set_object_id(::google::protobuf::uint64 value) {
  set_has_object_id();
  object_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.friends.v1.SubscribeRequest.object_id)
}

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

// UnsubscribeRequest

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

// optional uint64 object_id = 2;
inline bool UnsubscribeRequest::has_object_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void UnsubscribeRequest::set_has_object_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void UnsubscribeRequest::clear_has_object_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void UnsubscribeRequest::clear_object_id() {
  object_id_ = GOOGLE_ULONGLONG(0);
  clear_has_object_id();
}
inline ::google::protobuf::uint64 UnsubscribeRequest::object_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.UnsubscribeRequest.object_id)
  return object_id_;
}
inline void UnsubscribeRequest::set_object_id(::google::protobuf::uint64 value) {
  set_has_object_id();
  object_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.friends.v1.UnsubscribeRequest.object_id)
}

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

// GenericFriendRequest

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

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

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

// GenericFriendResponse

// optional .bgs.protocol.friends.v1.Friend target_friend = 1;
inline bool GenericFriendResponse::has_target_friend() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GenericFriendResponse::set_has_target_friend() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GenericFriendResponse::clear_has_target_friend() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GenericFriendResponse::clear_target_friend() {
  if (target_friend_ != NULL) target_friend_->::bgs::protocol::friends::v1::Friend::Clear();
  clear_has_target_friend();
}
inline const ::bgs::protocol::friends::v1::Friend& GenericFriendResponse::target_friend() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.GenericFriendResponse.target_friend)
  return target_friend_ != NULL ? *target_friend_ : *default_instance_->target_friend_;
}
inline ::bgs::protocol::friends::v1::Friend* GenericFriendResponse::mutable_target_friend() {
  set_has_target_friend();
  if (target_friend_ == NULL) target_friend_ = new ::bgs::protocol::friends::v1::Friend;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.friends.v1.GenericFriendResponse.target_friend)
  return target_friend_;
}
inline ::bgs::protocol::friends::v1::Friend* GenericFriendResponse::release_target_friend() {
  clear_has_target_friend();
  ::bgs::protocol::friends::v1::Friend* temp = target_friend_;
  target_friend_ = NULL;
  return temp;
}
inline void GenericFriendResponse::set_allocated_target_friend(::bgs::protocol::friends::v1::Friend* target_friend) {
  delete target_friend_;
  target_friend_ = target_friend;
  if (target_friend) {
    set_has_target_friend();
  } else {
    clear_has_target_friend();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.friends.v1.GenericFriendResponse.target_friend)
}

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

// AssignRoleRequest

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

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

// repeated int32 role = 3;
inline int AssignRoleRequest::role_size() const {
  return role_.size();
}
inline void AssignRoleRequest::clear_role() {
  role_.Clear();
}
inline ::google::protobuf::int32 AssignRoleRequest::role(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.AssignRoleRequest.role)
  return role_.Get(index);
}
inline void AssignRoleRequest::set_role(int index, ::google::protobuf::int32 value) {
  role_.Set(index, value);
  // @@protoc_insertion_point(field_set:bgs.protocol.friends.v1.AssignRoleRequest.role)
}
inline void AssignRoleRequest::add_role(::google::protobuf::int32 value) {
  role_.Add(value);
  // @@protoc_insertion_point(field_add:bgs.protocol.friends.v1.AssignRoleRequest.role)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
AssignRoleRequest::role() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.friends.v1.AssignRoleRequest.role)
  return role_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
AssignRoleRequest::mutable_role() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.friends.v1.AssignRoleRequest.role)
  return &role_;
}

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

// ViewFriendsRequest

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

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

// repeated uint32 role = 3 [packed = true];
inline int ViewFriendsRequest::role_size() const {
  return role_.size();
}
inline void ViewFriendsRequest::clear_role() {
  role_.Clear();
}
inline ::google::protobuf::uint32 ViewFriendsRequest::role(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.ViewFriendsRequest.role)
  return role_.Get(index);
}
inline void ViewFriendsRequest::set_role(int index, ::google::protobuf::uint32 value) {
  role_.Set(index, value);
  // @@protoc_insertion_point(field_set:bgs.protocol.friends.v1.ViewFriendsRequest.role)
}
inline void ViewFriendsRequest::add_role(::google::protobuf::uint32 value) {
  role_.Add(value);
  // @@protoc_insertion_point(field_add:bgs.protocol.friends.v1.ViewFriendsRequest.role)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
ViewFriendsRequest::role() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.friends.v1.ViewFriendsRequest.role)
  return role_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
ViewFriendsRequest::mutable_role() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.friends.v1.ViewFriendsRequest.role)
  return &role_;
}

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

// ViewFriendsResponse

// repeated .bgs.protocol.friends.v1.FriendOfFriend friends = 1;
inline int ViewFriendsResponse::friends_size() const {
  return friends_.size();
}
inline void ViewFriendsResponse::clear_friends() {
  friends_.Clear();
}
inline const ::bgs::protocol::friends::v1::FriendOfFriend& ViewFriendsResponse::friends(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.ViewFriendsResponse.friends)
  return friends_.Get(index);
}
inline ::bgs::protocol::friends::v1::FriendOfFriend* ViewFriendsResponse::mutable_friends(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.friends.v1.ViewFriendsResponse.friends)
  return friends_.Mutable(index);
}
inline ::bgs::protocol::friends::v1::FriendOfFriend* ViewFriendsResponse::add_friends() {
  // @@protoc_insertion_point(field_add:bgs.protocol.friends.v1.ViewFriendsResponse.friends)
  return friends_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::friends::v1::FriendOfFriend >&
ViewFriendsResponse::friends() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.friends.v1.ViewFriendsResponse.friends)
  return friends_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::friends::v1::FriendOfFriend >*
ViewFriendsResponse::mutable_friends() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.friends.v1.ViewFriendsResponse.friends)
  return &friends_;
}

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

// UpdateFriendStateRequest

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

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

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

// optional uint64 attributes_epoch = 4;
inline bool UpdateFriendStateRequest::has_attributes_epoch() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void UpdateFriendStateRequest::set_has_attributes_epoch() {
  _has_bits_[0] |= 0x00000008u;
}
inline void UpdateFriendStateRequest::clear_has_attributes_epoch() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void UpdateFriendStateRequest::clear_attributes_epoch() {
  attributes_epoch_ = GOOGLE_ULONGLONG(0);
  clear_has_attributes_epoch();
}
inline ::google::protobuf::uint64 UpdateFriendStateRequest::attributes_epoch() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.UpdateFriendStateRequest.attributes_epoch)
  return attributes_epoch_;
}
inline void UpdateFriendStateRequest::set_attributes_epoch(::google::protobuf::uint64 value) {
  set_has_attributes_epoch();
  attributes_epoch_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.friends.v1.UpdateFriendStateRequest.attributes_epoch)
}

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

// GetFriendListRequest

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

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

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

// GetFriendListResponse

// repeated .bgs.protocol.friends.v1.Friend friends = 1;
inline int GetFriendListResponse::friends_size() const {
  return friends_.size();
}
inline void GetFriendListResponse::clear_friends() {
  friends_.Clear();
}
inline const ::bgs::protocol::friends::v1::Friend& GetFriendListResponse::friends(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.GetFriendListResponse.friends)
  return friends_.Get(index);
}
inline ::bgs::protocol::friends::v1::Friend* GetFriendListResponse::mutable_friends(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.friends.v1.GetFriendListResponse.friends)
  return friends_.Mutable(index);
}
inline ::bgs::protocol::friends::v1::Friend* GetFriendListResponse::add_friends() {
  // @@protoc_insertion_point(field_add:bgs.protocol.friends.v1.GetFriendListResponse.friends)
  return friends_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::friends::v1::Friend >&
GetFriendListResponse::friends() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.friends.v1.GetFriendListResponse.friends)
  return friends_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::friends::v1::Friend >*
GetFriendListResponse::mutable_friends() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.friends.v1.GetFriendListResponse.friends)
  return &friends_;
}

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

// CreateFriendshipRequest

// optional .bgs.protocol.EntityId inviter_id = 1;
inline bool CreateFriendshipRequest::has_inviter_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void CreateFriendshipRequest::set_has_inviter_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void CreateFriendshipRequest::clear_has_inviter_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void CreateFriendshipRequest::clear_inviter_id() {
  if (inviter_id_ != NULL) inviter_id_->::bgs::protocol::EntityId::Clear();
  clear_has_inviter_id();
}
inline const ::bgs::protocol::EntityId& CreateFriendshipRequest::inviter_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.CreateFriendshipRequest.inviter_id)
  return inviter_id_ != NULL ? *inviter_id_ : *default_instance_->inviter_id_;
}
inline ::bgs::protocol::EntityId* CreateFriendshipRequest::mutable_inviter_id() {
  set_has_inviter_id();
  if (inviter_id_ == NULL) inviter_id_ = new ::bgs::protocol::EntityId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.friends.v1.CreateFriendshipRequest.inviter_id)
  return inviter_id_;
}
inline ::bgs::protocol::EntityId* CreateFriendshipRequest::release_inviter_id() {
  clear_has_inviter_id();
  ::bgs::protocol::EntityId* temp = inviter_id_;
  inviter_id_ = NULL;
  return temp;
}
inline void CreateFriendshipRequest::set_allocated_inviter_id(::bgs::protocol::EntityId* inviter_id) {
  delete inviter_id_;
  inviter_id_ = inviter_id;
  if (inviter_id) {
    set_has_inviter_id();
  } else {
    clear_has_inviter_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.friends.v1.CreateFriendshipRequest.inviter_id)
}

// optional .bgs.protocol.EntityId invitee_id = 2;
inline bool CreateFriendshipRequest::has_invitee_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void CreateFriendshipRequest::set_has_invitee_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void CreateFriendshipRequest::clear_has_invitee_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void CreateFriendshipRequest::clear_invitee_id() {
  if (invitee_id_ != NULL) invitee_id_->::bgs::protocol::EntityId::Clear();
  clear_has_invitee_id();
}
inline const ::bgs::protocol::EntityId& CreateFriendshipRequest::invitee_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.CreateFriendshipRequest.invitee_id)
  return invitee_id_ != NULL ? *invitee_id_ : *default_instance_->invitee_id_;
}
inline ::bgs::protocol::EntityId* CreateFriendshipRequest::mutable_invitee_id() {
  set_has_invitee_id();
  if (invitee_id_ == NULL) invitee_id_ = new ::bgs::protocol::EntityId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.friends.v1.CreateFriendshipRequest.invitee_id)
  return invitee_id_;
}
inline ::bgs::protocol::EntityId* CreateFriendshipRequest::release_invitee_id() {
  clear_has_invitee_id();
  ::bgs::protocol::EntityId* temp = invitee_id_;
  invitee_id_ = NULL;
  return temp;
}
inline void CreateFriendshipRequest::set_allocated_invitee_id(::bgs::protocol::EntityId* invitee_id) {
  delete invitee_id_;
  invitee_id_ = invitee_id;
  if (invitee_id) {
    set_has_invitee_id();
  } else {
    clear_has_invitee_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.friends.v1.CreateFriendshipRequest.invitee_id)
}

// repeated uint32 role = 3 [packed = true];
inline int CreateFriendshipRequest::role_size() const {
  return role_.size();
}
inline void CreateFriendshipRequest::clear_role() {
  role_.Clear();
}
inline ::google::protobuf::uint32 CreateFriendshipRequest::role(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.CreateFriendshipRequest.role)
  return role_.Get(index);
}
inline void CreateFriendshipRequest::set_role(int index, ::google::protobuf::uint32 value) {
  role_.Set(index, value);
  // @@protoc_insertion_point(field_set:bgs.protocol.friends.v1.CreateFriendshipRequest.role)
}
inline void CreateFriendshipRequest::add_role(::google::protobuf::uint32 value) {
  role_.Add(value);
  // @@protoc_insertion_point(field_add:bgs.protocol.friends.v1.CreateFriendshipRequest.role)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
CreateFriendshipRequest::role() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.friends.v1.CreateFriendshipRequest.role)
  return role_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
CreateFriendshipRequest::mutable_role() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.friends.v1.CreateFriendshipRequest.role)
  return &role_;
}

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

// FriendNotification

// required .bgs.protocol.friends.v1.Friend target = 1;
inline bool FriendNotification::has_target() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void FriendNotification::set_has_target() {
  _has_bits_[0] |= 0x00000001u;
}
inline void FriendNotification::clear_has_target() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void FriendNotification::clear_target() {
  if (target_ != NULL) target_->::bgs::protocol::friends::v1::Friend::Clear();
  clear_has_target();
}
inline const ::bgs::protocol::friends::v1::Friend& FriendNotification::target() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.FriendNotification.target)
  return target_ != NULL ? *target_ : *default_instance_->target_;
}
inline ::bgs::protocol::friends::v1::Friend* FriendNotification::mutable_target() {
  set_has_target();
  if (target_ == NULL) target_ = new ::bgs::protocol::friends::v1::Friend;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.friends.v1.FriendNotification.target)
  return target_;
}
inline ::bgs::protocol::friends::v1::Friend* FriendNotification::release_target() {
  clear_has_target();
  ::bgs::protocol::friends::v1::Friend* temp = target_;
  target_ = NULL;
  return temp;
}
inline void FriendNotification::set_allocated_target(::bgs::protocol::friends::v1::Friend* target) {
  delete target_;
  target_ = target;
  if (target) {
    set_has_target();
  } else {
    clear_has_target();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.friends.v1.FriendNotification.target)
}

// optional .bgs.protocol.EntityId game_account_id = 2;
inline bool FriendNotification::has_game_account_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void FriendNotification::set_has_game_account_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void FriendNotification::clear_has_game_account_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void FriendNotification::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& FriendNotification::game_account_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.FriendNotification.game_account_id)
  return game_account_id_ != NULL ? *game_account_id_ : *default_instance_->game_account_id_;
}
inline ::bgs::protocol::EntityId* FriendNotification::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.friends.v1.FriendNotification.game_account_id)
  return game_account_id_;
}
inline ::bgs::protocol::EntityId* FriendNotification::release_game_account_id() {
  clear_has_game_account_id();
  ::bgs::protocol::EntityId* temp = game_account_id_;
  game_account_id_ = NULL;
  return temp;
}
inline void FriendNotification::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.friends.v1.FriendNotification.game_account_id)
}

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

// optional .bgs.protocol.EntityId account_id = 5;
inline bool FriendNotification::has_account_id() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void FriendNotification::set_has_account_id() {
  _has_bits_[0] |= 0x00000008u;
}
inline void FriendNotification::clear_has_account_id() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void FriendNotification::clear_account_id() {
  if (account_id_ != NULL) account_id_->::bgs::protocol::EntityId::Clear();
  clear_has_account_id();
}
inline const ::bgs::protocol::EntityId& FriendNotification::account_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.FriendNotification.account_id)
  return account_id_ != NULL ? *account_id_ : *default_instance_->account_id_;
}
inline ::bgs::protocol::EntityId* FriendNotification::mutable_account_id() {
  set_has_account_id();
  if (account_id_ == NULL) account_id_ = new ::bgs::protocol::EntityId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.friends.v1.FriendNotification.account_id)
  return account_id_;
}
inline ::bgs::protocol::EntityId* FriendNotification::release_account_id() {
  clear_has_account_id();
  ::bgs::protocol::EntityId* temp = account_id_;
  account_id_ = NULL;
  return temp;
}
inline void FriendNotification::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.friends.v1.FriendNotification.account_id)
}

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

// UpdateFriendStateNotification

// required .bgs.protocol.friends.v1.Friend changed_friend = 1;
inline bool UpdateFriendStateNotification::has_changed_friend() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void UpdateFriendStateNotification::set_has_changed_friend() {
  _has_bits_[0] |= 0x00000001u;
}
inline void UpdateFriendStateNotification::clear_has_changed_friend() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void UpdateFriendStateNotification::clear_changed_friend() {
  if (changed_friend_ != NULL) changed_friend_->::bgs::protocol::friends::v1::Friend::Clear();
  clear_has_changed_friend();
}
inline const ::bgs::protocol::friends::v1::Friend& UpdateFriendStateNotification::changed_friend() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.UpdateFriendStateNotification.changed_friend)
  return changed_friend_ != NULL ? *changed_friend_ : *default_instance_->changed_friend_;
}
inline ::bgs::protocol::friends::v1::Friend* UpdateFriendStateNotification::mutable_changed_friend() {
  set_has_changed_friend();
  if (changed_friend_ == NULL) changed_friend_ = new ::bgs::protocol::friends::v1::Friend;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.friends.v1.UpdateFriendStateNotification.changed_friend)
  return changed_friend_;
}
inline ::bgs::protocol::friends::v1::Friend* UpdateFriendStateNotification::release_changed_friend() {
  clear_has_changed_friend();
  ::bgs::protocol::friends::v1::Friend* temp = changed_friend_;
  changed_friend_ = NULL;
  return temp;
}
inline void UpdateFriendStateNotification::set_allocated_changed_friend(::bgs::protocol::friends::v1::Friend* changed_friend) {
  delete changed_friend_;
  changed_friend_ = changed_friend;
  if (changed_friend) {
    set_has_changed_friend();
  } else {
    clear_has_changed_friend();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.friends.v1.UpdateFriendStateNotification.changed_friend)
}

// optional .bgs.protocol.EntityId game_account_id = 2;
inline bool UpdateFriendStateNotification::has_game_account_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void UpdateFriendStateNotification::set_has_game_account_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void UpdateFriendStateNotification::clear_has_game_account_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void UpdateFriendStateNotification::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& UpdateFriendStateNotification::game_account_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.UpdateFriendStateNotification.game_account_id)
  return game_account_id_ != NULL ? *game_account_id_ : *default_instance_->game_account_id_;
}
inline ::bgs::protocol::EntityId* UpdateFriendStateNotification::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.friends.v1.UpdateFriendStateNotification.game_account_id)
  return game_account_id_;
}
inline ::bgs::protocol::EntityId* UpdateFriendStateNotification::release_game_account_id() {
  clear_has_game_account_id();
  ::bgs::protocol::EntityId* temp = game_account_id_;
  game_account_id_ = NULL;
  return temp;
}
inline void UpdateFriendStateNotification::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.friends.v1.UpdateFriendStateNotification.game_account_id)
}

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

// optional .bgs.protocol.EntityId account_id = 5;
inline bool UpdateFriendStateNotification::has_account_id() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void UpdateFriendStateNotification::set_has_account_id() {
  _has_bits_[0] |= 0x00000008u;
}
inline void UpdateFriendStateNotification::clear_has_account_id() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void UpdateFriendStateNotification::clear_account_id() {
  if (account_id_ != NULL) account_id_->::bgs::protocol::EntityId::Clear();
  clear_has_account_id();
}
inline const ::bgs::protocol::EntityId& UpdateFriendStateNotification::account_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.UpdateFriendStateNotification.account_id)
  return account_id_ != NULL ? *account_id_ : *default_instance_->account_id_;
}
inline ::bgs::protocol::EntityId* UpdateFriendStateNotification::mutable_account_id() {
  set_has_account_id();
  if (account_id_ == NULL) account_id_ = new ::bgs::protocol::EntityId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.friends.v1.UpdateFriendStateNotification.account_id)
  return account_id_;
}
inline ::bgs::protocol::EntityId* UpdateFriendStateNotification::release_account_id() {
  clear_has_account_id();
  ::bgs::protocol::EntityId* temp = account_id_;
  account_id_ = NULL;
  return temp;
}
inline void UpdateFriendStateNotification::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.friends.v1.UpdateFriendStateNotification.account_id)
}

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

// InvitationNotification

// required .bgs.protocol.Invitation invitation = 1;
inline bool InvitationNotification::has_invitation() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void InvitationNotification::set_has_invitation() {
  _has_bits_[0] |= 0x00000001u;
}
inline void InvitationNotification::clear_has_invitation() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void InvitationNotification::clear_invitation() {
  if (invitation_ != NULL) invitation_->::bgs::protocol::Invitation::Clear();
  clear_has_invitation();
}
inline const ::bgs::protocol::Invitation& InvitationNotification::invitation() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.InvitationNotification.invitation)
  return invitation_ != NULL ? *invitation_ : *default_instance_->invitation_;
}
inline ::bgs::protocol::Invitation* InvitationNotification::mutable_invitation() {
  set_has_invitation();
  if (invitation_ == NULL) invitation_ = new ::bgs::protocol::Invitation;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.friends.v1.InvitationNotification.invitation)
  return invitation_;
}
inline ::bgs::protocol::Invitation* InvitationNotification::release_invitation() {
  clear_has_invitation();
  ::bgs::protocol::Invitation* temp = invitation_;
  invitation_ = NULL;
  return temp;
}
inline void InvitationNotification::set_allocated_invitation(::bgs::protocol::Invitation* invitation) {
  delete invitation_;
  invitation_ = invitation;
  if (invitation) {
    set_has_invitation();
  } else {
    clear_has_invitation();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.friends.v1.InvitationNotification.invitation)
}

// optional .bgs.protocol.EntityId game_account_id = 2;
inline bool InvitationNotification::has_game_account_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void InvitationNotification::set_has_game_account_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void InvitationNotification::clear_has_game_account_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void InvitationNotification::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& InvitationNotification::game_account_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.InvitationNotification.game_account_id)
  return game_account_id_ != NULL ? *game_account_id_ : *default_instance_->game_account_id_;
}
inline ::bgs::protocol::EntityId* InvitationNotification::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.friends.v1.InvitationNotification.game_account_id)
  return game_account_id_;
}
inline ::bgs::protocol::EntityId* InvitationNotification::release_game_account_id() {
  clear_has_game_account_id();
  ::bgs::protocol::EntityId* temp = game_account_id_;
  game_account_id_ = NULL;
  return temp;
}
inline void InvitationNotification::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.friends.v1.InvitationNotification.game_account_id)
}

// optional uint32 reason = 3 [default = 0];
inline bool InvitationNotification::has_reason() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void InvitationNotification::set_has_reason() {
  _has_bits_[0] |= 0x00000004u;
}
inline void InvitationNotification::clear_has_reason() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void InvitationNotification::clear_reason() {
  reason_ = 0u;
  clear_has_reason();
}
inline ::google::protobuf::uint32 InvitationNotification::reason() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.InvitationNotification.reason)
  return reason_;
}
inline void InvitationNotification::set_reason(::google::protobuf::uint32 value) {
  set_has_reason();
  reason_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.friends.v1.InvitationNotification.reason)
}

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

// optional .bgs.protocol.EntityId account_id = 5;
inline bool InvitationNotification::has_account_id() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void InvitationNotification::set_has_account_id() {
  _has_bits_[0] |= 0x00000010u;
}
inline void InvitationNotification::clear_has_account_id() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void InvitationNotification::clear_account_id() {
  if (account_id_ != NULL) account_id_->::bgs::protocol::EntityId::Clear();
  clear_has_account_id();
}
inline const ::bgs::protocol::EntityId& InvitationNotification::account_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.InvitationNotification.account_id)
  return account_id_ != NULL ? *account_id_ : *default_instance_->account_id_;
}
inline ::bgs::protocol::EntityId* InvitationNotification::mutable_account_id() {
  set_has_account_id();
  if (account_id_ == NULL) account_id_ = new ::bgs::protocol::EntityId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.friends.v1.InvitationNotification.account_id)
  return account_id_;
}
inline ::bgs::protocol::EntityId* InvitationNotification::release_account_id() {
  clear_has_account_id();
  ::bgs::protocol::EntityId* temp = account_id_;
  account_id_ = NULL;
  return temp;
}
inline void InvitationNotification::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.friends.v1.InvitationNotification.account_id)
}


// @@protoc_insertion_point(namespace_scope)

}  // namespace v1
}  // namespace friends
}  // namespace protocol
}  // namespace bgs

#ifndef SWIG
namespace google {
namespace protobuf {


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

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_friends_5fservice_2eproto__INCLUDED
