// 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 TC_PROTO_API protobuf_AddDesc_friends_5fservice_2eproto();
void protobuf_AssignDesc_friends_5fservice_2eproto();
void protobuf_ShutdownFile_friends_5fservice_2eproto();

class SubscribeRequest;
class UnsubscribeRequest;
class SendInvitationRequest;
class RevokeInvitationRequest;
class AcceptInvitationRequest;
class DeclineInvitationRequest;
class IgnoreInvitationRequest;
class RemoveFriendRequest;
class RevokeAllInvitationsRequest;
class ViewFriendsRequest;
class ViewFriendsResponse;
class UpdateFriendStateRequest;
class GetFriendListRequest;
class GetFriendListResponse;
class CreateFriendshipRequest;
class FriendNotification;
class UpdateFriendStateNotification;
class InvitationNotification;
class SentInvitationAddedNotification;
class SentInvitationRemovedNotification;

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

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

  SubscribeRequest(const SubscribeRequest& from);

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

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

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

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

  void Swap(SubscribeRequest* other);

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

  SubscribeRequest* New() const;
  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);

  // optional .bgs.protocol.ObjectAddress forward = 3 [deprecated = true];
  inline bool has_forward() const PROTOBUF_DEPRECATED;
  inline void clear_forward() PROTOBUF_DEPRECATED;
  static const int kForwardFieldNumber = 3;
  inline const ::bgs::protocol::ObjectAddress& forward() const PROTOBUF_DEPRECATED;
  inline ::bgs::protocol::ObjectAddress* mutable_forward() PROTOBUF_DEPRECATED;
  inline ::bgs::protocol::ObjectAddress* release_forward() PROTOBUF_DEPRECATED;
  inline void set_allocated_forward(::bgs::protocol::ObjectAddress* forward) PROTOBUF_DEPRECATED;

  // @@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();
  inline void set_has_forward();
  inline void clear_has_forward();

  ::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_;
  ::bgs::protocol::ObjectAddress* forward_;
  friend void TC_PROTO_API 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 TC_PROTO_API UnsubscribeRequest : public ::google::protobuf::Message {
 public:
  UnsubscribeRequest();
  virtual ~UnsubscribeRequest();

  UnsubscribeRequest(const UnsubscribeRequest& from);

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

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

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

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

  void Swap(UnsubscribeRequest* other);

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

  UnsubscribeRequest* New() const;
  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);

  // optional .bgs.protocol.ObjectAddress forward = 3 [deprecated = true];
  inline bool has_forward() const PROTOBUF_DEPRECATED;
  inline void clear_forward() PROTOBUF_DEPRECATED;
  static const int kForwardFieldNumber = 3;
  inline const ::bgs::protocol::ObjectAddress& forward() const PROTOBUF_DEPRECATED;
  inline ::bgs::protocol::ObjectAddress* mutable_forward() PROTOBUF_DEPRECATED;
  inline ::bgs::protocol::ObjectAddress* release_forward() PROTOBUF_DEPRECATED;
  inline void set_allocated_forward(::bgs::protocol::ObjectAddress* forward) PROTOBUF_DEPRECATED;

  // @@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();
  inline void set_has_forward();
  inline void clear_has_forward();

  ::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_;
  ::bgs::protocol::ObjectAddress* forward_;
  friend void TC_PROTO_API 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 TC_PROTO_API SendInvitationRequest : public ::google::protobuf::Message {
 public:
  SendInvitationRequest();
  virtual ~SendInvitationRequest();

  SendInvitationRequest(const SendInvitationRequest& from);

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

  void Swap(SendInvitationRequest* other);

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

  SendInvitationRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const SendInvitationRequest& from);
  void MergeFrom(const SendInvitationRequest& 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.Identity agent_identity = 1;
  inline bool has_agent_identity() const;
  inline void clear_agent_identity();
  static const int kAgentIdentityFieldNumber = 1;
  inline const ::bgs::protocol::Identity& agent_identity() const;
  inline ::bgs::protocol::Identity* mutable_agent_identity();
  inline ::bgs::protocol::Identity* release_agent_identity();
  inline void set_allocated_agent_identity(::bgs::protocol::Identity* agent_identity);

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

  // required .bgs.protocol.InvitationParams params = 3;
  inline bool has_params() const;
  inline void clear_params();
  static const int kParamsFieldNumber = 3;
  inline const ::bgs::protocol::InvitationParams& params() const;
  inline ::bgs::protocol::InvitationParams* mutable_params();
  inline ::bgs::protocol::InvitationParams* release_params();
  inline void set_allocated_params(::bgs::protocol::InvitationParams* params);

  // @@protoc_insertion_point(class_scope:bgs.protocol.friends.v1.SendInvitationRequest)
 private:
  inline void set_has_agent_identity();
  inline void clear_has_agent_identity();
  inline void set_has_target_id();
  inline void clear_has_target_id();
  inline void set_has_params();
  inline void clear_has_params();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

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

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

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

  RevokeInvitationRequest(const RevokeInvitationRequest& from);

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

  void Swap(RevokeInvitationRequest* other);

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

  RevokeInvitationRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const RevokeInvitationRequest& from);
  void MergeFrom(const RevokeInvitationRequest& 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 fixed64 invitation_id = 2;
  inline bool has_invitation_id() const;
  inline void clear_invitation_id();
  static const int kInvitationIdFieldNumber = 2;
  inline ::google::protobuf::uint64 invitation_id() const;
  inline void set_invitation_id(::google::protobuf::uint64 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.friends.v1.RevokeInvitationRequest)
 private:
  inline void set_has_agent_id();
  inline void clear_has_agent_id();
  inline void set_has_invitation_id();
  inline void clear_has_invitation_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

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

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

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

  AcceptInvitationRequest(const AcceptInvitationRequest& from);

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

  void Swap(AcceptInvitationRequest* other);

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

  AcceptInvitationRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const AcceptInvitationRequest& from);
  void MergeFrom(const AcceptInvitationRequest& 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 fixed64 invitation_id = 3;
  inline bool has_invitation_id() const;
  inline void clear_invitation_id();
  static const int kInvitationIdFieldNumber = 3;
  inline ::google::protobuf::uint64 invitation_id() const;
  inline void set_invitation_id(::google::protobuf::uint64 value);

  // optional .bgs.protocol.friends.v1.AcceptInvitationOptions options = 4;
  inline bool has_options() const;
  inline void clear_options();
  static const int kOptionsFieldNumber = 4;
  inline const ::bgs::protocol::friends::v1::AcceptInvitationOptions& options() const;
  inline ::bgs::protocol::friends::v1::AcceptInvitationOptions* mutable_options();
  inline ::bgs::protocol::friends::v1::AcceptInvitationOptions* release_options();
  inline void set_allocated_options(::bgs::protocol::friends::v1::AcceptInvitationOptions* options);

  // @@protoc_insertion_point(class_scope:bgs.protocol.friends.v1.AcceptInvitationRequest)
 private:
  inline void set_has_agent_id();
  inline void clear_has_agent_id();
  inline void set_has_invitation_id();
  inline void clear_has_invitation_id();
  inline void set_has_options();
  inline void clear_has_options();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::EntityId* agent_id_;
  ::google::protobuf::uint64 invitation_id_;
  ::bgs::protocol::friends::v1::AcceptInvitationOptions* options_;
  friend void TC_PROTO_API protobuf_AddDesc_friends_5fservice_2eproto();
  friend void protobuf_AssignDesc_friends_5fservice_2eproto();
  friend void protobuf_ShutdownFile_friends_5fservice_2eproto();

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

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

  DeclineInvitationRequest(const DeclineInvitationRequest& from);

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

  void Swap(DeclineInvitationRequest* other);

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

  DeclineInvitationRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const DeclineInvitationRequest& from);
  void MergeFrom(const DeclineInvitationRequest& 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 fixed64 invitation_id = 3;
  inline bool has_invitation_id() const;
  inline void clear_invitation_id();
  static const int kInvitationIdFieldNumber = 3;
  inline ::google::protobuf::uint64 invitation_id() const;
  inline void set_invitation_id(::google::protobuf::uint64 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.friends.v1.DeclineInvitationRequest)
 private:
  inline void set_has_agent_id();
  inline void clear_has_agent_id();
  inline void set_has_invitation_id();
  inline void clear_has_invitation_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

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

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

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

  IgnoreInvitationRequest(const IgnoreInvitationRequest& from);

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

  void Swap(IgnoreInvitationRequest* other);

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

  IgnoreInvitationRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const IgnoreInvitationRequest& from);
  void MergeFrom(const IgnoreInvitationRequest& 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 fixed64 invitation_id = 3;
  inline bool has_invitation_id() const;
  inline void clear_invitation_id();
  static const int kInvitationIdFieldNumber = 3;
  inline ::google::protobuf::uint64 invitation_id() const;
  inline void set_invitation_id(::google::protobuf::uint64 value);

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

  // @@protoc_insertion_point(class_scope:bgs.protocol.friends.v1.IgnoreInvitationRequest)
 private:
  inline void set_has_agent_id();
  inline void clear_has_agent_id();
  inline void set_has_invitation_id();
  inline void clear_has_invitation_id();
  inline void set_has_program();
  inline void clear_has_program();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

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

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

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

  RemoveFriendRequest(const RemoveFriendRequest& from);

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

  void Swap(RemoveFriendRequest* other);

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

  RemoveFriendRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const RemoveFriendRequest& from);
  void MergeFrom(const RemoveFriendRequest& 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.RemoveFriendRequest)
 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 TC_PROTO_API protobuf_AddDesc_friends_5fservice_2eproto();
  friend void protobuf_AssignDesc_friends_5fservice_2eproto();
  friend void protobuf_ShutdownFile_friends_5fservice_2eproto();

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

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

  RevokeAllInvitationsRequest(const RevokeAllInvitationsRequest& from);

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

  void Swap(RevokeAllInvitationsRequest* other);

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

  RevokeAllInvitationsRequest* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const RevokeAllInvitationsRequest& from);
  void MergeFrom(const RevokeAllInvitationsRequest& 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 = 2;
  inline bool has_agent_id() const;
  inline void clear_agent_id();
  static const int kAgentIdFieldNumber = 2;
  inline const ::bgs::protocol::EntityId& agent_id() const;
  inline ::bgs::protocol::EntityId* mutable_agent_id();
  inline ::bgs::protocol::EntityId* release_agent_id();
  inline void set_allocated_agent_id(::bgs::protocol::EntityId* agent_id);

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

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

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

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

class TC_PROTO_API 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);

  // @@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_;
  friend void TC_PROTO_API 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 TC_PROTO_API 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 TC_PROTO_API 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 TC_PROTO_API 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();

  // @@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();

  ::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_;
  friend void TC_PROTO_API 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 TC_PROTO_API 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 = 2;
  inline bool has_agent_id() const;
  inline void clear_agent_id();
  static const int kAgentIdFieldNumber = 2;
  inline const ::bgs::protocol::EntityId& agent_id() const;
  inline ::bgs::protocol::EntityId* mutable_agent_id();
  inline ::bgs::protocol::EntityId* release_agent_id();
  inline void set_allocated_agent_id(::bgs::protocol::EntityId* agent_id);

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

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::EntityId* agent_id_;
  friend void TC_PROTO_API 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 TC_PROTO_API 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 TC_PROTO_API 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 TC_PROTO_API 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 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);

  // 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_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 TC_PROTO_API 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 TC_PROTO_API 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 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);

  // optional .bgs.protocol.ObjectAddress forward = 6 [deprecated = true];
  inline bool has_forward() const PROTOBUF_DEPRECATED;
  inline void clear_forward() PROTOBUF_DEPRECATED;
  static const int kForwardFieldNumber = 6;
  inline const ::bgs::protocol::ObjectAddress& forward() const PROTOBUF_DEPRECATED;
  inline ::bgs::protocol::ObjectAddress* mutable_forward() PROTOBUF_DEPRECATED;
  inline ::bgs::protocol::ObjectAddress* release_forward() PROTOBUF_DEPRECATED;
  inline void set_allocated_forward(::bgs::protocol::ObjectAddress* forward) PROTOBUF_DEPRECATED;

  // @@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_account_id();
  inline void clear_has_account_id();
  inline void set_has_forward();
  inline void clear_has_forward();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::friends::v1::Friend* target_;
  ::bgs::protocol::EntityId* account_id_;
  ::bgs::protocol::ObjectAddress* forward_;
  friend void TC_PROTO_API 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 TC_PROTO_API 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 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);

  // optional .bgs.protocol.ObjectAddress forward = 6 [deprecated = true];
  inline bool has_forward() const PROTOBUF_DEPRECATED;
  inline void clear_forward() PROTOBUF_DEPRECATED;
  static const int kForwardFieldNumber = 6;
  inline const ::bgs::protocol::ObjectAddress& forward() const PROTOBUF_DEPRECATED;
  inline ::bgs::protocol::ObjectAddress* mutable_forward() PROTOBUF_DEPRECATED;
  inline ::bgs::protocol::ObjectAddress* release_forward() PROTOBUF_DEPRECATED;
  inline void set_allocated_forward(::bgs::protocol::ObjectAddress* forward) PROTOBUF_DEPRECATED;

  // @@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_account_id();
  inline void clear_has_account_id();
  inline void set_has_forward();
  inline void clear_has_forward();

  ::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* account_id_;
  ::bgs::protocol::ObjectAddress* forward_;
  friend void TC_PROTO_API 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 TC_PROTO_API 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.friends.v1.ReceivedInvitation invitation = 1;
  inline bool has_invitation() const;
  inline void clear_invitation();
  static const int kInvitationFieldNumber = 1;
  inline const ::bgs::protocol::friends::v1::ReceivedInvitation& invitation() const;
  inline ::bgs::protocol::friends::v1::ReceivedInvitation* mutable_invitation();
  inline ::bgs::protocol::friends::v1::ReceivedInvitation* release_invitation();
  inline void set_allocated_invitation(::bgs::protocol::friends::v1::ReceivedInvitation* invitation);

  // 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.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);

  // optional .bgs.protocol.ObjectAddress forward = 6 [deprecated = true];
  inline bool has_forward() const PROTOBUF_DEPRECATED;
  inline void clear_forward() PROTOBUF_DEPRECATED;
  static const int kForwardFieldNumber = 6;
  inline const ::bgs::protocol::ObjectAddress& forward() const PROTOBUF_DEPRECATED;
  inline ::bgs::protocol::ObjectAddress* mutable_forward() PROTOBUF_DEPRECATED;
  inline ::bgs::protocol::ObjectAddress* release_forward() PROTOBUF_DEPRECATED;
  inline void set_allocated_forward(::bgs::protocol::ObjectAddress* forward) PROTOBUF_DEPRECATED;

  // @@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_reason();
  inline void clear_has_reason();
  inline void set_has_account_id();
  inline void clear_has_account_id();
  inline void set_has_forward();
  inline void clear_has_forward();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::friends::v1::ReceivedInvitation* invitation_;
  ::bgs::protocol::EntityId* account_id_;
  ::bgs::protocol::ObjectAddress* forward_;
  ::google::protobuf::uint32 reason_;
  friend void TC_PROTO_API 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 TC_PROTO_API SentInvitationAddedNotification : public ::google::protobuf::Message {
 public:
  SentInvitationAddedNotification();
  virtual ~SentInvitationAddedNotification();

  SentInvitationAddedNotification(const SentInvitationAddedNotification& from);

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

  void Swap(SentInvitationAddedNotification* other);

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

  SentInvitationAddedNotification* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const SentInvitationAddedNotification& from);
  void MergeFrom(const SentInvitationAddedNotification& 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 account_id = 1;
  inline bool has_account_id() const;
  inline void clear_account_id();
  static const int kAccountIdFieldNumber = 1;
  inline const ::bgs::protocol::EntityId& account_id() const;
  inline ::bgs::protocol::EntityId* mutable_account_id();
  inline ::bgs::protocol::EntityId* release_account_id();
  inline void set_allocated_account_id(::bgs::protocol::EntityId* account_id);

  // optional .bgs.protocol.friends.v1.SentInvitation invitation = 2;
  inline bool has_invitation() const;
  inline void clear_invitation();
  static const int kInvitationFieldNumber = 2;
  inline const ::bgs::protocol::friends::v1::SentInvitation& invitation() const;
  inline ::bgs::protocol::friends::v1::SentInvitation* mutable_invitation();
  inline ::bgs::protocol::friends::v1::SentInvitation* release_invitation();
  inline void set_allocated_invitation(::bgs::protocol::friends::v1::SentInvitation* invitation);

  // optional .bgs.protocol.ObjectAddress forward = 3 [deprecated = true];
  inline bool has_forward() const PROTOBUF_DEPRECATED;
  inline void clear_forward() PROTOBUF_DEPRECATED;
  static const int kForwardFieldNumber = 3;
  inline const ::bgs::protocol::ObjectAddress& forward() const PROTOBUF_DEPRECATED;
  inline ::bgs::protocol::ObjectAddress* mutable_forward() PROTOBUF_DEPRECATED;
  inline ::bgs::protocol::ObjectAddress* release_forward() PROTOBUF_DEPRECATED;
  inline void set_allocated_forward(::bgs::protocol::ObjectAddress* forward) PROTOBUF_DEPRECATED;

  // @@protoc_insertion_point(class_scope:bgs.protocol.friends.v1.SentInvitationAddedNotification)
 private:
  inline void set_has_account_id();
  inline void clear_has_account_id();
  inline void set_has_invitation();
  inline void clear_has_invitation();
  inline void set_has_forward();
  inline void clear_has_forward();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::EntityId* account_id_;
  ::bgs::protocol::friends::v1::SentInvitation* invitation_;
  ::bgs::protocol::ObjectAddress* forward_;
  friend void TC_PROTO_API protobuf_AddDesc_friends_5fservice_2eproto();
  friend void protobuf_AssignDesc_friends_5fservice_2eproto();
  friend void protobuf_ShutdownFile_friends_5fservice_2eproto();

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

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

  SentInvitationRemovedNotification(const SentInvitationRemovedNotification& from);

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

  void Swap(SentInvitationRemovedNotification* other);

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

  SentInvitationRemovedNotification* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const SentInvitationRemovedNotification& from);
  void MergeFrom(const SentInvitationRemovedNotification& 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 account_id = 1;
  inline bool has_account_id() const;
  inline void clear_account_id();
  static const int kAccountIdFieldNumber = 1;
  inline const ::bgs::protocol::EntityId& account_id() const;
  inline ::bgs::protocol::EntityId* mutable_account_id();
  inline ::bgs::protocol::EntityId* release_account_id();
  inline void set_allocated_account_id(::bgs::protocol::EntityId* account_id);

  // optional fixed64 invitation_id = 2;
  inline bool has_invitation_id() const;
  inline void clear_invitation_id();
  static const int kInvitationIdFieldNumber = 2;
  inline ::google::protobuf::uint64 invitation_id() const;
  inline void set_invitation_id(::google::protobuf::uint64 value);

  // optional uint32 reason = 3;
  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.ObjectAddress forward = 4 [deprecated = true];
  inline bool has_forward() const PROTOBUF_DEPRECATED;
  inline void clear_forward() PROTOBUF_DEPRECATED;
  static const int kForwardFieldNumber = 4;
  inline const ::bgs::protocol::ObjectAddress& forward() const PROTOBUF_DEPRECATED;
  inline ::bgs::protocol::ObjectAddress* mutable_forward() PROTOBUF_DEPRECATED;
  inline ::bgs::protocol::ObjectAddress* release_forward() PROTOBUF_DEPRECATED;
  inline void set_allocated_forward(::bgs::protocol::ObjectAddress* forward) PROTOBUF_DEPRECATED;

  // @@protoc_insertion_point(class_scope:bgs.protocol.friends.v1.SentInvitationRemovedNotification)
 private:
  inline void set_has_account_id();
  inline void clear_has_account_id();
  inline void set_has_invitation_id();
  inline void clear_has_invitation_id();
  inline void set_has_reason();
  inline void clear_has_reason();
  inline void set_has_forward();
  inline void clear_has_forward();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::EntityId* account_id_;
  ::google::protobuf::uint64 invitation_id_;
  ::bgs::protocol::ObjectAddress* forward_;
  ::google::protobuf::uint32 reason_;
  friend void TC_PROTO_API protobuf_AddDesc_friends_5fservice_2eproto();
  friend void protobuf_AssignDesc_friends_5fservice_2eproto();
  friend void protobuf_ShutdownFile_friends_5fservice_2eproto();

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

class TC_PROTO_API 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();

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

 protected:
  // server methods --------------------------------------------------
  virtual uint32 HandleSubscribe(::bgs::protocol::friends::v1::SubscribeRequest const* request, ::bgs::protocol::friends::v1::SubscribeResponse* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation);
  virtual uint32 HandleSendInvitation(::bgs::protocol::friends::v1::SendInvitationRequest const* request, ::bgs::protocol::NoData* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation);
  virtual uint32 HandleAcceptInvitation(::bgs::protocol::friends::v1::AcceptInvitationRequest const* request, ::bgs::protocol::NoData* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation);
  virtual uint32 HandleRevokeInvitation(::bgs::protocol::friends::v1::RevokeInvitationRequest const* request, ::bgs::protocol::NoData* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation);
  virtual uint32 HandleDeclineInvitation(::bgs::protocol::friends::v1::DeclineInvitationRequest const* request, ::bgs::protocol::NoData* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation);
  virtual uint32 HandleIgnoreInvitation(::bgs::protocol::friends::v1::IgnoreInvitationRequest const* request, ::bgs::protocol::NoData* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation);
  virtual uint32 HandleRemoveFriend(::bgs::protocol::friends::v1::RemoveFriendRequest const* request, ::bgs::protocol::NoData* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation);
  virtual uint32 HandleViewFriends(::bgs::protocol::friends::v1::ViewFriendsRequest const* request, ::bgs::protocol::friends::v1::ViewFriendsResponse* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation);
  virtual uint32 HandleUpdateFriendState(::bgs::protocol::friends::v1::UpdateFriendStateRequest const* request, ::bgs::protocol::NoData* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation);
  virtual uint32 HandleUnsubscribe(::bgs::protocol::friends::v1::UnsubscribeRequest const* request, ::bgs::protocol::NoData* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation);
  virtual uint32 HandleRevokeAllInvitations(::bgs::protocol::friends::v1::RevokeAllInvitationsRequest const* request, ::bgs::protocol::NoData* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation);
  virtual uint32 HandleGetFriendList(::bgs::protocol::friends::v1::GetFriendListRequest const* request, ::bgs::protocol::friends::v1::GetFriendListResponse* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation);
  virtual uint32 HandleCreateFriendship(::bgs::protocol::friends::v1::CreateFriendshipRequest const* request, ::bgs::protocol::NoData* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation);

 private:
  uint32 service_hash_;

  GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(FriendsService);
};

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

class TC_PROTO_API 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, bool client = false, bool server = false);
  void OnFriendRemoved(::bgs::protocol::friends::v1::FriendNotification const* request, bool client = false, bool server = false);
  void OnReceivedInvitationAdded(::bgs::protocol::friends::v1::InvitationNotification const* request, bool client = false, bool server = false);
  void OnReceivedInvitationRemoved(::bgs::protocol::friends::v1::InvitationNotification const* request, bool client = false, bool server = false);
  void OnSentInvitationAdded(::bgs::protocol::friends::v1::SentInvitationAddedNotification const* request, bool client = false, bool server = false);
  void OnSentInvitationRemoved(::bgs::protocol::friends::v1::SentInvitationRemovedNotification const* request, bool client = false, bool server = false);
  void OnUpdateFriendState(::bgs::protocol::friends::v1::UpdateFriendStateNotification const* request, bool client = false, bool server = false);

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

 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)
}

// optional .bgs.protocol.ObjectAddress forward = 3 [deprecated = true];
inline bool SubscribeRequest::has_forward() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void SubscribeRequest::set_has_forward() {
  _has_bits_[0] |= 0x00000004u;
}
inline void SubscribeRequest::clear_has_forward() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void SubscribeRequest::clear_forward() {
  if (forward_ != NULL) forward_->::bgs::protocol::ObjectAddress::Clear();
  clear_has_forward();
}
inline const ::bgs::protocol::ObjectAddress& SubscribeRequest::forward() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.SubscribeRequest.forward)
  return forward_ != NULL ? *forward_ : *default_instance_->forward_;
}
inline ::bgs::protocol::ObjectAddress* SubscribeRequest::mutable_forward() {
  set_has_forward();
  if (forward_ == NULL) forward_ = new ::bgs::protocol::ObjectAddress;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.friends.v1.SubscribeRequest.forward)
  return forward_;
}
inline ::bgs::protocol::ObjectAddress* SubscribeRequest::release_forward() {
  clear_has_forward();
  ::bgs::protocol::ObjectAddress* temp = forward_;
  forward_ = NULL;
  return temp;
}
inline void SubscribeRequest::set_allocated_forward(::bgs::protocol::ObjectAddress* forward) {
  delete forward_;
  forward_ = forward;
  if (forward) {
    set_has_forward();
  } else {
    clear_has_forward();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.friends.v1.SubscribeRequest.forward)
}

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

// 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)
}

// optional .bgs.protocol.ObjectAddress forward = 3 [deprecated = true];
inline bool UnsubscribeRequest::has_forward() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void UnsubscribeRequest::set_has_forward() {
  _has_bits_[0] |= 0x00000004u;
}
inline void UnsubscribeRequest::clear_has_forward() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void UnsubscribeRequest::clear_forward() {
  if (forward_ != NULL) forward_->::bgs::protocol::ObjectAddress::Clear();
  clear_has_forward();
}
inline const ::bgs::protocol::ObjectAddress& UnsubscribeRequest::forward() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.UnsubscribeRequest.forward)
  return forward_ != NULL ? *forward_ : *default_instance_->forward_;
}
inline ::bgs::protocol::ObjectAddress* UnsubscribeRequest::mutable_forward() {
  set_has_forward();
  if (forward_ == NULL) forward_ = new ::bgs::protocol::ObjectAddress;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.friends.v1.UnsubscribeRequest.forward)
  return forward_;
}
inline ::bgs::protocol::ObjectAddress* UnsubscribeRequest::release_forward() {
  clear_has_forward();
  ::bgs::protocol::ObjectAddress* temp = forward_;
  forward_ = NULL;
  return temp;
}
inline void UnsubscribeRequest::set_allocated_forward(::bgs::protocol::ObjectAddress* forward) {
  delete forward_;
  forward_ = forward;
  if (forward) {
    set_has_forward();
  } else {
    clear_has_forward();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.friends.v1.UnsubscribeRequest.forward)
}

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

// SendInvitationRequest

// optional .bgs.protocol.Identity agent_identity = 1;
inline bool SendInvitationRequest::has_agent_identity() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void SendInvitationRequest::set_has_agent_identity() {
  _has_bits_[0] |= 0x00000001u;
}
inline void SendInvitationRequest::clear_has_agent_identity() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void SendInvitationRequest::clear_agent_identity() {
  if (agent_identity_ != NULL) agent_identity_->::bgs::protocol::Identity::Clear();
  clear_has_agent_identity();
}
inline const ::bgs::protocol::Identity& SendInvitationRequest::agent_identity() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.SendInvitationRequest.agent_identity)
  return agent_identity_ != NULL ? *agent_identity_ : *default_instance_->agent_identity_;
}
inline ::bgs::protocol::Identity* SendInvitationRequest::mutable_agent_identity() {
  set_has_agent_identity();
  if (agent_identity_ == NULL) agent_identity_ = new ::bgs::protocol::Identity;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.friends.v1.SendInvitationRequest.agent_identity)
  return agent_identity_;
}
inline ::bgs::protocol::Identity* SendInvitationRequest::release_agent_identity() {
  clear_has_agent_identity();
  ::bgs::protocol::Identity* temp = agent_identity_;
  agent_identity_ = NULL;
  return temp;
}
inline void SendInvitationRequest::set_allocated_agent_identity(::bgs::protocol::Identity* agent_identity) {
  delete agent_identity_;
  agent_identity_ = agent_identity;
  if (agent_identity) {
    set_has_agent_identity();
  } else {
    clear_has_agent_identity();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.friends.v1.SendInvitationRequest.agent_identity)
}

// required .bgs.protocol.EntityId target_id = 2;
inline bool SendInvitationRequest::has_target_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void SendInvitationRequest::set_has_target_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void SendInvitationRequest::clear_has_target_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void SendInvitationRequest::clear_target_id() {
  if (target_id_ != NULL) target_id_->::bgs::protocol::EntityId::Clear();
  clear_has_target_id();
}
inline const ::bgs::protocol::EntityId& SendInvitationRequest::target_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.SendInvitationRequest.target_id)
  return target_id_ != NULL ? *target_id_ : *default_instance_->target_id_;
}
inline ::bgs::protocol::EntityId* SendInvitationRequest::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.SendInvitationRequest.target_id)
  return target_id_;
}
inline ::bgs::protocol::EntityId* SendInvitationRequest::release_target_id() {
  clear_has_target_id();
  ::bgs::protocol::EntityId* temp = target_id_;
  target_id_ = NULL;
  return temp;
}
inline void SendInvitationRequest::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.SendInvitationRequest.target_id)
}

// required .bgs.protocol.InvitationParams params = 3;
inline bool SendInvitationRequest::has_params() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void SendInvitationRequest::set_has_params() {
  _has_bits_[0] |= 0x00000004u;
}
inline void SendInvitationRequest::clear_has_params() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void SendInvitationRequest::clear_params() {
  if (params_ != NULL) params_->::bgs::protocol::InvitationParams::Clear();
  clear_has_params();
}
inline const ::bgs::protocol::InvitationParams& SendInvitationRequest::params() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.SendInvitationRequest.params)
  return params_ != NULL ? *params_ : *default_instance_->params_;
}
inline ::bgs::protocol::InvitationParams* SendInvitationRequest::mutable_params() {
  set_has_params();
  if (params_ == NULL) params_ = new ::bgs::protocol::InvitationParams;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.friends.v1.SendInvitationRequest.params)
  return params_;
}
inline ::bgs::protocol::InvitationParams* SendInvitationRequest::release_params() {
  clear_has_params();
  ::bgs::protocol::InvitationParams* temp = params_;
  params_ = NULL;
  return temp;
}
inline void SendInvitationRequest::set_allocated_params(::bgs::protocol::InvitationParams* params) {
  delete params_;
  params_ = params;
  if (params) {
    set_has_params();
  } else {
    clear_has_params();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.friends.v1.SendInvitationRequest.params)
}

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

// RevokeInvitationRequest

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

// optional fixed64 invitation_id = 2;
inline bool RevokeInvitationRequest::has_invitation_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void RevokeInvitationRequest::set_has_invitation_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void RevokeInvitationRequest::clear_has_invitation_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void RevokeInvitationRequest::clear_invitation_id() {
  invitation_id_ = GOOGLE_ULONGLONG(0);
  clear_has_invitation_id();
}
inline ::google::protobuf::uint64 RevokeInvitationRequest::invitation_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.RevokeInvitationRequest.invitation_id)
  return invitation_id_;
}
inline void RevokeInvitationRequest::set_invitation_id(::google::protobuf::uint64 value) {
  set_has_invitation_id();
  invitation_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.friends.v1.RevokeInvitationRequest.invitation_id)
}

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

// AcceptInvitationRequest

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

// required fixed64 invitation_id = 3;
inline bool AcceptInvitationRequest::has_invitation_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void AcceptInvitationRequest::set_has_invitation_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void AcceptInvitationRequest::clear_has_invitation_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void AcceptInvitationRequest::clear_invitation_id() {
  invitation_id_ = GOOGLE_ULONGLONG(0);
  clear_has_invitation_id();
}
inline ::google::protobuf::uint64 AcceptInvitationRequest::invitation_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.AcceptInvitationRequest.invitation_id)
  return invitation_id_;
}
inline void AcceptInvitationRequest::set_invitation_id(::google::protobuf::uint64 value) {
  set_has_invitation_id();
  invitation_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.friends.v1.AcceptInvitationRequest.invitation_id)
}

// optional .bgs.protocol.friends.v1.AcceptInvitationOptions options = 4;
inline bool AcceptInvitationRequest::has_options() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void AcceptInvitationRequest::set_has_options() {
  _has_bits_[0] |= 0x00000004u;
}
inline void AcceptInvitationRequest::clear_has_options() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void AcceptInvitationRequest::clear_options() {
  if (options_ != NULL) options_->::bgs::protocol::friends::v1::AcceptInvitationOptions::Clear();
  clear_has_options();
}
inline const ::bgs::protocol::friends::v1::AcceptInvitationOptions& AcceptInvitationRequest::options() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.AcceptInvitationRequest.options)
  return options_ != NULL ? *options_ : *default_instance_->options_;
}
inline ::bgs::protocol::friends::v1::AcceptInvitationOptions* AcceptInvitationRequest::mutable_options() {
  set_has_options();
  if (options_ == NULL) options_ = new ::bgs::protocol::friends::v1::AcceptInvitationOptions;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.friends.v1.AcceptInvitationRequest.options)
  return options_;
}
inline ::bgs::protocol::friends::v1::AcceptInvitationOptions* AcceptInvitationRequest::release_options() {
  clear_has_options();
  ::bgs::protocol::friends::v1::AcceptInvitationOptions* temp = options_;
  options_ = NULL;
  return temp;
}
inline void AcceptInvitationRequest::set_allocated_options(::bgs::protocol::friends::v1::AcceptInvitationOptions* options) {
  delete options_;
  options_ = options;
  if (options) {
    set_has_options();
  } else {
    clear_has_options();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.friends.v1.AcceptInvitationRequest.options)
}

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

// DeclineInvitationRequest

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

// required fixed64 invitation_id = 3;
inline bool DeclineInvitationRequest::has_invitation_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void DeclineInvitationRequest::set_has_invitation_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void DeclineInvitationRequest::clear_has_invitation_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void DeclineInvitationRequest::clear_invitation_id() {
  invitation_id_ = GOOGLE_ULONGLONG(0);
  clear_has_invitation_id();
}
inline ::google::protobuf::uint64 DeclineInvitationRequest::invitation_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.DeclineInvitationRequest.invitation_id)
  return invitation_id_;
}
inline void DeclineInvitationRequest::set_invitation_id(::google::protobuf::uint64 value) {
  set_has_invitation_id();
  invitation_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.friends.v1.DeclineInvitationRequest.invitation_id)
}

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

// IgnoreInvitationRequest

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

// required fixed64 invitation_id = 3;
inline bool IgnoreInvitationRequest::has_invitation_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void IgnoreInvitationRequest::set_has_invitation_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void IgnoreInvitationRequest::clear_has_invitation_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void IgnoreInvitationRequest::clear_invitation_id() {
  invitation_id_ = GOOGLE_ULONGLONG(0);
  clear_has_invitation_id();
}
inline ::google::protobuf::uint64 IgnoreInvitationRequest::invitation_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.IgnoreInvitationRequest.invitation_id)
  return invitation_id_;
}
inline void IgnoreInvitationRequest::set_invitation_id(::google::protobuf::uint64 value) {
  set_has_invitation_id();
  invitation_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.friends.v1.IgnoreInvitationRequest.invitation_id)
}

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

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

// RemoveFriendRequest

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

// required .bgs.protocol.EntityId target_id = 2;
inline bool RemoveFriendRequest::has_target_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void RemoveFriendRequest::set_has_target_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void RemoveFriendRequest::clear_has_target_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void RemoveFriendRequest::clear_target_id() {
  if (target_id_ != NULL) target_id_->::bgs::protocol::EntityId::Clear();
  clear_has_target_id();
}
inline const ::bgs::protocol::EntityId& RemoveFriendRequest::target_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.RemoveFriendRequest.target_id)
  return target_id_ != NULL ? *target_id_ : *default_instance_->target_id_;
}
inline ::bgs::protocol::EntityId* RemoveFriendRequest::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.RemoveFriendRequest.target_id)
  return target_id_;
}
inline ::bgs::protocol::EntityId* RemoveFriendRequest::release_target_id() {
  clear_has_target_id();
  ::bgs::protocol::EntityId* temp = target_id_;
  target_id_ = NULL;
  return temp;
}
inline void RemoveFriendRequest::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.RemoveFriendRequest.target_id)
}

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

// RevokeAllInvitationsRequest

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

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

// 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)
}

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

// 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_;
}

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

// GetFriendListRequest

// optional .bgs.protocol.EntityId agent_id = 2;
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)
}

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

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

// optional .bgs.protocol.EntityId target_id = 2;
inline bool CreateFriendshipRequest::has_target_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void CreateFriendshipRequest::set_has_target_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void CreateFriendshipRequest::clear_has_target_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void CreateFriendshipRequest::clear_target_id() {
  if (target_id_ != NULL) target_id_->::bgs::protocol::EntityId::Clear();
  clear_has_target_id();
}
inline const ::bgs::protocol::EntityId& CreateFriendshipRequest::target_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.CreateFriendshipRequest.target_id)
  return target_id_ != NULL ? *target_id_ : *default_instance_->target_id_;
}
inline ::bgs::protocol::EntityId* CreateFriendshipRequest::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.CreateFriendshipRequest.target_id)
  return target_id_;
}
inline ::bgs::protocol::EntityId* CreateFriendshipRequest::release_target_id() {
  clear_has_target_id();
  ::bgs::protocol::EntityId* temp = target_id_;
  target_id_ = NULL;
  return temp;
}
inline void CreateFriendshipRequest::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.CreateFriendshipRequest.target_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 account_id = 5;
inline bool FriendNotification::has_account_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void FriendNotification::set_has_account_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void FriendNotification::clear_has_account_id() {
  _has_bits_[0] &= ~0x00000002u;
}
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)
}

// optional .bgs.protocol.ObjectAddress forward = 6 [deprecated = true];
inline bool FriendNotification::has_forward() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void FriendNotification::set_has_forward() {
  _has_bits_[0] |= 0x00000004u;
}
inline void FriendNotification::clear_has_forward() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void FriendNotification::clear_forward() {
  if (forward_ != NULL) forward_->::bgs::protocol::ObjectAddress::Clear();
  clear_has_forward();
}
inline const ::bgs::protocol::ObjectAddress& FriendNotification::forward() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.FriendNotification.forward)
  return forward_ != NULL ? *forward_ : *default_instance_->forward_;
}
inline ::bgs::protocol::ObjectAddress* FriendNotification::mutable_forward() {
  set_has_forward();
  if (forward_ == NULL) forward_ = new ::bgs::protocol::ObjectAddress;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.friends.v1.FriendNotification.forward)
  return forward_;
}
inline ::bgs::protocol::ObjectAddress* FriendNotification::release_forward() {
  clear_has_forward();
  ::bgs::protocol::ObjectAddress* temp = forward_;
  forward_ = NULL;
  return temp;
}
inline void FriendNotification::set_allocated_forward(::bgs::protocol::ObjectAddress* forward) {
  delete forward_;
  forward_ = forward;
  if (forward) {
    set_has_forward();
  } else {
    clear_has_forward();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.friends.v1.FriendNotification.forward)
}

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

// 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 account_id = 5;
inline bool UpdateFriendStateNotification::has_account_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void UpdateFriendStateNotification::set_has_account_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void UpdateFriendStateNotification::clear_has_account_id() {
  _has_bits_[0] &= ~0x00000002u;
}
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)
}

// optional .bgs.protocol.ObjectAddress forward = 6 [deprecated = true];
inline bool UpdateFriendStateNotification::has_forward() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void UpdateFriendStateNotification::set_has_forward() {
  _has_bits_[0] |= 0x00000004u;
}
inline void UpdateFriendStateNotification::clear_has_forward() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void UpdateFriendStateNotification::clear_forward() {
  if (forward_ != NULL) forward_->::bgs::protocol::ObjectAddress::Clear();
  clear_has_forward();
}
inline const ::bgs::protocol::ObjectAddress& UpdateFriendStateNotification::forward() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.UpdateFriendStateNotification.forward)
  return forward_ != NULL ? *forward_ : *default_instance_->forward_;
}
inline ::bgs::protocol::ObjectAddress* UpdateFriendStateNotification::mutable_forward() {
  set_has_forward();
  if (forward_ == NULL) forward_ = new ::bgs::protocol::ObjectAddress;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.friends.v1.UpdateFriendStateNotification.forward)
  return forward_;
}
inline ::bgs::protocol::ObjectAddress* UpdateFriendStateNotification::release_forward() {
  clear_has_forward();
  ::bgs::protocol::ObjectAddress* temp = forward_;
  forward_ = NULL;
  return temp;
}
inline void UpdateFriendStateNotification::set_allocated_forward(::bgs::protocol::ObjectAddress* forward) {
  delete forward_;
  forward_ = forward;
  if (forward) {
    set_has_forward();
  } else {
    clear_has_forward();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.friends.v1.UpdateFriendStateNotification.forward)
}

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

// InvitationNotification

// required .bgs.protocol.friends.v1.ReceivedInvitation 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::friends::v1::ReceivedInvitation::Clear();
  clear_has_invitation();
}
inline const ::bgs::protocol::friends::v1::ReceivedInvitation& InvitationNotification::invitation() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.InvitationNotification.invitation)
  return invitation_ != NULL ? *invitation_ : *default_instance_->invitation_;
}
inline ::bgs::protocol::friends::v1::ReceivedInvitation* InvitationNotification::mutable_invitation() {
  set_has_invitation();
  if (invitation_ == NULL) invitation_ = new ::bgs::protocol::friends::v1::ReceivedInvitation;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.friends.v1.InvitationNotification.invitation)
  return invitation_;
}
inline ::bgs::protocol::friends::v1::ReceivedInvitation* InvitationNotification::release_invitation() {
  clear_has_invitation();
  ::bgs::protocol::friends::v1::ReceivedInvitation* temp = invitation_;
  invitation_ = NULL;
  return temp;
}
inline void InvitationNotification::set_allocated_invitation(::bgs::protocol::friends::v1::ReceivedInvitation* 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 uint32 reason = 3 [default = 0];
inline bool InvitationNotification::has_reason() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void InvitationNotification::set_has_reason() {
  _has_bits_[0] |= 0x00000002u;
}
inline void InvitationNotification::clear_has_reason() {
  _has_bits_[0] &= ~0x00000002u;
}
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.EntityId account_id = 5;
inline bool InvitationNotification::has_account_id() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void InvitationNotification::set_has_account_id() {
  _has_bits_[0] |= 0x00000004u;
}
inline void InvitationNotification::clear_has_account_id() {
  _has_bits_[0] &= ~0x00000004u;
}
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)
}

// optional .bgs.protocol.ObjectAddress forward = 6 [deprecated = true];
inline bool InvitationNotification::has_forward() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void InvitationNotification::set_has_forward() {
  _has_bits_[0] |= 0x00000008u;
}
inline void InvitationNotification::clear_has_forward() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void InvitationNotification::clear_forward() {
  if (forward_ != NULL) forward_->::bgs::protocol::ObjectAddress::Clear();
  clear_has_forward();
}
inline const ::bgs::protocol::ObjectAddress& InvitationNotification::forward() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.InvitationNotification.forward)
  return forward_ != NULL ? *forward_ : *default_instance_->forward_;
}
inline ::bgs::protocol::ObjectAddress* InvitationNotification::mutable_forward() {
  set_has_forward();
  if (forward_ == NULL) forward_ = new ::bgs::protocol::ObjectAddress;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.friends.v1.InvitationNotification.forward)
  return forward_;
}
inline ::bgs::protocol::ObjectAddress* InvitationNotification::release_forward() {
  clear_has_forward();
  ::bgs::protocol::ObjectAddress* temp = forward_;
  forward_ = NULL;
  return temp;
}
inline void InvitationNotification::set_allocated_forward(::bgs::protocol::ObjectAddress* forward) {
  delete forward_;
  forward_ = forward;
  if (forward) {
    set_has_forward();
  } else {
    clear_has_forward();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.friends.v1.InvitationNotification.forward)
}

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

// SentInvitationAddedNotification

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

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

// optional .bgs.protocol.ObjectAddress forward = 3 [deprecated = true];
inline bool SentInvitationAddedNotification::has_forward() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void SentInvitationAddedNotification::set_has_forward() {
  _has_bits_[0] |= 0x00000004u;
}
inline void SentInvitationAddedNotification::clear_has_forward() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void SentInvitationAddedNotification::clear_forward() {
  if (forward_ != NULL) forward_->::bgs::protocol::ObjectAddress::Clear();
  clear_has_forward();
}
inline const ::bgs::protocol::ObjectAddress& SentInvitationAddedNotification::forward() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.SentInvitationAddedNotification.forward)
  return forward_ != NULL ? *forward_ : *default_instance_->forward_;
}
inline ::bgs::protocol::ObjectAddress* SentInvitationAddedNotification::mutable_forward() {
  set_has_forward();
  if (forward_ == NULL) forward_ = new ::bgs::protocol::ObjectAddress;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.friends.v1.SentInvitationAddedNotification.forward)
  return forward_;
}
inline ::bgs::protocol::ObjectAddress* SentInvitationAddedNotification::release_forward() {
  clear_has_forward();
  ::bgs::protocol::ObjectAddress* temp = forward_;
  forward_ = NULL;
  return temp;
}
inline void SentInvitationAddedNotification::set_allocated_forward(::bgs::protocol::ObjectAddress* forward) {
  delete forward_;
  forward_ = forward;
  if (forward) {
    set_has_forward();
  } else {
    clear_has_forward();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.friends.v1.SentInvitationAddedNotification.forward)
}

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

// SentInvitationRemovedNotification

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

// optional fixed64 invitation_id = 2;
inline bool SentInvitationRemovedNotification::has_invitation_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void SentInvitationRemovedNotification::set_has_invitation_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void SentInvitationRemovedNotification::clear_has_invitation_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void SentInvitationRemovedNotification::clear_invitation_id() {
  invitation_id_ = GOOGLE_ULONGLONG(0);
  clear_has_invitation_id();
}
inline ::google::protobuf::uint64 SentInvitationRemovedNotification::invitation_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.SentInvitationRemovedNotification.invitation_id)
  return invitation_id_;
}
inline void SentInvitationRemovedNotification::set_invitation_id(::google::protobuf::uint64 value) {
  set_has_invitation_id();
  invitation_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.friends.v1.SentInvitationRemovedNotification.invitation_id)
}

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

// optional .bgs.protocol.ObjectAddress forward = 4 [deprecated = true];
inline bool SentInvitationRemovedNotification::has_forward() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void SentInvitationRemovedNotification::set_has_forward() {
  _has_bits_[0] |= 0x00000008u;
}
inline void SentInvitationRemovedNotification::clear_has_forward() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void SentInvitationRemovedNotification::clear_forward() {
  if (forward_ != NULL) forward_->::bgs::protocol::ObjectAddress::Clear();
  clear_has_forward();
}
inline const ::bgs::protocol::ObjectAddress& SentInvitationRemovedNotification::forward() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.friends.v1.SentInvitationRemovedNotification.forward)
  return forward_ != NULL ? *forward_ : *default_instance_->forward_;
}
inline ::bgs::protocol::ObjectAddress* SentInvitationRemovedNotification::mutable_forward() {
  set_has_forward();
  if (forward_ == NULL) forward_ = new ::bgs::protocol::ObjectAddress;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.friends.v1.SentInvitationRemovedNotification.forward)
  return forward_;
}
inline ::bgs::protocol::ObjectAddress* SentInvitationRemovedNotification::release_forward() {
  clear_has_forward();
  ::bgs::protocol::ObjectAddress* temp = forward_;
  forward_ = NULL;
  return temp;
}
inline void SentInvitationRemovedNotification::set_allocated_forward(::bgs::protocol::ObjectAddress* forward) {
  delete forward_;
  forward_ = forward;
  if (forward) {
    set_has_forward();
  } else {
    clear_has_forward();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.friends.v1.SentInvitationRemovedNotification.forward)
}


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