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

#ifndef PROTOBUF_club_5fmembership_5flistener_2eproto__INCLUDED
#define PROTOBUF_club_5fmembership_5flistener_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 "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_5flistener_2eproto();
void protobuf_AssignDesc_club_5fmembership_5flistener_2eproto();
void protobuf_ShutdownFile_club_5fmembership_5flistener_2eproto();

class ClubAddedNotification;
class ClubRemovedNotification;
class ReceivedInvitationAddedNotification;
class ReceivedInvitationRemovedNotification;
class SharedSettingsChangedNotification;
class StreamMentionAddedNotification;
class StreamMentionRemovedNotification;
class StreamMentionAdvanceViewTimeNotification;

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

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

  ClubAddedNotification(const ClubAddedNotification& from);

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

  void Swap(ClubAddedNotification* other);

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

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

  // optional .bgs.protocol.club.v1.ClubMembershipDescription membership = 3;
  inline bool has_membership() const;
  inline void clear_membership();
  static const int kMembershipFieldNumber = 3;
  inline const ::bgs::protocol::club::v1::ClubMembershipDescription& membership() const;
  inline ::bgs::protocol::club::v1::ClubMembershipDescription* mutable_membership();
  inline ::bgs::protocol::club::v1::ClubMembershipDescription* release_membership();
  inline void set_allocated_membership(::bgs::protocol::club::v1::ClubMembershipDescription* membership);

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.membership.ClubAddedNotification)
 private:
  inline void set_has_agent_id();
  inline void clear_has_agent_id();
  inline void set_has_membership();
  inline void clear_has_membership();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::club::v1::MemberId* agent_id_;
  ::bgs::protocol::club::v1::ClubMembershipDescription* membership_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fmembership_5flistener_2eproto();
  friend void protobuf_AssignDesc_club_5fmembership_5flistener_2eproto();
  friend void protobuf_ShutdownFile_club_5fmembership_5flistener_2eproto();

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

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

  ClubRemovedNotification(const ClubRemovedNotification& from);

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

  void Swap(ClubRemovedNotification* other);

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

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

  // optional .bgs.protocol.club.v1.MemberId member_id = 3;
  inline bool has_member_id() const;
  inline void clear_member_id();
  static const int kMemberIdFieldNumber = 3;
  inline const ::bgs::protocol::club::v1::MemberId& member_id() const;
  inline ::bgs::protocol::club::v1::MemberId* mutable_member_id();
  inline ::bgs::protocol::club::v1::MemberId* release_member_id();
  inline void set_allocated_member_id(::bgs::protocol::club::v1::MemberId* member_id);

  // optional uint64 club_id = 4;
  inline bool has_club_id() const;
  inline void clear_club_id();
  static const int kClubIdFieldNumber = 4;
  inline ::google::protobuf::uint64 club_id() const;
  inline void set_club_id(::google::protobuf::uint64 value);

  // optional .bgs.protocol.club.v1.ClubRemovedReason reason = 5;
  inline bool has_reason() const;
  inline void clear_reason();
  static const int kReasonFieldNumber = 5;
  inline ::bgs::protocol::club::v1::ClubRemovedReason reason() const;
  inline void set_reason(::bgs::protocol::club::v1::ClubRemovedReason value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.membership.ClubRemovedNotification)
 private:
  inline void set_has_agent_id();
  inline void clear_has_agent_id();
  inline void set_has_member_id();
  inline void clear_has_member_id();
  inline void set_has_club_id();
  inline void clear_has_club_id();
  inline void set_has_reason();
  inline void clear_has_reason();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::club::v1::MemberId* agent_id_;
  ::bgs::protocol::club::v1::MemberId* member_id_;
  ::google::protobuf::uint64 club_id_;
  int reason_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fmembership_5flistener_2eproto();
  friend void protobuf_AssignDesc_club_5fmembership_5flistener_2eproto();
  friend void protobuf_ShutdownFile_club_5fmembership_5flistener_2eproto();

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

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

  ReceivedInvitationAddedNotification(const ReceivedInvitationAddedNotification& from);

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

  void Swap(ReceivedInvitationAddedNotification* other);

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

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

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

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.membership.ReceivedInvitationAddedNotification)
 private:
  inline void set_has_agent_id();
  inline void clear_has_agent_id();
  inline void set_has_invitation();
  inline void clear_has_invitation();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::club::v1::MemberId* agent_id_;
  ::bgs::protocol::club::v1::ClubInvitation* invitation_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fmembership_5flistener_2eproto();
  friend void protobuf_AssignDesc_club_5fmembership_5flistener_2eproto();
  friend void protobuf_ShutdownFile_club_5fmembership_5flistener_2eproto();

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

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

  ReceivedInvitationRemovedNotification(const ReceivedInvitationRemovedNotification& from);

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

  void Swap(ReceivedInvitationRemovedNotification* other);

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

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

  // optional 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.InvitationRemovedReason reason = 4;
  inline bool has_reason() const;
  inline void clear_reason();
  static const int kReasonFieldNumber = 4;
  inline ::bgs::protocol::InvitationRemovedReason reason() const;
  inline void set_reason(::bgs::protocol::InvitationRemovedReason value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.membership.ReceivedInvitationRemovedNotification)
 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_reason();
  inline void clear_has_reason();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::club::v1::MemberId* agent_id_;
  ::google::protobuf::uint64 invitation_id_;
  int reason_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fmembership_5flistener_2eproto();
  friend void protobuf_AssignDesc_club_5fmembership_5flistener_2eproto();
  friend void protobuf_ShutdownFile_club_5fmembership_5flistener_2eproto();

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

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

  SharedSettingsChangedNotification(const SharedSettingsChangedNotification& from);

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

  void Swap(SharedSettingsChangedNotification* other);

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

  SharedSettingsChangedNotification* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const SharedSettingsChangedNotification& from);
  void MergeFrom(const SharedSettingsChangedNotification& 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.ClubSharedSettingsAssignment assignment = 4;
  inline bool has_assignment() const;
  inline void clear_assignment();
  static const int kAssignmentFieldNumber = 4;
  inline const ::bgs::protocol::club::v1::ClubSharedSettingsAssignment& assignment() const;
  inline ::bgs::protocol::club::v1::ClubSharedSettingsAssignment* mutable_assignment();
  inline ::bgs::protocol::club::v1::ClubSharedSettingsAssignment* release_assignment();
  inline void set_allocated_assignment(::bgs::protocol::club::v1::ClubSharedSettingsAssignment* assignment);

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.membership.SharedSettingsChangedNotification)
 private:
  inline void set_has_agent_id();
  inline void clear_has_agent_id();
  inline void set_has_assignment();
  inline void clear_has_assignment();

  ::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::ClubSharedSettingsAssignment* assignment_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fmembership_5flistener_2eproto();
  friend void protobuf_AssignDesc_club_5fmembership_5flistener_2eproto();
  friend void protobuf_ShutdownFile_club_5fmembership_5flistener_2eproto();

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

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

  StreamMentionAddedNotification(const StreamMentionAddedNotification& from);

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

  void Swap(StreamMentionAddedNotification* other);

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

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

  // optional .bgs.protocol.club.v1.StreamMention mention = 3;
  inline bool has_mention() const;
  inline void clear_mention();
  static const int kMentionFieldNumber = 3;
  inline const ::bgs::protocol::club::v1::StreamMention& mention() const;
  inline ::bgs::protocol::club::v1::StreamMention* mutable_mention();
  inline ::bgs::protocol::club::v1::StreamMention* release_mention();
  inline void set_allocated_mention(::bgs::protocol::club::v1::StreamMention* mention);

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.membership.StreamMentionAddedNotification)
 private:
  inline void set_has_agent_id();
  inline void clear_has_agent_id();
  inline void set_has_mention();
  inline void clear_has_mention();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::club::v1::MemberId* agent_id_;
  ::bgs::protocol::club::v1::StreamMention* mention_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fmembership_5flistener_2eproto();
  friend void protobuf_AssignDesc_club_5fmembership_5flistener_2eproto();
  friend void protobuf_ShutdownFile_club_5fmembership_5flistener_2eproto();

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

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

  StreamMentionRemovedNotification(const StreamMentionRemovedNotification& from);

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

  void Swap(StreamMentionRemovedNotification* other);

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

  StreamMentionRemovedNotification* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const StreamMentionRemovedNotification& from);
  void MergeFrom(const StreamMentionRemovedNotification& 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.TimeSeriesId mention_id = 3;
  inline bool has_mention_id() const;
  inline void clear_mention_id();
  static const int kMentionIdFieldNumber = 3;
  inline const ::bgs::protocol::TimeSeriesId& mention_id() const;
  inline ::bgs::protocol::TimeSeriesId* mutable_mention_id();
  inline ::bgs::protocol::TimeSeriesId* release_mention_id();
  inline void set_allocated_mention_id(::bgs::protocol::TimeSeriesId* mention_id);

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.membership.StreamMentionRemovedNotification)
 private:
  inline void set_has_agent_id();
  inline void clear_has_agent_id();
  inline void set_has_mention_id();
  inline void clear_has_mention_id();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::AccountId* agent_id_;
  ::bgs::protocol::TimeSeriesId* mention_id_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fmembership_5flistener_2eproto();
  friend void protobuf_AssignDesc_club_5fmembership_5flistener_2eproto();
  friend void protobuf_ShutdownFile_club_5fmembership_5flistener_2eproto();

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

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

  StreamMentionAdvanceViewTimeNotification(const StreamMentionAdvanceViewTimeNotification& from);

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

  void Swap(StreamMentionAdvanceViewTimeNotification* other);

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

  StreamMentionAdvanceViewTimeNotification* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const StreamMentionAdvanceViewTimeNotification& from);
  void MergeFrom(const StreamMentionAdvanceViewTimeNotification& 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 uint64 view_time = 3;
  inline bool has_view_time() const;
  inline void clear_view_time();
  static const int kViewTimeFieldNumber = 3;
  inline ::google::protobuf::uint64 view_time() const;
  inline void set_view_time(::google::protobuf::uint64 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.membership.StreamMentionAdvanceViewTimeNotification)
 private:
  inline void set_has_agent_id();
  inline void clear_has_agent_id();
  inline void set_has_view_time();
  inline void clear_has_view_time();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::account::v1::AccountId* agent_id_;
  ::google::protobuf::uint64 view_time_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fmembership_5flistener_2eproto();
  friend void protobuf_AssignDesc_club_5fmembership_5flistener_2eproto();
  friend void protobuf_ShutdownFile_club_5fmembership_5flistener_2eproto();

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

class TC_PROTO_API ClubMembershipListener : public ServiceBase
{
 public:

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

  typedef std::integral_constant<uint32, 0x2B34597Bu> OriginalHash;
  typedef std::integral_constant<uint32, 0x615039Eu> NameHash;

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

  // client methods --------------------------------------------------
  void OnClubAdded(::bgs::protocol::club::v1::membership::ClubAddedNotification const* request, bool client = false, bool server = false);
  void OnClubRemoved(::bgs::protocol::club::v1::membership::ClubRemovedNotification const* request, bool client = false, bool server = false);
  void OnReceivedInvitationAdded(::bgs::protocol::club::v1::membership::ReceivedInvitationAddedNotification const* request, bool client = false, bool server = false);
  void OnReceivedInvitationRemoved(::bgs::protocol::club::v1::membership::ReceivedInvitationRemovedNotification const* request, bool client = false, bool server = false);
  void OnSharedSettingsChanged(::bgs::protocol::club::v1::membership::SharedSettingsChangedNotification const* request, bool client = false, bool server = false);
  void OnStreamMentionAdded(::bgs::protocol::club::v1::membership::StreamMentionAddedNotification const* request, bool client = false, bool server = false);
  void OnStreamMentionRemoved(::bgs::protocol::club::v1::membership::StreamMentionRemovedNotification const* request, bool client = false, bool server = false);
  void OnStreamMentionAdvanceViewTime(::bgs::protocol::club::v1::membership::StreamMentionAdvanceViewTimeNotification 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(ClubMembershipListener);
};

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


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

// ClubAddedNotification

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

// optional .bgs.protocol.club.v1.ClubMembershipDescription membership = 3;
inline bool ClubAddedNotification::has_membership() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void ClubAddedNotification::set_has_membership() {
  _has_bits_[0] |= 0x00000002u;
}
inline void ClubAddedNotification::clear_has_membership() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void ClubAddedNotification::clear_membership() {
  if (membership_ != NULL) membership_->::bgs::protocol::club::v1::ClubMembershipDescription::Clear();
  clear_has_membership();
}
inline const ::bgs::protocol::club::v1::ClubMembershipDescription& ClubAddedNotification::membership() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.membership.ClubAddedNotification.membership)
  return membership_ != NULL ? *membership_ : *default_instance_->membership_;
}
inline ::bgs::protocol::club::v1::ClubMembershipDescription* ClubAddedNotification::mutable_membership() {
  set_has_membership();
  if (membership_ == NULL) membership_ = new ::bgs::protocol::club::v1::ClubMembershipDescription;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.membership.ClubAddedNotification.membership)
  return membership_;
}
inline ::bgs::protocol::club::v1::ClubMembershipDescription* ClubAddedNotification::release_membership() {
  clear_has_membership();
  ::bgs::protocol::club::v1::ClubMembershipDescription* temp = membership_;
  membership_ = NULL;
  return temp;
}
inline void ClubAddedNotification::set_allocated_membership(::bgs::protocol::club::v1::ClubMembershipDescription* membership) {
  delete membership_;
  membership_ = membership;
  if (membership) {
    set_has_membership();
  } else {
    clear_has_membership();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.club.v1.membership.ClubAddedNotification.membership)
}

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

// ClubRemovedNotification

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

// optional .bgs.protocol.club.v1.MemberId member_id = 3;
inline bool ClubRemovedNotification::has_member_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void ClubRemovedNotification::set_has_member_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void ClubRemovedNotification::clear_has_member_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void ClubRemovedNotification::clear_member_id() {
  if (member_id_ != NULL) member_id_->::bgs::protocol::club::v1::MemberId::Clear();
  clear_has_member_id();
}
inline const ::bgs::protocol::club::v1::MemberId& ClubRemovedNotification::member_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.membership.ClubRemovedNotification.member_id)
  return member_id_ != NULL ? *member_id_ : *default_instance_->member_id_;
}
inline ::bgs::protocol::club::v1::MemberId* ClubRemovedNotification::mutable_member_id() {
  set_has_member_id();
  if (member_id_ == NULL) member_id_ = new ::bgs::protocol::club::v1::MemberId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.membership.ClubRemovedNotification.member_id)
  return member_id_;
}
inline ::bgs::protocol::club::v1::MemberId* ClubRemovedNotification::release_member_id() {
  clear_has_member_id();
  ::bgs::protocol::club::v1::MemberId* temp = member_id_;
  member_id_ = NULL;
  return temp;
}
inline void ClubRemovedNotification::set_allocated_member_id(::bgs::protocol::club::v1::MemberId* member_id) {
  delete member_id_;
  member_id_ = member_id;
  if (member_id) {
    set_has_member_id();
  } else {
    clear_has_member_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.club.v1.membership.ClubRemovedNotification.member_id)
}

// optional uint64 club_id = 4;
inline bool ClubRemovedNotification::has_club_id() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void ClubRemovedNotification::set_has_club_id() {
  _has_bits_[0] |= 0x00000004u;
}
inline void ClubRemovedNotification::clear_has_club_id() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void ClubRemovedNotification::clear_club_id() {
  club_id_ = GOOGLE_ULONGLONG(0);
  clear_has_club_id();
}
inline ::google::protobuf::uint64 ClubRemovedNotification::club_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.membership.ClubRemovedNotification.club_id)
  return club_id_;
}
inline void ClubRemovedNotification::set_club_id(::google::protobuf::uint64 value) {
  set_has_club_id();
  club_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.membership.ClubRemovedNotification.club_id)
}

// optional .bgs.protocol.club.v1.ClubRemovedReason reason = 5;
inline bool ClubRemovedNotification::has_reason() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void ClubRemovedNotification::set_has_reason() {
  _has_bits_[0] |= 0x00000008u;
}
inline void ClubRemovedNotification::clear_has_reason() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void ClubRemovedNotification::clear_reason() {
  reason_ = 0;
  clear_has_reason();
}
inline ::bgs::protocol::club::v1::ClubRemovedReason ClubRemovedNotification::reason() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.membership.ClubRemovedNotification.reason)
  return static_cast< ::bgs::protocol::club::v1::ClubRemovedReason >(reason_);
}
inline void ClubRemovedNotification::set_reason(::bgs::protocol::club::v1::ClubRemovedReason value) {
  assert(::bgs::protocol::club::v1::ClubRemovedReason_IsValid(value));
  set_has_reason();
  reason_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.membership.ClubRemovedNotification.reason)
}

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

// ReceivedInvitationAddedNotification

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

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

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

// ReceivedInvitationRemovedNotification

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

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

// optional .bgs.protocol.InvitationRemovedReason reason = 4;
inline bool ReceivedInvitationRemovedNotification::has_reason() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void ReceivedInvitationRemovedNotification::set_has_reason() {
  _has_bits_[0] |= 0x00000004u;
}
inline void ReceivedInvitationRemovedNotification::clear_has_reason() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void ReceivedInvitationRemovedNotification::clear_reason() {
  reason_ = 0;
  clear_has_reason();
}
inline ::bgs::protocol::InvitationRemovedReason ReceivedInvitationRemovedNotification::reason() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.membership.ReceivedInvitationRemovedNotification.reason)
  return static_cast< ::bgs::protocol::InvitationRemovedReason >(reason_);
}
inline void ReceivedInvitationRemovedNotification::set_reason(::bgs::protocol::InvitationRemovedReason value) {
  assert(::bgs::protocol::InvitationRemovedReason_IsValid(value));
  set_has_reason();
  reason_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.membership.ReceivedInvitationRemovedNotification.reason)
}

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

// SharedSettingsChangedNotification

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

// optional .bgs.protocol.club.v1.ClubSharedSettingsAssignment assignment = 4;
inline bool SharedSettingsChangedNotification::has_assignment() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void SharedSettingsChangedNotification::set_has_assignment() {
  _has_bits_[0] |= 0x00000002u;
}
inline void SharedSettingsChangedNotification::clear_has_assignment() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void SharedSettingsChangedNotification::clear_assignment() {
  if (assignment_ != NULL) assignment_->::bgs::protocol::club::v1::ClubSharedSettingsAssignment::Clear();
  clear_has_assignment();
}
inline const ::bgs::protocol::club::v1::ClubSharedSettingsAssignment& SharedSettingsChangedNotification::assignment() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.membership.SharedSettingsChangedNotification.assignment)
  return assignment_ != NULL ? *assignment_ : *default_instance_->assignment_;
}
inline ::bgs::protocol::club::v1::ClubSharedSettingsAssignment* SharedSettingsChangedNotification::mutable_assignment() {
  set_has_assignment();
  if (assignment_ == NULL) assignment_ = new ::bgs::protocol::club::v1::ClubSharedSettingsAssignment;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.membership.SharedSettingsChangedNotification.assignment)
  return assignment_;
}
inline ::bgs::protocol::club::v1::ClubSharedSettingsAssignment* SharedSettingsChangedNotification::release_assignment() {
  clear_has_assignment();
  ::bgs::protocol::club::v1::ClubSharedSettingsAssignment* temp = assignment_;
  assignment_ = NULL;
  return temp;
}
inline void SharedSettingsChangedNotification::set_allocated_assignment(::bgs::protocol::club::v1::ClubSharedSettingsAssignment* assignment) {
  delete assignment_;
  assignment_ = assignment;
  if (assignment) {
    set_has_assignment();
  } else {
    clear_has_assignment();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.club.v1.membership.SharedSettingsChangedNotification.assignment)
}

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

// StreamMentionAddedNotification

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

// optional .bgs.protocol.club.v1.StreamMention mention = 3;
inline bool StreamMentionAddedNotification::has_mention() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void StreamMentionAddedNotification::set_has_mention() {
  _has_bits_[0] |= 0x00000002u;
}
inline void StreamMentionAddedNotification::clear_has_mention() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void StreamMentionAddedNotification::clear_mention() {
  if (mention_ != NULL) mention_->::bgs::protocol::club::v1::StreamMention::Clear();
  clear_has_mention();
}
inline const ::bgs::protocol::club::v1::StreamMention& StreamMentionAddedNotification::mention() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.membership.StreamMentionAddedNotification.mention)
  return mention_ != NULL ? *mention_ : *default_instance_->mention_;
}
inline ::bgs::protocol::club::v1::StreamMention* StreamMentionAddedNotification::mutable_mention() {
  set_has_mention();
  if (mention_ == NULL) mention_ = new ::bgs::protocol::club::v1::StreamMention;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.membership.StreamMentionAddedNotification.mention)
  return mention_;
}
inline ::bgs::protocol::club::v1::StreamMention* StreamMentionAddedNotification::release_mention() {
  clear_has_mention();
  ::bgs::protocol::club::v1::StreamMention* temp = mention_;
  mention_ = NULL;
  return temp;
}
inline void StreamMentionAddedNotification::set_allocated_mention(::bgs::protocol::club::v1::StreamMention* mention) {
  delete mention_;
  mention_ = mention;
  if (mention) {
    set_has_mention();
  } else {
    clear_has_mention();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.club.v1.membership.StreamMentionAddedNotification.mention)
}

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

// StreamMentionRemovedNotification

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

// optional .bgs.protocol.TimeSeriesId mention_id = 3;
inline bool StreamMentionRemovedNotification::has_mention_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void StreamMentionRemovedNotification::set_has_mention_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void StreamMentionRemovedNotification::clear_has_mention_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void StreamMentionRemovedNotification::clear_mention_id() {
  if (mention_id_ != NULL) mention_id_->::bgs::protocol::TimeSeriesId::Clear();
  clear_has_mention_id();
}
inline const ::bgs::protocol::TimeSeriesId& StreamMentionRemovedNotification::mention_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.membership.StreamMentionRemovedNotification.mention_id)
  return mention_id_ != NULL ? *mention_id_ : *default_instance_->mention_id_;
}
inline ::bgs::protocol::TimeSeriesId* StreamMentionRemovedNotification::mutable_mention_id() {
  set_has_mention_id();
  if (mention_id_ == NULL) mention_id_ = new ::bgs::protocol::TimeSeriesId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.membership.StreamMentionRemovedNotification.mention_id)
  return mention_id_;
}
inline ::bgs::protocol::TimeSeriesId* StreamMentionRemovedNotification::release_mention_id() {
  clear_has_mention_id();
  ::bgs::protocol::TimeSeriesId* temp = mention_id_;
  mention_id_ = NULL;
  return temp;
}
inline void StreamMentionRemovedNotification::set_allocated_mention_id(::bgs::protocol::TimeSeriesId* mention_id) {
  delete mention_id_;
  mention_id_ = mention_id;
  if (mention_id) {
    set_has_mention_id();
  } else {
    clear_has_mention_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.club.v1.membership.StreamMentionRemovedNotification.mention_id)
}

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

// StreamMentionAdvanceViewTimeNotification

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

// optional uint64 view_time = 3;
inline bool StreamMentionAdvanceViewTimeNotification::has_view_time() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void StreamMentionAdvanceViewTimeNotification::set_has_view_time() {
  _has_bits_[0] |= 0x00000002u;
}
inline void StreamMentionAdvanceViewTimeNotification::clear_has_view_time() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void StreamMentionAdvanceViewTimeNotification::clear_view_time() {
  view_time_ = GOOGLE_ULONGLONG(0);
  clear_has_view_time();
}
inline ::google::protobuf::uint64 StreamMentionAdvanceViewTimeNotification::view_time() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.membership.StreamMentionAdvanceViewTimeNotification.view_time)
  return view_time_;
}
inline void StreamMentionAdvanceViewTimeNotification::set_view_time(::google::protobuf::uint64 value) {
  set_has_view_time();
  view_time_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.membership.StreamMentionAdvanceViewTimeNotification.view_time)
}


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