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

#ifndef PROTOBUF_club_5fmembership_5fservice_2eproto__INCLUDED
#define PROTOBUF_club_5fmembership_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 "club_types.pb.h"
#include "club_stream.pb.h"
#include "ServiceBase.h"
#include "MessageBuffer.h"
#include <functional>
#include <type_traits>
// @@protoc_insertion_point(includes)

namespace bgs {
namespace protocol {
namespace club {
namespace v1 {
namespace membership {

// Internal implementation detail -- do not call these.
void TC_PROTO_API protobuf_AddDesc_club_5fmembership_5fservice_2eproto();
void protobuf_AssignDesc_club_5fmembership_5fservice_2eproto();
void protobuf_ShutdownFile_club_5fmembership_5fservice_2eproto();

class SubscribeRequest;
class SubscribeResponse;
class UnsubscribeRequest;
class GetStateRequest;
class GetStateResponse;
class UpdateClubSharedSettingsRequest;
class GetStreamMentionsRequest;
class GetStreamMentionsResponse;
class RemoveStreamMentionsRequest;
class AdvanceStreamMentionViewTimeRequest;

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

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.account.v1.AccountId agent_id = 1;
  inline bool has_agent_id() const;
  inline void clear_agent_id();
  static const int kAgentIdFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::AccountId& agent_id() const;
  inline ::bgs::protocol::account::v1::AccountId* mutable_agent_id();
  inline ::bgs::protocol::account::v1::AccountId* release_agent_id();
  inline void set_allocated_agent_id(::bgs::protocol::account::v1::AccountId* agent_id);

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

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.membership.SubscribeRequest)
 private:
  inline void set_has_agent_id();
  inline void clear_has_agent_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::account::v1::AccountId* agent_id_;
  ::bgs::protocol::club::v1::ClubMembershipSubscribeOptions* options_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fmembership_5fservice_2eproto();
  friend void protobuf_AssignDesc_club_5fmembership_5fservice_2eproto();
  friend void protobuf_ShutdownFile_club_5fmembership_5fservice_2eproto();

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

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

  SubscribeResponse(const SubscribeResponse& from);

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

  void Swap(SubscribeResponse* other);

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

  SubscribeResponse* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const SubscribeResponse& from);
  void MergeFrom(const SubscribeResponse& 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.club.v1.ClubMembershipState state = 1;
  inline bool has_state() const;
  inline void clear_state();
  static const int kStateFieldNumber = 1;
  inline const ::bgs::protocol::club::v1::ClubMembershipState& state() const;
  inline ::bgs::protocol::club::v1::ClubMembershipState* mutable_state();
  inline ::bgs::protocol::club::v1::ClubMembershipState* release_state();
  inline void set_allocated_state(::bgs::protocol::club::v1::ClubMembershipState* state);

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.membership.SubscribeResponse)
 private:
  inline void set_has_state();
  inline void clear_has_state();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::club::v1::ClubMembershipState* state_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fmembership_5fservice_2eproto();
  friend void protobuf_AssignDesc_club_5fmembership_5fservice_2eproto();
  friend void protobuf_ShutdownFile_club_5fmembership_5fservice_2eproto();

  void InitAsDefaultInstance();
  static SubscribeResponse* 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.account.v1.AccountId agent_id = 1;
  inline bool has_agent_id() const;
  inline void clear_agent_id();
  static const int kAgentIdFieldNumber = 1;
  inline const ::bgs::protocol::account::v1::AccountId& agent_id() const;
  inline ::bgs::protocol::account::v1::AccountId* mutable_agent_id();
  inline ::bgs::protocol::account::v1::AccountId* release_agent_id();
  inline void set_allocated_agent_id(::bgs::protocol::account::v1::AccountId* agent_id);

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.membership.UnsubscribeRequest)
 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::account::v1::AccountId* agent_id_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fmembership_5fservice_2eproto();
  friend void protobuf_AssignDesc_club_5fmembership_5fservice_2eproto();
  friend void protobuf_ShutdownFile_club_5fmembership_5fservice_2eproto();

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

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

  GetStateRequest(const GetStateRequest& from);

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

  void Swap(GetStateRequest* other);

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

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

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

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

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

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

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

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.membership.GetStateRequest)
 private:
  inline void set_has_agent_id();
  inline void clear_has_agent_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::account::v1::AccountId* agent_id_;
  ::bgs::protocol::club::v1::ClubMembershipGetStateOptions* options_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fmembership_5fservice_2eproto();
  friend void protobuf_AssignDesc_club_5fmembership_5fservice_2eproto();
  friend void protobuf_ShutdownFile_club_5fmembership_5fservice_2eproto();

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

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

  GetStateResponse(const GetStateResponse& from);

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

  void Swap(GetStateResponse* other);

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

  GetStateResponse* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GetStateResponse& from);
  void MergeFrom(const GetStateResponse& 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.club.v1.ClubMembershipState state = 1;
  inline bool has_state() const;
  inline void clear_state();
  static const int kStateFieldNumber = 1;
  inline const ::bgs::protocol::club::v1::ClubMembershipState& state() const;
  inline ::bgs::protocol::club::v1::ClubMembershipState* mutable_state();
  inline ::bgs::protocol::club::v1::ClubMembershipState* release_state();
  inline void set_allocated_state(::bgs::protocol::club::v1::ClubMembershipState* state);

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.membership.GetStateResponse)
 private:
  inline void set_has_state();
  inline void clear_has_state();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::club::v1::ClubMembershipState* state_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fmembership_5fservice_2eproto();
  friend void protobuf_AssignDesc_club_5fmembership_5fservice_2eproto();
  friend void protobuf_ShutdownFile_club_5fmembership_5fservice_2eproto();

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

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

  UpdateClubSharedSettingsRequest(const UpdateClubSharedSettingsRequest& from);

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

  void Swap(UpdateClubSharedSettingsRequest* other);

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

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

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

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

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

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

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

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.membership.UpdateClubSharedSettingsRequest)
 private:
  inline void set_has_agent_id();
  inline void clear_has_agent_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::account::v1::AccountId* agent_id_;
  ::bgs::protocol::club::v1::ClubSharedSettingsOptions* options_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fmembership_5fservice_2eproto();
  friend void protobuf_AssignDesc_club_5fmembership_5fservice_2eproto();
  friend void protobuf_ShutdownFile_club_5fmembership_5fservice_2eproto();

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

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

  GetStreamMentionsRequest(const GetStreamMentionsRequest& from);

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

  void Swap(GetStreamMentionsRequest* other);

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

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

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

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

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

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

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

  // optional bool fetch_messages = 3;
  inline bool has_fetch_messages() const;
  inline void clear_fetch_messages();
  static const int kFetchMessagesFieldNumber = 3;
  inline bool fetch_messages() const;
  inline void set_fetch_messages(bool value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.membership.GetStreamMentionsRequest)
 private:
  inline void set_has_agent_id();
  inline void clear_has_agent_id();
  inline void set_has_options();
  inline void clear_has_options();
  inline void set_has_fetch_messages();
  inline void clear_has_fetch_messages();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::AccountId* agent_id_;
  ::bgs::protocol::GetEventOptions* options_;
  bool fetch_messages_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fmembership_5fservice_2eproto();
  friend void protobuf_AssignDesc_club_5fmembership_5fservice_2eproto();
  friend void protobuf_ShutdownFile_club_5fmembership_5fservice_2eproto();

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

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

  GetStreamMentionsResponse(const GetStreamMentionsResponse& from);

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

  void Swap(GetStreamMentionsResponse* other);

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

  GetStreamMentionsResponse* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const GetStreamMentionsResponse& from);
  void MergeFrom(const GetStreamMentionsResponse& 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.club.v1.StreamMention mention = 1;
  inline int mention_size() const;
  inline void clear_mention();
  static const int kMentionFieldNumber = 1;
  inline const ::bgs::protocol::club::v1::StreamMention& mention(int index) const;
  inline ::bgs::protocol::club::v1::StreamMention* mutable_mention(int index);
  inline ::bgs::protocol::club::v1::StreamMention* add_mention();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::club::v1::StreamMention >&
      mention() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::club::v1::StreamMention >*
      mutable_mention();

  // optional uint64 continuation = 2;
  inline bool has_continuation() const;
  inline void clear_continuation();
  static const int kContinuationFieldNumber = 2;
  inline ::google::protobuf::uint64 continuation() const;
  inline void set_continuation(::google::protobuf::uint64 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.membership.GetStreamMentionsResponse)
 private:
  inline void set_has_continuation();
  inline void clear_has_continuation();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::club::v1::StreamMention > mention_;
  ::google::protobuf::uint64 continuation_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fmembership_5fservice_2eproto();
  friend void protobuf_AssignDesc_club_5fmembership_5fservice_2eproto();
  friend void protobuf_ShutdownFile_club_5fmembership_5fservice_2eproto();

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

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

  RemoveStreamMentionsRequest(const RemoveStreamMentionsRequest& from);

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

  void Swap(RemoveStreamMentionsRequest* other);

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

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

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

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

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

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

  // repeated .bgs.protocol.TimeSeriesId mention_id = 2;
  inline int mention_id_size() const;
  inline void clear_mention_id();
  static const int kMentionIdFieldNumber = 2;
  inline const ::bgs::protocol::TimeSeriesId& mention_id(int index) const;
  inline ::bgs::protocol::TimeSeriesId* mutable_mention_id(int index);
  inline ::bgs::protocol::TimeSeriesId* add_mention_id();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::TimeSeriesId >&
      mention_id() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::TimeSeriesId >*
      mutable_mention_id();

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.membership.RemoveStreamMentionsRequest)
 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::account::v1::AccountId* agent_id_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::TimeSeriesId > mention_id_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fmembership_5fservice_2eproto();
  friend void protobuf_AssignDesc_club_5fmembership_5fservice_2eproto();
  friend void protobuf_ShutdownFile_club_5fmembership_5fservice_2eproto();

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

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

  AdvanceStreamMentionViewTimeRequest(const AdvanceStreamMentionViewTimeRequest& from);

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

  void Swap(AdvanceStreamMentionViewTimeRequest* other);

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

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

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

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

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

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

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.membership.AdvanceStreamMentionViewTimeRequest)
 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::account::v1::AccountId* agent_id_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fmembership_5fservice_2eproto();
  friend void protobuf_AssignDesc_club_5fmembership_5fservice_2eproto();
  friend void protobuf_ShutdownFile_club_5fmembership_5fservice_2eproto();

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

class TC_PROTO_API ClubMembershipService : public ServiceBase
{
 public:

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

  typedef std::integral_constant<uint32, 0x94B94786u> OriginalHash;
  typedef std::integral_constant<uint32, 0xC1A60DF9u> NameHash;

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

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

 protected:
  // server methods --------------------------------------------------
  virtual uint32 HandleSubscribe(::bgs::protocol::club::v1::membership::SubscribeRequest const* request, ::bgs::protocol::club::v1::membership::SubscribeResponse* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation);
  virtual uint32 HandleUnsubscribe(::bgs::protocol::club::v1::membership::UnsubscribeRequest const* request, ::bgs::protocol::NoData* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation);
  virtual uint32 HandleGetState(::bgs::protocol::club::v1::membership::GetStateRequest const* request, ::bgs::protocol::club::v1::membership::GetStateResponse* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation);
  virtual uint32 HandleUpdateClubSharedSettings(::bgs::protocol::club::v1::membership::UpdateClubSharedSettingsRequest const* request, ::bgs::protocol::NoData* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation);
  virtual uint32 HandleGetStreamMentions(::bgs::protocol::club::v1::membership::GetStreamMentionsRequest const* request, ::bgs::protocol::club::v1::membership::GetStreamMentionsResponse* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation);
  virtual uint32 HandleRemoveStreamMentions(::bgs::protocol::club::v1::membership::RemoveStreamMentionsRequest const* request, ::bgs::protocol::NoData* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation);
  virtual uint32 HandleAdvanceStreamMentionViewTime(::bgs::protocol::club::v1::membership::AdvanceStreamMentionViewTimeRequest const* request, ::bgs::protocol::NoData* response, std::function<void(ServiceBase*, uint32, ::google::protobuf::Message const*)>& continuation);

 private:
  uint32 service_hash_;

  GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ClubMembershipService);
};

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


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

// SubscribeRequest

// optional .bgs.protocol.account.v1.AccountId 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::account::v1::AccountId::Clear();
  clear_has_agent_id();
}
inline const ::bgs::protocol::account::v1::AccountId& SubscribeRequest::agent_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.membership.SubscribeRequest.agent_id)
  return agent_id_ != NULL ? *agent_id_ : *default_instance_->agent_id_;
}
inline ::bgs::protocol::account::v1::AccountId* SubscribeRequest::mutable_agent_id() {
  set_has_agent_id();
  if (agent_id_ == NULL) agent_id_ = new ::bgs::protocol::account::v1::AccountId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.membership.SubscribeRequest.agent_id)
  return agent_id_;
}
inline ::bgs::protocol::account::v1::AccountId* SubscribeRequest::release_agent_id() {
  clear_has_agent_id();
  ::bgs::protocol::account::v1::AccountId* temp = agent_id_;
  agent_id_ = NULL;
  return temp;
}
inline void SubscribeRequest::set_allocated_agent_id(::bgs::protocol::account::v1::AccountId* 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.club.v1.membership.SubscribeRequest.agent_id)
}

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

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

// SubscribeResponse

// optional .bgs.protocol.club.v1.ClubMembershipState state = 1;
inline bool SubscribeResponse::has_state() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void SubscribeResponse::set_has_state() {
  _has_bits_[0] |= 0x00000001u;
}
inline void SubscribeResponse::clear_has_state() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void SubscribeResponse::clear_state() {
  if (state_ != NULL) state_->::bgs::protocol::club::v1::ClubMembershipState::Clear();
  clear_has_state();
}
inline const ::bgs::protocol::club::v1::ClubMembershipState& SubscribeResponse::state() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.membership.SubscribeResponse.state)
  return state_ != NULL ? *state_ : *default_instance_->state_;
}
inline ::bgs::protocol::club::v1::ClubMembershipState* SubscribeResponse::mutable_state() {
  set_has_state();
  if (state_ == NULL) state_ = new ::bgs::protocol::club::v1::ClubMembershipState;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.membership.SubscribeResponse.state)
  return state_;
}
inline ::bgs::protocol::club::v1::ClubMembershipState* SubscribeResponse::release_state() {
  clear_has_state();
  ::bgs::protocol::club::v1::ClubMembershipState* temp = state_;
  state_ = NULL;
  return temp;
}
inline void SubscribeResponse::set_allocated_state(::bgs::protocol::club::v1::ClubMembershipState* state) {
  delete state_;
  state_ = state;
  if (state) {
    set_has_state();
  } else {
    clear_has_state();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.club.v1.membership.SubscribeResponse.state)
}

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

// UnsubscribeRequest

// optional .bgs.protocol.account.v1.AccountId 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::account::v1::AccountId::Clear();
  clear_has_agent_id();
}
inline const ::bgs::protocol::account::v1::AccountId& UnsubscribeRequest::agent_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.membership.UnsubscribeRequest.agent_id)
  return agent_id_ != NULL ? *agent_id_ : *default_instance_->agent_id_;
}
inline ::bgs::protocol::account::v1::AccountId* UnsubscribeRequest::mutable_agent_id() {
  set_has_agent_id();
  if (agent_id_ == NULL) agent_id_ = new ::bgs::protocol::account::v1::AccountId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.membership.UnsubscribeRequest.agent_id)
  return agent_id_;
}
inline ::bgs::protocol::account::v1::AccountId* UnsubscribeRequest::release_agent_id() {
  clear_has_agent_id();
  ::bgs::protocol::account::v1::AccountId* temp = agent_id_;
  agent_id_ = NULL;
  return temp;
}
inline void UnsubscribeRequest::set_allocated_agent_id(::bgs::protocol::account::v1::AccountId* 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.club.v1.membership.UnsubscribeRequest.agent_id)
}

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

// GetStateRequest

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

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

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

// GetStateResponse

// optional .bgs.protocol.club.v1.ClubMembershipState state = 1;
inline bool GetStateResponse::has_state() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void GetStateResponse::set_has_state() {
  _has_bits_[0] |= 0x00000001u;
}
inline void GetStateResponse::clear_has_state() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void GetStateResponse::clear_state() {
  if (state_ != NULL) state_->::bgs::protocol::club::v1::ClubMembershipState::Clear();
  clear_has_state();
}
inline const ::bgs::protocol::club::v1::ClubMembershipState& GetStateResponse::state() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.membership.GetStateResponse.state)
  return state_ != NULL ? *state_ : *default_instance_->state_;
}
inline ::bgs::protocol::club::v1::ClubMembershipState* GetStateResponse::mutable_state() {
  set_has_state();
  if (state_ == NULL) state_ = new ::bgs::protocol::club::v1::ClubMembershipState;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.membership.GetStateResponse.state)
  return state_;
}
inline ::bgs::protocol::club::v1::ClubMembershipState* GetStateResponse::release_state() {
  clear_has_state();
  ::bgs::protocol::club::v1::ClubMembershipState* temp = state_;
  state_ = NULL;
  return temp;
}
inline void GetStateResponse::set_allocated_state(::bgs::protocol::club::v1::ClubMembershipState* state) {
  delete state_;
  state_ = state;
  if (state) {
    set_has_state();
  } else {
    clear_has_state();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.club.v1.membership.GetStateResponse.state)
}

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

// UpdateClubSharedSettingsRequest

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

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

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

// GetStreamMentionsRequest

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

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

// optional bool fetch_messages = 3;
inline bool GetStreamMentionsRequest::has_fetch_messages() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void GetStreamMentionsRequest::set_has_fetch_messages() {
  _has_bits_[0] |= 0x00000004u;
}
inline void GetStreamMentionsRequest::clear_has_fetch_messages() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void GetStreamMentionsRequest::clear_fetch_messages() {
  fetch_messages_ = false;
  clear_has_fetch_messages();
}
inline bool GetStreamMentionsRequest::fetch_messages() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.membership.GetStreamMentionsRequest.fetch_messages)
  return fetch_messages_;
}
inline void GetStreamMentionsRequest::set_fetch_messages(bool value) {
  set_has_fetch_messages();
  fetch_messages_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.membership.GetStreamMentionsRequest.fetch_messages)
}

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

// GetStreamMentionsResponse

// repeated .bgs.protocol.club.v1.StreamMention mention = 1;
inline int GetStreamMentionsResponse::mention_size() const {
  return mention_.size();
}
inline void GetStreamMentionsResponse::clear_mention() {
  mention_.Clear();
}
inline const ::bgs::protocol::club::v1::StreamMention& GetStreamMentionsResponse::mention(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.membership.GetStreamMentionsResponse.mention)
  return mention_.Get(index);
}
inline ::bgs::protocol::club::v1::StreamMention* GetStreamMentionsResponse::mutable_mention(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.membership.GetStreamMentionsResponse.mention)
  return mention_.Mutable(index);
}
inline ::bgs::protocol::club::v1::StreamMention* GetStreamMentionsResponse::add_mention() {
  // @@protoc_insertion_point(field_add:bgs.protocol.club.v1.membership.GetStreamMentionsResponse.mention)
  return mention_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::club::v1::StreamMention >&
GetStreamMentionsResponse::mention() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.club.v1.membership.GetStreamMentionsResponse.mention)
  return mention_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::club::v1::StreamMention >*
GetStreamMentionsResponse::mutable_mention() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.club.v1.membership.GetStreamMentionsResponse.mention)
  return &mention_;
}

// optional uint64 continuation = 2;
inline bool GetStreamMentionsResponse::has_continuation() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void GetStreamMentionsResponse::set_has_continuation() {
  _has_bits_[0] |= 0x00000002u;
}
inline void GetStreamMentionsResponse::clear_has_continuation() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void GetStreamMentionsResponse::clear_continuation() {
  continuation_ = GOOGLE_ULONGLONG(0);
  clear_has_continuation();
}
inline ::google::protobuf::uint64 GetStreamMentionsResponse::continuation() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.membership.GetStreamMentionsResponse.continuation)
  return continuation_;
}
inline void GetStreamMentionsResponse::set_continuation(::google::protobuf::uint64 value) {
  set_has_continuation();
  continuation_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.membership.GetStreamMentionsResponse.continuation)
}

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

// RemoveStreamMentionsRequest

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

// repeated .bgs.protocol.TimeSeriesId mention_id = 2;
inline int RemoveStreamMentionsRequest::mention_id_size() const {
  return mention_id_.size();
}
inline void RemoveStreamMentionsRequest::clear_mention_id() {
  mention_id_.Clear();
}
inline const ::bgs::protocol::TimeSeriesId& RemoveStreamMentionsRequest::mention_id(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.membership.RemoveStreamMentionsRequest.mention_id)
  return mention_id_.Get(index);
}
inline ::bgs::protocol::TimeSeriesId* RemoveStreamMentionsRequest::mutable_mention_id(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.membership.RemoveStreamMentionsRequest.mention_id)
  return mention_id_.Mutable(index);
}
inline ::bgs::protocol::TimeSeriesId* RemoveStreamMentionsRequest::add_mention_id() {
  // @@protoc_insertion_point(field_add:bgs.protocol.club.v1.membership.RemoveStreamMentionsRequest.mention_id)
  return mention_id_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::TimeSeriesId >&
RemoveStreamMentionsRequest::mention_id() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.club.v1.membership.RemoveStreamMentionsRequest.mention_id)
  return mention_id_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::TimeSeriesId >*
RemoveStreamMentionsRequest::mutable_mention_id() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.club.v1.membership.RemoveStreamMentionsRequest.mention_id)
  return &mention_id_;
}

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

// AdvanceStreamMentionViewTimeRequest

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


// @@protoc_insertion_point(namespace_scope)

}  // namespace membership
}  // namespace v1
}  // namespace club
}  // namespace protocol
}  // namespace bgs

#ifndef SWIG
namespace google {
namespace protobuf {


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

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_club_5fmembership_5fservice_2eproto__INCLUDED
