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

#ifndef PROTOBUF_club_5fstream_2eproto__INCLUDED
#define PROTOBUF_club_5fstream_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_enum.pb.h"
#include "club_member.pb.h"
#include "api/client/v2/attribute_types.pb.h"
#include "embed_types.pb.h"
#include "event_view_types.pb.h"
#include "message_types.pb.h"
#include "ets_types.pb.h"
#include "Define.h" // for TC_PROTO_API
// @@protoc_insertion_point(includes)

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

// Internal implementation detail -- do not call these.
void TC_PROTO_API protobuf_AddDesc_club_5fstream_2eproto();
void protobuf_AssignDesc_club_5fstream_2eproto();
void protobuf_ShutdownFile_club_5fstream_2eproto();

class StreamPosition;
class StreamAccess;
class CreateStreamOptions;
class Stream;
class MentionContent;
class CreateMessageOptions;
class ClubStreamMessageContainer;
class ContentChain;
class StreamMessage;
class StreamMention;
class StreamView;
class StreamAdvanceViewTime;
class StreamEventTime;
class StreamMentionView;
class StreamStateOptions;
class StreamStateAssignment;
class StreamTypingIndicator;

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

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

  StreamPosition(const StreamPosition& from);

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

  void Swap(StreamPosition* other);

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

  StreamPosition* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const StreamPosition& from);
  void MergeFrom(const StreamPosition& 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 uint64 stream_id = 1 [packed = true];
  inline int stream_id_size() const;
  inline void clear_stream_id();
  static const int kStreamIdFieldNumber = 1;
  inline ::google::protobuf::uint64 stream_id(int index) const;
  inline void set_stream_id(int index, ::google::protobuf::uint64 value);
  inline void add_stream_id(::google::protobuf::uint64 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
      stream_id() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
      mutable_stream_id();

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.StreamPosition)
 private:

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint64 > stream_id_;
  mutable int _stream_id_cached_byte_size_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fstream_2eproto();
  friend void protobuf_AssignDesc_club_5fstream_2eproto();
  friend void protobuf_ShutdownFile_club_5fstream_2eproto();

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

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

  StreamAccess(const StreamAccess& from);

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

  void Swap(StreamAccess* other);

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

  StreamAccess* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const StreamAccess& from);
  void MergeFrom(const StreamAccess& 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 uint32 role = 1 [packed = true];
  inline int role_size() const;
  inline void clear_role();
  static const int kRoleFieldNumber = 1;
  inline ::google::protobuf::uint32 role(int index) const;
  inline void set_role(int index, ::google::protobuf::uint32 value);
  inline void add_role(::google::protobuf::uint32 value);
  inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >&
      role() const;
  inline ::google::protobuf::RepeatedField< ::google::protobuf::uint32 >*
      mutable_role();

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.StreamAccess)
 private:

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > role_;
  mutable int _role_cached_byte_size_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fstream_2eproto();
  friend void protobuf_AssignDesc_club_5fstream_2eproto();
  friend void protobuf_ShutdownFile_club_5fstream_2eproto();

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

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

  CreateStreamOptions(const CreateStreamOptions& from);

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

  void Swap(CreateStreamOptions* other);

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

  CreateStreamOptions* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const CreateStreamOptions& from);
  void MergeFrom(const CreateStreamOptions& 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.v2.Attribute attribute = 1;
  inline int attribute_size() const;
  inline void clear_attribute();
  static const int kAttributeFieldNumber = 1;
  inline const ::bgs::protocol::v2::Attribute& attribute(int index) const;
  inline ::bgs::protocol::v2::Attribute* mutable_attribute(int index);
  inline ::bgs::protocol::v2::Attribute* add_attribute();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::v2::Attribute >&
      attribute() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::v2::Attribute >*
      mutable_attribute();

  // optional string name = 2;
  inline bool has_name() const;
  inline void clear_name();
  static const int kNameFieldNumber = 2;
  inline const ::std::string& name() const;
  inline void set_name(const ::std::string& value);
  inline void set_name(const char* value);
  inline void set_name(const char* value, size_t size);
  inline ::std::string* mutable_name();
  inline ::std::string* release_name();
  inline void set_allocated_name(::std::string* name);

  // optional string subject = 3;
  inline bool has_subject() const;
  inline void clear_subject();
  static const int kSubjectFieldNumber = 3;
  inline const ::std::string& subject() const;
  inline void set_subject(const ::std::string& value);
  inline void set_subject(const char* value);
  inline void set_subject(const char* value, size_t size);
  inline ::std::string* mutable_subject();
  inline ::std::string* release_subject();
  inline void set_allocated_subject(::std::string* subject);

  // optional .bgs.protocol.club.v1.StreamAccess access = 4;
  inline bool has_access() const;
  inline void clear_access();
  static const int kAccessFieldNumber = 4;
  inline const ::bgs::protocol::club::v1::StreamAccess& access() const;
  inline ::bgs::protocol::club::v1::StreamAccess* mutable_access();
  inline ::bgs::protocol::club::v1::StreamAccess* release_access();
  inline void set_allocated_access(::bgs::protocol::club::v1::StreamAccess* access);

  // optional .bgs.protocol.club.v1.StreamVoiceLevel voice_level = 5;
  inline bool has_voice_level() const;
  inline void clear_voice_level();
  static const int kVoiceLevelFieldNumber = 5;
  inline ::bgs::protocol::club::v1::StreamVoiceLevel voice_level() const;
  inline void set_voice_level(::bgs::protocol::club::v1::StreamVoiceLevel value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.CreateStreamOptions)
 private:
  inline void set_has_name();
  inline void clear_has_name();
  inline void set_has_subject();
  inline void clear_has_subject();
  inline void set_has_access();
  inline void clear_has_access();
  inline void set_has_voice_level();
  inline void clear_has_voice_level();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::v2::Attribute > attribute_;
  ::std::string* name_;
  ::std::string* subject_;
  ::bgs::protocol::club::v1::StreamAccess* access_;
  int voice_level_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fstream_2eproto();
  friend void protobuf_AssignDesc_club_5fstream_2eproto();
  friend void protobuf_ShutdownFile_club_5fstream_2eproto();

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

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

  Stream(const Stream& from);

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

  void Swap(Stream* other);

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

  Stream* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const Stream& from);
  void MergeFrom(const Stream& 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 uint64 club_id = 1;
  inline bool has_club_id() const;
  inline void clear_club_id();
  static const int kClubIdFieldNumber = 1;
  inline ::google::protobuf::uint64 club_id() const;
  inline void set_club_id(::google::protobuf::uint64 value);

  // optional uint64 id = 2;
  inline bool has_id() const;
  inline void clear_id();
  static const int kIdFieldNumber = 2;
  inline ::google::protobuf::uint64 id() const;
  inline void set_id(::google::protobuf::uint64 value);

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

  // optional string name = 4;
  inline bool has_name() const;
  inline void clear_name();
  static const int kNameFieldNumber = 4;
  inline const ::std::string& name() const;
  inline void set_name(const ::std::string& value);
  inline void set_name(const char* value);
  inline void set_name(const char* value, size_t size);
  inline ::std::string* mutable_name();
  inline ::std::string* release_name();
  inline void set_allocated_name(::std::string* name);

  // optional string subject = 5;
  inline bool has_subject() const;
  inline void clear_subject();
  static const int kSubjectFieldNumber = 5;
  inline const ::std::string& subject() const;
  inline void set_subject(const ::std::string& value);
  inline void set_subject(const char* value);
  inline void set_subject(const char* value, size_t size);
  inline ::std::string* mutable_subject();
  inline ::std::string* release_subject();
  inline void set_allocated_subject(::std::string* subject);

  // optional .bgs.protocol.club.v1.StreamAccess access = 6;
  inline bool has_access() const;
  inline void clear_access();
  static const int kAccessFieldNumber = 6;
  inline const ::bgs::protocol::club::v1::StreamAccess& access() const;
  inline ::bgs::protocol::club::v1::StreamAccess* mutable_access();
  inline ::bgs::protocol::club::v1::StreamAccess* release_access();
  inline void set_allocated_access(::bgs::protocol::club::v1::StreamAccess* access);

  // optional .bgs.protocol.club.v1.StreamVoiceLevel voice_level = 7;
  inline bool has_voice_level() const;
  inline void clear_voice_level();
  static const int kVoiceLevelFieldNumber = 7;
  inline ::bgs::protocol::club::v1::StreamVoiceLevel voice_level() const;
  inline void set_voice_level(::bgs::protocol::club::v1::StreamVoiceLevel value);

  // optional uint64 creation_time = 8;
  inline bool has_creation_time() const;
  inline void clear_creation_time();
  static const int kCreationTimeFieldNumber = 8;
  inline ::google::protobuf::uint64 creation_time() const;
  inline void set_creation_time(::google::protobuf::uint64 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.Stream)
 private:
  inline void set_has_club_id();
  inline void clear_has_club_id();
  inline void set_has_id();
  inline void clear_has_id();
  inline void set_has_name();
  inline void clear_has_name();
  inline void set_has_subject();
  inline void clear_has_subject();
  inline void set_has_access();
  inline void clear_has_access();
  inline void set_has_voice_level();
  inline void clear_has_voice_level();
  inline void set_has_creation_time();
  inline void clear_has_creation_time();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint64 club_id_;
  ::google::protobuf::uint64 id_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::v2::Attribute > attribute_;
  ::std::string* name_;
  ::std::string* subject_;
  ::bgs::protocol::club::v1::StreamAccess* access_;
  ::google::protobuf::uint64 creation_time_;
  int voice_level_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fstream_2eproto();
  friend void protobuf_AssignDesc_club_5fstream_2eproto();
  friend void protobuf_ShutdownFile_club_5fstream_2eproto();

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

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

  MentionContent(const MentionContent& from);

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

  void Swap(MentionContent* other);

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

  MentionContent* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const MentionContent& from);
  void MergeFrom(const MentionContent& 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 bool all = 1;
  inline bool has_all() const;
  inline void clear_all();
  static const int kAllFieldNumber = 1;
  inline bool all() const;
  inline void set_all(bool value);

  // optional bool here = 2;
  inline bool has_here() const;
  inline void clear_here();
  static const int kHereFieldNumber = 2;
  inline bool here() const;
  inline void set_here(bool value);

  // repeated .bgs.protocol.club.v1.MemberId member_id = 3;
  inline int member_id_size() const;
  inline void clear_member_id();
  static const int kMemberIdFieldNumber = 3;
  inline const ::bgs::protocol::club::v1::MemberId& member_id(int index) const;
  inline ::bgs::protocol::club::v1::MemberId* mutable_member_id(int index);
  inline ::bgs::protocol::club::v1::MemberId* add_member_id();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::club::v1::MemberId >&
      member_id() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::club::v1::MemberId >*
      mutable_member_id();

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

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.MentionContent)
 private:
  inline void set_has_all();
  inline void clear_has_all();
  inline void set_has_here();
  inline void clear_has_here();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::club::v1::MemberId > member_id_;
  ::google::protobuf::RepeatedField< ::google::protobuf::uint32 > role_;
  mutable int _role_cached_byte_size_;
  bool all_;
  bool here_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fstream_2eproto();
  friend void protobuf_AssignDesc_club_5fstream_2eproto();
  friend void protobuf_ShutdownFile_club_5fstream_2eproto();

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

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

  CreateMessageOptions(const CreateMessageOptions& from);

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

  void Swap(CreateMessageOptions* other);

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

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

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

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

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

  // optional string content = 2;
  inline bool has_content() const;
  inline void clear_content();
  static const int kContentFieldNumber = 2;
  inline const ::std::string& content() const;
  inline void set_content(const ::std::string& value);
  inline void set_content(const char* value);
  inline void set_content(const char* value, size_t size);
  inline ::std::string* mutable_content();
  inline ::std::string* release_content();
  inline void set_allocated_content(::std::string* content);

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

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.CreateMessageOptions)
 private:
  inline void set_has_content();
  inline void clear_has_content();
  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_;
  ::std::string* content_;
  ::bgs::protocol::club::v1::MentionContent* mention_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fstream_2eproto();
  friend void protobuf_AssignDesc_club_5fstream_2eproto();
  friend void protobuf_ShutdownFile_club_5fstream_2eproto();

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

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

  ClubStreamMessageContainer(const ClubStreamMessageContainer& from);

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

  void Swap(ClubStreamMessageContainer* other);

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

  ClubStreamMessageContainer* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const ClubStreamMessageContainer& from);
  void MergeFrom(const ClubStreamMessageContainer& 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.StreamMessage message = 1;
  inline int message_size() const;
  inline void clear_message();
  static const int kMessageFieldNumber = 1;
  inline const ::bgs::protocol::club::v1::StreamMessage& message(int index) const;
  inline ::bgs::protocol::club::v1::StreamMessage* mutable_message(int index);
  inline ::bgs::protocol::club::v1::StreamMessage* add_message();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::club::v1::StreamMessage >&
      message() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::club::v1::StreamMessage >*
      mutable_message();

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.ClubStreamMessageContainer)
 private:

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::club::v1::StreamMessage > message_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fstream_2eproto();
  friend void protobuf_AssignDesc_club_5fstream_2eproto();
  friend void protobuf_ShutdownFile_club_5fstream_2eproto();

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

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

  ContentChain(const ContentChain& from);

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

  void Swap(ContentChain* other);

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

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

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

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

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

  // optional string content = 5;
  inline bool has_content() const;
  inline void clear_content();
  static const int kContentFieldNumber = 5;
  inline const ::std::string& content() const;
  inline void set_content(const ::std::string& value);
  inline void set_content(const char* value);
  inline void set_content(const char* value, size_t size);
  inline ::std::string* mutable_content();
  inline ::std::string* release_content();
  inline void set_allocated_content(::std::string* content);

  // repeated .bgs.protocol.EmbedInfo embed = 6;
  inline int embed_size() const;
  inline void clear_embed();
  static const int kEmbedFieldNumber = 6;
  inline const ::bgs::protocol::EmbedInfo& embed(int index) const;
  inline ::bgs::protocol::EmbedInfo* mutable_embed(int index);
  inline ::bgs::protocol::EmbedInfo* add_embed();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::EmbedInfo >&
      embed() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::EmbedInfo >*
      mutable_embed();

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

  // optional uint64 edit_time = 8;
  inline bool has_edit_time() const;
  inline void clear_edit_time();
  static const int kEditTimeFieldNumber = 8;
  inline ::google::protobuf::uint64 edit_time() const;
  inline void set_edit_time(::google::protobuf::uint64 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.ContentChain)
 private:
  inline void set_has_content();
  inline void clear_has_content();
  inline void set_has_mention();
  inline void clear_has_mention();
  inline void set_has_edit_time();
  inline void clear_has_edit_time();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::std::string* content_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::EmbedInfo > embed_;
  ::bgs::protocol::club::v1::MentionContent* mention_;
  ::google::protobuf::uint64 edit_time_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fstream_2eproto();
  friend void protobuf_AssignDesc_club_5fstream_2eproto();
  friend void protobuf_ShutdownFile_club_5fstream_2eproto();

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

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

  StreamMessage(const StreamMessage& from);

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

  void Swap(StreamMessage* other);

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

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

  // optional .bgs.protocol.club.v1.MemberDescription author = 4;
  inline bool has_author() const;
  inline void clear_author();
  static const int kAuthorFieldNumber = 4;
  inline const ::bgs::protocol::club::v1::MemberDescription& author() const;
  inline ::bgs::protocol::club::v1::MemberDescription* mutable_author();
  inline ::bgs::protocol::club::v1::MemberDescription* release_author();
  inline void set_allocated_author(::bgs::protocol::club::v1::MemberDescription* author);

  // repeated .bgs.protocol.club.v1.ContentChain content_chain = 6;
  inline int content_chain_size() const;
  inline void clear_content_chain();
  static const int kContentChainFieldNumber = 6;
  inline const ::bgs::protocol::club::v1::ContentChain& content_chain(int index) const;
  inline ::bgs::protocol::club::v1::ContentChain* mutable_content_chain(int index);
  inline ::bgs::protocol::club::v1::ContentChain* add_content_chain();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::club::v1::ContentChain >&
      content_chain() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::club::v1::ContentChain >*
      mutable_content_chain();

  // optional .bgs.protocol.club.v1.MemberDescription destroyer = 15;
  inline bool has_destroyer() const;
  inline void clear_destroyer();
  static const int kDestroyerFieldNumber = 15;
  inline const ::bgs::protocol::club::v1::MemberDescription& destroyer() const;
  inline ::bgs::protocol::club::v1::MemberDescription* mutable_destroyer();
  inline ::bgs::protocol::club::v1::MemberDescription* release_destroyer();
  inline void set_allocated_destroyer(::bgs::protocol::club::v1::MemberDescription* destroyer);

  // optional bool destroyed = 16;
  inline bool has_destroyed() const;
  inline void clear_destroyed();
  static const int kDestroyedFieldNumber = 16;
  inline bool destroyed() const;
  inline void set_destroyed(bool value);

  // optional uint64 destroy_time = 17;
  inline bool has_destroy_time() const;
  inline void clear_destroy_time();
  static const int kDestroyTimeFieldNumber = 17;
  inline ::google::protobuf::uint64 destroy_time() const;
  inline void set_destroy_time(::google::protobuf::uint64 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.StreamMessage)
 private:
  inline void set_has_id();
  inline void clear_has_id();
  inline void set_has_author();
  inline void clear_has_author();
  inline void set_has_destroyer();
  inline void clear_has_destroyer();
  inline void set_has_destroyed();
  inline void clear_has_destroyed();
  inline void set_has_destroy_time();
  inline void clear_has_destroy_time();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::MessageId* id_;
  ::bgs::protocol::club::v1::MemberDescription* author_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::club::v1::ContentChain > content_chain_;
  ::bgs::protocol::club::v1::MemberDescription* destroyer_;
  ::google::protobuf::uint64 destroy_time_;
  bool destroyed_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fstream_2eproto();
  friend void protobuf_AssignDesc_club_5fstream_2eproto();
  friend void protobuf_ShutdownFile_club_5fstream_2eproto();

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

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

  StreamMention(const StreamMention& from);

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

  void Swap(StreamMention* other);

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

  StreamMention* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const StreamMention& from);
  void MergeFrom(const StreamMention& 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 uint64 club_id = 1;
  inline bool has_club_id() const;
  inline void clear_club_id();
  static const int kClubIdFieldNumber = 1;
  inline ::google::protobuf::uint64 club_id() const;
  inline void set_club_id(::google::protobuf::uint64 value);

  // optional uint64 stream_id = 2;
  inline bool has_stream_id() const;
  inline void clear_stream_id();
  static const int kStreamIdFieldNumber = 2;
  inline ::google::protobuf::uint64 stream_id() const;
  inline void set_stream_id(::google::protobuf::uint64 value);

  // optional .bgs.protocol.MessageId message_id = 3;
  inline bool has_message_id() const;
  inline void clear_message_id();
  static const int kMessageIdFieldNumber = 3;
  inline const ::bgs::protocol::MessageId& message_id() const;
  inline ::bgs::protocol::MessageId* mutable_message_id();
  inline ::bgs::protocol::MessageId* release_message_id();
  inline void set_allocated_message_id(::bgs::protocol::MessageId* message_id);

  // optional .bgs.protocol.club.v1.MemberDescription author = 4;
  inline bool has_author() const;
  inline void clear_author();
  static const int kAuthorFieldNumber = 4;
  inline const ::bgs::protocol::club::v1::MemberDescription& author() const;
  inline ::bgs::protocol::club::v1::MemberDescription* mutable_author();
  inline ::bgs::protocol::club::v1::MemberDescription* release_author();
  inline void set_allocated_author(::bgs::protocol::club::v1::MemberDescription* author);

  // optional bool destroyed = 5;
  inline bool has_destroyed() const;
  inline void clear_destroyed();
  static const int kDestroyedFieldNumber = 5;
  inline bool destroyed() const;
  inline void set_destroyed(bool value);

  // optional .bgs.protocol.TimeSeriesId mention_id = 6;
  inline bool has_mention_id() const;
  inline void clear_mention_id();
  static const int kMentionIdFieldNumber = 6;
  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);

  // optional .bgs.protocol.club.v1.MemberId member_id = 7;
  inline bool has_member_id() const;
  inline void clear_member_id();
  static const int kMemberIdFieldNumber = 7;
  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 .bgs.protocol.club.v1.StreamMessage message = 8;
  inline bool has_message() const;
  inline void clear_message();
  static const int kMessageFieldNumber = 8;
  inline const ::bgs::protocol::club::v1::StreamMessage& message() const;
  inline ::bgs::protocol::club::v1::StreamMessage* mutable_message();
  inline ::bgs::protocol::club::v1::StreamMessage* release_message();
  inline void set_allocated_message(::bgs::protocol::club::v1::StreamMessage* message);

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.StreamMention)
 private:
  inline void set_has_club_id();
  inline void clear_has_club_id();
  inline void set_has_stream_id();
  inline void clear_has_stream_id();
  inline void set_has_message_id();
  inline void clear_has_message_id();
  inline void set_has_author();
  inline void clear_has_author();
  inline void set_has_destroyed();
  inline void clear_has_destroyed();
  inline void set_has_mention_id();
  inline void clear_has_mention_id();
  inline void set_has_member_id();
  inline void clear_has_member_id();
  inline void set_has_message();
  inline void clear_has_message();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint64 club_id_;
  ::google::protobuf::uint64 stream_id_;
  ::bgs::protocol::MessageId* message_id_;
  ::bgs::protocol::club::v1::MemberDescription* author_;
  ::bgs::protocol::TimeSeriesId* mention_id_;
  ::bgs::protocol::club::v1::MemberId* member_id_;
  ::bgs::protocol::club::v1::StreamMessage* message_;
  bool destroyed_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fstream_2eproto();
  friend void protobuf_AssignDesc_club_5fstream_2eproto();
  friend void protobuf_ShutdownFile_club_5fstream_2eproto();

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

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

  StreamView(const StreamView& from);

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

  void Swap(StreamView* other);

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

  StreamView* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const StreamView& from);
  void MergeFrom(const StreamView& 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 uint64 club_id = 1;
  inline bool has_club_id() const;
  inline void clear_club_id();
  static const int kClubIdFieldNumber = 1;
  inline ::google::protobuf::uint64 club_id() const;
  inline void set_club_id(::google::protobuf::uint64 value);

  // optional uint64 stream_id = 2;
  inline bool has_stream_id() const;
  inline void clear_stream_id();
  static const int kStreamIdFieldNumber = 2;
  inline ::google::protobuf::uint64 stream_id() const;
  inline void set_stream_id(::google::protobuf::uint64 value);

  // optional .bgs.protocol.ViewMarker marker = 3;
  inline bool has_marker() const;
  inline void clear_marker();
  static const int kMarkerFieldNumber = 3;
  inline const ::bgs::protocol::ViewMarker& marker() const;
  inline ::bgs::protocol::ViewMarker* mutable_marker();
  inline ::bgs::protocol::ViewMarker* release_marker();
  inline void set_allocated_marker(::bgs::protocol::ViewMarker* marker);

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.StreamView)
 private:
  inline void set_has_club_id();
  inline void clear_has_club_id();
  inline void set_has_stream_id();
  inline void clear_has_stream_id();
  inline void set_has_marker();
  inline void clear_has_marker();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint64 club_id_;
  ::google::protobuf::uint64 stream_id_;
  ::bgs::protocol::ViewMarker* marker_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fstream_2eproto();
  friend void protobuf_AssignDesc_club_5fstream_2eproto();
  friend void protobuf_ShutdownFile_club_5fstream_2eproto();

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

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

  StreamAdvanceViewTime(const StreamAdvanceViewTime& from);

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

  void Swap(StreamAdvanceViewTime* other);

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

  StreamAdvanceViewTime* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const StreamAdvanceViewTime& from);
  void MergeFrom(const StreamAdvanceViewTime& 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 uint64 stream_id = 1;
  inline bool has_stream_id() const;
  inline void clear_stream_id();
  static const int kStreamIdFieldNumber = 1;
  inline ::google::protobuf::uint64 stream_id() const;
  inline void set_stream_id(::google::protobuf::uint64 value);

  // optional uint64 view_time = 2;
  inline bool has_view_time() const;
  inline void clear_view_time();
  static const int kViewTimeFieldNumber = 2;
  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.StreamAdvanceViewTime)
 private:
  inline void set_has_stream_id();
  inline void clear_has_stream_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_;
  ::google::protobuf::uint64 stream_id_;
  ::google::protobuf::uint64 view_time_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fstream_2eproto();
  friend void protobuf_AssignDesc_club_5fstream_2eproto();
  friend void protobuf_ShutdownFile_club_5fstream_2eproto();

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

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

  StreamEventTime(const StreamEventTime& from);

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

  void Swap(StreamEventTime* other);

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

  StreamEventTime* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const StreamEventTime& from);
  void MergeFrom(const StreamEventTime& 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 uint64 stream_id = 1;
  inline bool has_stream_id() const;
  inline void clear_stream_id();
  static const int kStreamIdFieldNumber = 1;
  inline ::google::protobuf::uint64 stream_id() const;
  inline void set_stream_id(::google::protobuf::uint64 value);

  // optional uint64 event_time = 2;
  inline bool has_event_time() const;
  inline void clear_event_time();
  static const int kEventTimeFieldNumber = 2;
  inline ::google::protobuf::uint64 event_time() const;
  inline void set_event_time(::google::protobuf::uint64 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.StreamEventTime)
 private:
  inline void set_has_stream_id();
  inline void clear_has_stream_id();
  inline void set_has_event_time();
  inline void clear_has_event_time();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint64 stream_id_;
  ::google::protobuf::uint64 event_time_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fstream_2eproto();
  friend void protobuf_AssignDesc_club_5fstream_2eproto();
  friend void protobuf_ShutdownFile_club_5fstream_2eproto();

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

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

  StreamMentionView(const StreamMentionView& from);

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

  void Swap(StreamMentionView* other);

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

  StreamMentionView* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const StreamMentionView& from);
  void MergeFrom(const StreamMentionView& 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 uint64 club_id = 1;
  inline bool has_club_id() const;
  inline void clear_club_id();
  static const int kClubIdFieldNumber = 1;
  inline ::google::protobuf::uint64 club_id() const;
  inline void set_club_id(::google::protobuf::uint64 value);

  // optional uint64 stream_id = 2;
  inline bool has_stream_id() const;
  inline void clear_stream_id();
  static const int kStreamIdFieldNumber = 2;
  inline ::google::protobuf::uint64 stream_id() const;
  inline void set_stream_id(::google::protobuf::uint64 value);

  // optional .bgs.protocol.ViewMarker marker = 3;
  inline bool has_marker() const;
  inline void clear_marker();
  static const int kMarkerFieldNumber = 3;
  inline const ::bgs::protocol::ViewMarker& marker() const;
  inline ::bgs::protocol::ViewMarker* mutable_marker();
  inline ::bgs::protocol::ViewMarker* release_marker();
  inline void set_allocated_marker(::bgs::protocol::ViewMarker* marker);

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.StreamMentionView)
 private:
  inline void set_has_club_id();
  inline void clear_has_club_id();
  inline void set_has_stream_id();
  inline void clear_has_stream_id();
  inline void set_has_marker();
  inline void clear_has_marker();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint64 club_id_;
  ::google::protobuf::uint64 stream_id_;
  ::bgs::protocol::ViewMarker* marker_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fstream_2eproto();
  friend void protobuf_AssignDesc_club_5fstream_2eproto();
  friend void protobuf_ShutdownFile_club_5fstream_2eproto();

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

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

  StreamStateOptions(const StreamStateOptions& from);

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

  void Swap(StreamStateOptions* other);

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

  StreamStateOptions* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const StreamStateOptions& from);
  void MergeFrom(const StreamStateOptions& 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.v2.Attribute attribute = 1;
  inline int attribute_size() const;
  inline void clear_attribute();
  static const int kAttributeFieldNumber = 1;
  inline const ::bgs::protocol::v2::Attribute& attribute(int index) const;
  inline ::bgs::protocol::v2::Attribute* mutable_attribute(int index);
  inline ::bgs::protocol::v2::Attribute* add_attribute();
  inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::v2::Attribute >&
      attribute() const;
  inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::v2::Attribute >*
      mutable_attribute();

  // optional string name = 2;
  inline bool has_name() const;
  inline void clear_name();
  static const int kNameFieldNumber = 2;
  inline const ::std::string& name() const;
  inline void set_name(const ::std::string& value);
  inline void set_name(const char* value);
  inline void set_name(const char* value, size_t size);
  inline ::std::string* mutable_name();
  inline ::std::string* release_name();
  inline void set_allocated_name(::std::string* name);

  // optional string subject = 3;
  inline bool has_subject() const;
  inline void clear_subject();
  static const int kSubjectFieldNumber = 3;
  inline const ::std::string& subject() const;
  inline void set_subject(const ::std::string& value);
  inline void set_subject(const char* value);
  inline void set_subject(const char* value, size_t size);
  inline ::std::string* mutable_subject();
  inline ::std::string* release_subject();
  inline void set_allocated_subject(::std::string* subject);

  // optional .bgs.protocol.club.v1.StreamAccess access = 4;
  inline bool has_access() const;
  inline void clear_access();
  static const int kAccessFieldNumber = 4;
  inline const ::bgs::protocol::club::v1::StreamAccess& access() const;
  inline ::bgs::protocol::club::v1::StreamAccess* mutable_access();
  inline ::bgs::protocol::club::v1::StreamAccess* release_access();
  inline void set_allocated_access(::bgs::protocol::club::v1::StreamAccess* access);

  // optional .bgs.protocol.club.v1.StreamVoiceLevel voice_level = 5;
  inline bool has_voice_level() const;
  inline void clear_voice_level();
  static const int kVoiceLevelFieldNumber = 5;
  inline ::bgs::protocol::club::v1::StreamVoiceLevel voice_level() const;
  inline void set_voice_level(::bgs::protocol::club::v1::StreamVoiceLevel value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.StreamStateOptions)
 private:
  inline void set_has_name();
  inline void clear_has_name();
  inline void set_has_subject();
  inline void clear_has_subject();
  inline void set_has_access();
  inline void clear_has_access();
  inline void set_has_voice_level();
  inline void clear_has_voice_level();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::v2::Attribute > attribute_;
  ::std::string* name_;
  ::std::string* subject_;
  ::bgs::protocol::club::v1::StreamAccess* access_;
  int voice_level_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fstream_2eproto();
  friend void protobuf_AssignDesc_club_5fstream_2eproto();
  friend void protobuf_ShutdownFile_club_5fstream_2eproto();

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

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

  StreamStateAssignment(const StreamStateAssignment& from);

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

  void Swap(StreamStateAssignment* other);

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

  StreamStateAssignment* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const StreamStateAssignment& from);
  void MergeFrom(const StreamStateAssignment& 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 uint64 stream_id = 1;
  inline bool has_stream_id() const;
  inline void clear_stream_id();
  static const int kStreamIdFieldNumber = 1;
  inline ::google::protobuf::uint64 stream_id() const;
  inline void set_stream_id(::google::protobuf::uint64 value);

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

  // optional string name = 3;
  inline bool has_name() const;
  inline void clear_name();
  static const int kNameFieldNumber = 3;
  inline const ::std::string& name() const;
  inline void set_name(const ::std::string& value);
  inline void set_name(const char* value);
  inline void set_name(const char* value, size_t size);
  inline ::std::string* mutable_name();
  inline ::std::string* release_name();
  inline void set_allocated_name(::std::string* name);

  // optional string subject = 4;
  inline bool has_subject() const;
  inline void clear_subject();
  static const int kSubjectFieldNumber = 4;
  inline const ::std::string& subject() const;
  inline void set_subject(const ::std::string& value);
  inline void set_subject(const char* value);
  inline void set_subject(const char* value, size_t size);
  inline ::std::string* mutable_subject();
  inline ::std::string* release_subject();
  inline void set_allocated_subject(::std::string* subject);

  // optional .bgs.protocol.club.v1.StreamAccess access = 5;
  inline bool has_access() const;
  inline void clear_access();
  static const int kAccessFieldNumber = 5;
  inline const ::bgs::protocol::club::v1::StreamAccess& access() const;
  inline ::bgs::protocol::club::v1::StreamAccess* mutable_access();
  inline ::bgs::protocol::club::v1::StreamAccess* release_access();
  inline void set_allocated_access(::bgs::protocol::club::v1::StreamAccess* access);

  // optional bool stream_subscription_removed = 6;
  inline bool has_stream_subscription_removed() const;
  inline void clear_stream_subscription_removed();
  static const int kStreamSubscriptionRemovedFieldNumber = 6;
  inline bool stream_subscription_removed() const;
  inline void set_stream_subscription_removed(bool value);

  // optional .bgs.protocol.club.v1.StreamVoiceLevel voice_level = 7;
  inline bool has_voice_level() const;
  inline void clear_voice_level();
  static const int kVoiceLevelFieldNumber = 7;
  inline ::bgs::protocol::club::v1::StreamVoiceLevel voice_level() const;
  inline void set_voice_level(::bgs::protocol::club::v1::StreamVoiceLevel value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.StreamStateAssignment)
 private:
  inline void set_has_stream_id();
  inline void clear_has_stream_id();
  inline void set_has_name();
  inline void clear_has_name();
  inline void set_has_subject();
  inline void clear_has_subject();
  inline void set_has_access();
  inline void clear_has_access();
  inline void set_has_stream_subscription_removed();
  inline void clear_has_stream_subscription_removed();
  inline void set_has_voice_level();
  inline void clear_has_voice_level();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::uint64 stream_id_;
  ::google::protobuf::RepeatedPtrField< ::bgs::protocol::v2::Attribute > attribute_;
  ::std::string* name_;
  ::std::string* subject_;
  ::bgs::protocol::club::v1::StreamAccess* access_;
  bool stream_subscription_removed_;
  int voice_level_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fstream_2eproto();
  friend void protobuf_AssignDesc_club_5fstream_2eproto();
  friend void protobuf_ShutdownFile_club_5fstream_2eproto();

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

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

  StreamTypingIndicator(const StreamTypingIndicator& from);

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

  void Swap(StreamTypingIndicator* other);

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

  StreamTypingIndicator* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const StreamTypingIndicator& from);
  void MergeFrom(const StreamTypingIndicator& 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 author_id = 1;
  inline bool has_author_id() const;
  inline void clear_author_id();
  static const int kAuthorIdFieldNumber = 1;
  inline const ::bgs::protocol::club::v1::MemberId& author_id() const;
  inline ::bgs::protocol::club::v1::MemberId* mutable_author_id();
  inline ::bgs::protocol::club::v1::MemberId* release_author_id();
  inline void set_allocated_author_id(::bgs::protocol::club::v1::MemberId* author_id);

  // optional .bgs.protocol.TypingIndicator indicator = 2;
  inline bool has_indicator() const;
  inline void clear_indicator();
  static const int kIndicatorFieldNumber = 2;
  inline ::bgs::protocol::TypingIndicator indicator() const;
  inline void set_indicator(::bgs::protocol::TypingIndicator value);

  // optional uint64 epoch = 3;
  inline bool has_epoch() const;
  inline void clear_epoch();
  static const int kEpochFieldNumber = 3;
  inline ::google::protobuf::uint64 epoch() const;
  inline void set_epoch(::google::protobuf::uint64 value);

  // @@protoc_insertion_point(class_scope:bgs.protocol.club.v1.StreamTypingIndicator)
 private:
  inline void set_has_author_id();
  inline void clear_has_author_id();
  inline void set_has_indicator();
  inline void clear_has_indicator();
  inline void set_has_epoch();
  inline void clear_has_epoch();

  ::google::protobuf::UnknownFieldSet _unknown_fields_;

  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::bgs::protocol::club::v1::MemberId* author_id_;
  ::google::protobuf::uint64 epoch_;
  int indicator_;
  friend void TC_PROTO_API protobuf_AddDesc_club_5fstream_2eproto();
  friend void protobuf_AssignDesc_club_5fstream_2eproto();
  friend void protobuf_ShutdownFile_club_5fstream_2eproto();

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


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


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

// StreamPosition

// repeated uint64 stream_id = 1 [packed = true];
inline int StreamPosition::stream_id_size() const {
  return stream_id_.size();
}
inline void StreamPosition::clear_stream_id() {
  stream_id_.Clear();
}
inline ::google::protobuf::uint64 StreamPosition::stream_id(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamPosition.stream_id)
  return stream_id_.Get(index);
}
inline void StreamPosition::set_stream_id(int index, ::google::protobuf::uint64 value) {
  stream_id_.Set(index, value);
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.StreamPosition.stream_id)
}
inline void StreamPosition::add_stream_id(::google::protobuf::uint64 value) {
  stream_id_.Add(value);
  // @@protoc_insertion_point(field_add:bgs.protocol.club.v1.StreamPosition.stream_id)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >&
StreamPosition::stream_id() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.club.v1.StreamPosition.stream_id)
  return stream_id_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::uint64 >*
StreamPosition::mutable_stream_id() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.club.v1.StreamPosition.stream_id)
  return &stream_id_;
}

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

// StreamAccess

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

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

// CreateStreamOptions

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

// optional string name = 2;
inline bool CreateStreamOptions::has_name() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void CreateStreamOptions::set_has_name() {
  _has_bits_[0] |= 0x00000002u;
}
inline void CreateStreamOptions::clear_has_name() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void CreateStreamOptions::clear_name() {
  if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_->clear();
  }
  clear_has_name();
}
inline const ::std::string& CreateStreamOptions::name() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.CreateStreamOptions.name)
  return *name_;
}
inline void CreateStreamOptions::set_name(const ::std::string& value) {
  set_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_ = new ::std::string;
  }
  name_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.CreateStreamOptions.name)
}
inline void CreateStreamOptions::set_name(const char* value) {
  set_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_ = new ::std::string;
  }
  name_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.club.v1.CreateStreamOptions.name)
}
inline void CreateStreamOptions::set_name(const char* value, size_t size) {
  set_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_ = new ::std::string;
  }
  name_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.club.v1.CreateStreamOptions.name)
}
inline ::std::string* CreateStreamOptions::mutable_name() {
  set_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.CreateStreamOptions.name)
  return name_;
}
inline ::std::string* CreateStreamOptions::release_name() {
  clear_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = name_;
    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void CreateStreamOptions::set_allocated_name(::std::string* name) {
  if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete name_;
  }
  if (name) {
    set_has_name();
    name_ = name;
  } else {
    clear_has_name();
    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.club.v1.CreateStreamOptions.name)
}

// optional string subject = 3;
inline bool CreateStreamOptions::has_subject() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void CreateStreamOptions::set_has_subject() {
  _has_bits_[0] |= 0x00000004u;
}
inline void CreateStreamOptions::clear_has_subject() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void CreateStreamOptions::clear_subject() {
  if (subject_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    subject_->clear();
  }
  clear_has_subject();
}
inline const ::std::string& CreateStreamOptions::subject() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.CreateStreamOptions.subject)
  return *subject_;
}
inline void CreateStreamOptions::set_subject(const ::std::string& value) {
  set_has_subject();
  if (subject_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    subject_ = new ::std::string;
  }
  subject_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.CreateStreamOptions.subject)
}
inline void CreateStreamOptions::set_subject(const char* value) {
  set_has_subject();
  if (subject_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    subject_ = new ::std::string;
  }
  subject_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.club.v1.CreateStreamOptions.subject)
}
inline void CreateStreamOptions::set_subject(const char* value, size_t size) {
  set_has_subject();
  if (subject_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    subject_ = new ::std::string;
  }
  subject_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.club.v1.CreateStreamOptions.subject)
}
inline ::std::string* CreateStreamOptions::mutable_subject() {
  set_has_subject();
  if (subject_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    subject_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.CreateStreamOptions.subject)
  return subject_;
}
inline ::std::string* CreateStreamOptions::release_subject() {
  clear_has_subject();
  if (subject_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = subject_;
    subject_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void CreateStreamOptions::set_allocated_subject(::std::string* subject) {
  if (subject_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete subject_;
  }
  if (subject) {
    set_has_subject();
    subject_ = subject;
  } else {
    clear_has_subject();
    subject_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.club.v1.CreateStreamOptions.subject)
}

// optional .bgs.protocol.club.v1.StreamAccess access = 4;
inline bool CreateStreamOptions::has_access() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void CreateStreamOptions::set_has_access() {
  _has_bits_[0] |= 0x00000008u;
}
inline void CreateStreamOptions::clear_has_access() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void CreateStreamOptions::clear_access() {
  if (access_ != NULL) access_->::bgs::protocol::club::v1::StreamAccess::Clear();
  clear_has_access();
}
inline const ::bgs::protocol::club::v1::StreamAccess& CreateStreamOptions::access() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.CreateStreamOptions.access)
  return access_ != NULL ? *access_ : *default_instance_->access_;
}
inline ::bgs::protocol::club::v1::StreamAccess* CreateStreamOptions::mutable_access() {
  set_has_access();
  if (access_ == NULL) access_ = new ::bgs::protocol::club::v1::StreamAccess;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.CreateStreamOptions.access)
  return access_;
}
inline ::bgs::protocol::club::v1::StreamAccess* CreateStreamOptions::release_access() {
  clear_has_access();
  ::bgs::protocol::club::v1::StreamAccess* temp = access_;
  access_ = NULL;
  return temp;
}
inline void CreateStreamOptions::set_allocated_access(::bgs::protocol::club::v1::StreamAccess* access) {
  delete access_;
  access_ = access;
  if (access) {
    set_has_access();
  } else {
    clear_has_access();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.club.v1.CreateStreamOptions.access)
}

// optional .bgs.protocol.club.v1.StreamVoiceLevel voice_level = 5;
inline bool CreateStreamOptions::has_voice_level() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void CreateStreamOptions::set_has_voice_level() {
  _has_bits_[0] |= 0x00000010u;
}
inline void CreateStreamOptions::clear_has_voice_level() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void CreateStreamOptions::clear_voice_level() {
  voice_level_ = 0;
  clear_has_voice_level();
}
inline ::bgs::protocol::club::v1::StreamVoiceLevel CreateStreamOptions::voice_level() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.CreateStreamOptions.voice_level)
  return static_cast< ::bgs::protocol::club::v1::StreamVoiceLevel >(voice_level_);
}
inline void CreateStreamOptions::set_voice_level(::bgs::protocol::club::v1::StreamVoiceLevel value) {
  assert(::bgs::protocol::club::v1::StreamVoiceLevel_IsValid(value));
  set_has_voice_level();
  voice_level_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.CreateStreamOptions.voice_level)
}

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

// Stream

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

// optional uint64 id = 2;
inline bool Stream::has_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void Stream::set_has_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void Stream::clear_has_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void Stream::clear_id() {
  id_ = GOOGLE_ULONGLONG(0);
  clear_has_id();
}
inline ::google::protobuf::uint64 Stream::id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.Stream.id)
  return id_;
}
inline void Stream::set_id(::google::protobuf::uint64 value) {
  set_has_id();
  id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.Stream.id)
}

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

// optional string name = 4;
inline bool Stream::has_name() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void Stream::set_has_name() {
  _has_bits_[0] |= 0x00000008u;
}
inline void Stream::clear_has_name() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void Stream::clear_name() {
  if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_->clear();
  }
  clear_has_name();
}
inline const ::std::string& Stream::name() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.Stream.name)
  return *name_;
}
inline void Stream::set_name(const ::std::string& value) {
  set_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_ = new ::std::string;
  }
  name_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.Stream.name)
}
inline void Stream::set_name(const char* value) {
  set_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_ = new ::std::string;
  }
  name_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.club.v1.Stream.name)
}
inline void Stream::set_name(const char* value, size_t size) {
  set_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_ = new ::std::string;
  }
  name_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.club.v1.Stream.name)
}
inline ::std::string* Stream::mutable_name() {
  set_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.Stream.name)
  return name_;
}
inline ::std::string* Stream::release_name() {
  clear_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = name_;
    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void Stream::set_allocated_name(::std::string* name) {
  if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete name_;
  }
  if (name) {
    set_has_name();
    name_ = name;
  } else {
    clear_has_name();
    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.club.v1.Stream.name)
}

// optional string subject = 5;
inline bool Stream::has_subject() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void Stream::set_has_subject() {
  _has_bits_[0] |= 0x00000010u;
}
inline void Stream::clear_has_subject() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void Stream::clear_subject() {
  if (subject_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    subject_->clear();
  }
  clear_has_subject();
}
inline const ::std::string& Stream::subject() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.Stream.subject)
  return *subject_;
}
inline void Stream::set_subject(const ::std::string& value) {
  set_has_subject();
  if (subject_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    subject_ = new ::std::string;
  }
  subject_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.Stream.subject)
}
inline void Stream::set_subject(const char* value) {
  set_has_subject();
  if (subject_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    subject_ = new ::std::string;
  }
  subject_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.club.v1.Stream.subject)
}
inline void Stream::set_subject(const char* value, size_t size) {
  set_has_subject();
  if (subject_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    subject_ = new ::std::string;
  }
  subject_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.club.v1.Stream.subject)
}
inline ::std::string* Stream::mutable_subject() {
  set_has_subject();
  if (subject_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    subject_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.Stream.subject)
  return subject_;
}
inline ::std::string* Stream::release_subject() {
  clear_has_subject();
  if (subject_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = subject_;
    subject_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void Stream::set_allocated_subject(::std::string* subject) {
  if (subject_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete subject_;
  }
  if (subject) {
    set_has_subject();
    subject_ = subject;
  } else {
    clear_has_subject();
    subject_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.club.v1.Stream.subject)
}

// optional .bgs.protocol.club.v1.StreamAccess access = 6;
inline bool Stream::has_access() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void Stream::set_has_access() {
  _has_bits_[0] |= 0x00000020u;
}
inline void Stream::clear_has_access() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void Stream::clear_access() {
  if (access_ != NULL) access_->::bgs::protocol::club::v1::StreamAccess::Clear();
  clear_has_access();
}
inline const ::bgs::protocol::club::v1::StreamAccess& Stream::access() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.Stream.access)
  return access_ != NULL ? *access_ : *default_instance_->access_;
}
inline ::bgs::protocol::club::v1::StreamAccess* Stream::mutable_access() {
  set_has_access();
  if (access_ == NULL) access_ = new ::bgs::protocol::club::v1::StreamAccess;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.Stream.access)
  return access_;
}
inline ::bgs::protocol::club::v1::StreamAccess* Stream::release_access() {
  clear_has_access();
  ::bgs::protocol::club::v1::StreamAccess* temp = access_;
  access_ = NULL;
  return temp;
}
inline void Stream::set_allocated_access(::bgs::protocol::club::v1::StreamAccess* access) {
  delete access_;
  access_ = access;
  if (access) {
    set_has_access();
  } else {
    clear_has_access();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.club.v1.Stream.access)
}

// optional .bgs.protocol.club.v1.StreamVoiceLevel voice_level = 7;
inline bool Stream::has_voice_level() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void Stream::set_has_voice_level() {
  _has_bits_[0] |= 0x00000040u;
}
inline void Stream::clear_has_voice_level() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void Stream::clear_voice_level() {
  voice_level_ = 0;
  clear_has_voice_level();
}
inline ::bgs::protocol::club::v1::StreamVoiceLevel Stream::voice_level() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.Stream.voice_level)
  return static_cast< ::bgs::protocol::club::v1::StreamVoiceLevel >(voice_level_);
}
inline void Stream::set_voice_level(::bgs::protocol::club::v1::StreamVoiceLevel value) {
  assert(::bgs::protocol::club::v1::StreamVoiceLevel_IsValid(value));
  set_has_voice_level();
  voice_level_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.Stream.voice_level)
}

// optional uint64 creation_time = 8;
inline bool Stream::has_creation_time() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void Stream::set_has_creation_time() {
  _has_bits_[0] |= 0x00000080u;
}
inline void Stream::clear_has_creation_time() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void Stream::clear_creation_time() {
  creation_time_ = GOOGLE_ULONGLONG(0);
  clear_has_creation_time();
}
inline ::google::protobuf::uint64 Stream::creation_time() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.Stream.creation_time)
  return creation_time_;
}
inline void Stream::set_creation_time(::google::protobuf::uint64 value) {
  set_has_creation_time();
  creation_time_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.Stream.creation_time)
}

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

// MentionContent

// optional bool all = 1;
inline bool MentionContent::has_all() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void MentionContent::set_has_all() {
  _has_bits_[0] |= 0x00000001u;
}
inline void MentionContent::clear_has_all() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void MentionContent::clear_all() {
  all_ = false;
  clear_has_all();
}
inline bool MentionContent::all() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.MentionContent.all)
  return all_;
}
inline void MentionContent::set_all(bool value) {
  set_has_all();
  all_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.MentionContent.all)
}

// optional bool here = 2;
inline bool MentionContent::has_here() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void MentionContent::set_has_here() {
  _has_bits_[0] |= 0x00000002u;
}
inline void MentionContent::clear_has_here() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void MentionContent::clear_here() {
  here_ = false;
  clear_has_here();
}
inline bool MentionContent::here() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.MentionContent.here)
  return here_;
}
inline void MentionContent::set_here(bool value) {
  set_has_here();
  here_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.MentionContent.here)
}

// repeated .bgs.protocol.club.v1.MemberId member_id = 3;
inline int MentionContent::member_id_size() const {
  return member_id_.size();
}
inline void MentionContent::clear_member_id() {
  member_id_.Clear();
}
inline const ::bgs::protocol::club::v1::MemberId& MentionContent::member_id(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.MentionContent.member_id)
  return member_id_.Get(index);
}
inline ::bgs::protocol::club::v1::MemberId* MentionContent::mutable_member_id(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.MentionContent.member_id)
  return member_id_.Mutable(index);
}
inline ::bgs::protocol::club::v1::MemberId* MentionContent::add_member_id() {
  // @@protoc_insertion_point(field_add:bgs.protocol.club.v1.MentionContent.member_id)
  return member_id_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::club::v1::MemberId >&
MentionContent::member_id() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.club.v1.MentionContent.member_id)
  return member_id_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::club::v1::MemberId >*
MentionContent::mutable_member_id() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.club.v1.MentionContent.member_id)
  return &member_id_;
}

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

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

// CreateMessageOptions

// optional string content = 2;
inline bool CreateMessageOptions::has_content() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void CreateMessageOptions::set_has_content() {
  _has_bits_[0] |= 0x00000001u;
}
inline void CreateMessageOptions::clear_has_content() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void CreateMessageOptions::clear_content() {
  if (content_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    content_->clear();
  }
  clear_has_content();
}
inline const ::std::string& CreateMessageOptions::content() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.CreateMessageOptions.content)
  return *content_;
}
inline void CreateMessageOptions::set_content(const ::std::string& value) {
  set_has_content();
  if (content_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    content_ = new ::std::string;
  }
  content_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.CreateMessageOptions.content)
}
inline void CreateMessageOptions::set_content(const char* value) {
  set_has_content();
  if (content_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    content_ = new ::std::string;
  }
  content_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.club.v1.CreateMessageOptions.content)
}
inline void CreateMessageOptions::set_content(const char* value, size_t size) {
  set_has_content();
  if (content_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    content_ = new ::std::string;
  }
  content_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.club.v1.CreateMessageOptions.content)
}
inline ::std::string* CreateMessageOptions::mutable_content() {
  set_has_content();
  if (content_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    content_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.CreateMessageOptions.content)
  return content_;
}
inline ::std::string* CreateMessageOptions::release_content() {
  clear_has_content();
  if (content_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = content_;
    content_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void CreateMessageOptions::set_allocated_content(::std::string* content) {
  if (content_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete content_;
  }
  if (content) {
    set_has_content();
    content_ = content;
  } else {
    clear_has_content();
    content_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.club.v1.CreateMessageOptions.content)
}

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

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

// ClubStreamMessageContainer

// repeated .bgs.protocol.club.v1.StreamMessage message = 1;
inline int ClubStreamMessageContainer::message_size() const {
  return message_.size();
}
inline void ClubStreamMessageContainer::clear_message() {
  message_.Clear();
}
inline const ::bgs::protocol::club::v1::StreamMessage& ClubStreamMessageContainer::message(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.ClubStreamMessageContainer.message)
  return message_.Get(index);
}
inline ::bgs::protocol::club::v1::StreamMessage* ClubStreamMessageContainer::mutable_message(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.ClubStreamMessageContainer.message)
  return message_.Mutable(index);
}
inline ::bgs::protocol::club::v1::StreamMessage* ClubStreamMessageContainer::add_message() {
  // @@protoc_insertion_point(field_add:bgs.protocol.club.v1.ClubStreamMessageContainer.message)
  return message_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::club::v1::StreamMessage >&
ClubStreamMessageContainer::message() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.club.v1.ClubStreamMessageContainer.message)
  return message_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::club::v1::StreamMessage >*
ClubStreamMessageContainer::mutable_message() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.club.v1.ClubStreamMessageContainer.message)
  return &message_;
}

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

// ContentChain

// optional string content = 5;
inline bool ContentChain::has_content() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void ContentChain::set_has_content() {
  _has_bits_[0] |= 0x00000001u;
}
inline void ContentChain::clear_has_content() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void ContentChain::clear_content() {
  if (content_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    content_->clear();
  }
  clear_has_content();
}
inline const ::std::string& ContentChain::content() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.ContentChain.content)
  return *content_;
}
inline void ContentChain::set_content(const ::std::string& value) {
  set_has_content();
  if (content_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    content_ = new ::std::string;
  }
  content_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.ContentChain.content)
}
inline void ContentChain::set_content(const char* value) {
  set_has_content();
  if (content_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    content_ = new ::std::string;
  }
  content_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.club.v1.ContentChain.content)
}
inline void ContentChain::set_content(const char* value, size_t size) {
  set_has_content();
  if (content_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    content_ = new ::std::string;
  }
  content_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.club.v1.ContentChain.content)
}
inline ::std::string* ContentChain::mutable_content() {
  set_has_content();
  if (content_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    content_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.ContentChain.content)
  return content_;
}
inline ::std::string* ContentChain::release_content() {
  clear_has_content();
  if (content_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = content_;
    content_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void ContentChain::set_allocated_content(::std::string* content) {
  if (content_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete content_;
  }
  if (content) {
    set_has_content();
    content_ = content;
  } else {
    clear_has_content();
    content_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.club.v1.ContentChain.content)
}

// repeated .bgs.protocol.EmbedInfo embed = 6;
inline int ContentChain::embed_size() const {
  return embed_.size();
}
inline void ContentChain::clear_embed() {
  embed_.Clear();
}
inline const ::bgs::protocol::EmbedInfo& ContentChain::embed(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.ContentChain.embed)
  return embed_.Get(index);
}
inline ::bgs::protocol::EmbedInfo* ContentChain::mutable_embed(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.ContentChain.embed)
  return embed_.Mutable(index);
}
inline ::bgs::protocol::EmbedInfo* ContentChain::add_embed() {
  // @@protoc_insertion_point(field_add:bgs.protocol.club.v1.ContentChain.embed)
  return embed_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::EmbedInfo >&
ContentChain::embed() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.club.v1.ContentChain.embed)
  return embed_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::EmbedInfo >*
ContentChain::mutable_embed() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.club.v1.ContentChain.embed)
  return &embed_;
}

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

// optional uint64 edit_time = 8;
inline bool ContentChain::has_edit_time() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void ContentChain::set_has_edit_time() {
  _has_bits_[0] |= 0x00000008u;
}
inline void ContentChain::clear_has_edit_time() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void ContentChain::clear_edit_time() {
  edit_time_ = GOOGLE_ULONGLONG(0);
  clear_has_edit_time();
}
inline ::google::protobuf::uint64 ContentChain::edit_time() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.ContentChain.edit_time)
  return edit_time_;
}
inline void ContentChain::set_edit_time(::google::protobuf::uint64 value) {
  set_has_edit_time();
  edit_time_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.ContentChain.edit_time)
}

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

// StreamMessage

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

// optional .bgs.protocol.club.v1.MemberDescription author = 4;
inline bool StreamMessage::has_author() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void StreamMessage::set_has_author() {
  _has_bits_[0] |= 0x00000002u;
}
inline void StreamMessage::clear_has_author() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void StreamMessage::clear_author() {
  if (author_ != NULL) author_->::bgs::protocol::club::v1::MemberDescription::Clear();
  clear_has_author();
}
inline const ::bgs::protocol::club::v1::MemberDescription& StreamMessage::author() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamMessage.author)
  return author_ != NULL ? *author_ : *default_instance_->author_;
}
inline ::bgs::protocol::club::v1::MemberDescription* StreamMessage::mutable_author() {
  set_has_author();
  if (author_ == NULL) author_ = new ::bgs::protocol::club::v1::MemberDescription;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.StreamMessage.author)
  return author_;
}
inline ::bgs::protocol::club::v1::MemberDescription* StreamMessage::release_author() {
  clear_has_author();
  ::bgs::protocol::club::v1::MemberDescription* temp = author_;
  author_ = NULL;
  return temp;
}
inline void StreamMessage::set_allocated_author(::bgs::protocol::club::v1::MemberDescription* author) {
  delete author_;
  author_ = author;
  if (author) {
    set_has_author();
  } else {
    clear_has_author();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.club.v1.StreamMessage.author)
}

// repeated .bgs.protocol.club.v1.ContentChain content_chain = 6;
inline int StreamMessage::content_chain_size() const {
  return content_chain_.size();
}
inline void StreamMessage::clear_content_chain() {
  content_chain_.Clear();
}
inline const ::bgs::protocol::club::v1::ContentChain& StreamMessage::content_chain(int index) const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamMessage.content_chain)
  return content_chain_.Get(index);
}
inline ::bgs::protocol::club::v1::ContentChain* StreamMessage::mutable_content_chain(int index) {
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.StreamMessage.content_chain)
  return content_chain_.Mutable(index);
}
inline ::bgs::protocol::club::v1::ContentChain* StreamMessage::add_content_chain() {
  // @@protoc_insertion_point(field_add:bgs.protocol.club.v1.StreamMessage.content_chain)
  return content_chain_.Add();
}
inline const ::google::protobuf::RepeatedPtrField< ::bgs::protocol::club::v1::ContentChain >&
StreamMessage::content_chain() const {
  // @@protoc_insertion_point(field_list:bgs.protocol.club.v1.StreamMessage.content_chain)
  return content_chain_;
}
inline ::google::protobuf::RepeatedPtrField< ::bgs::protocol::club::v1::ContentChain >*
StreamMessage::mutable_content_chain() {
  // @@protoc_insertion_point(field_mutable_list:bgs.protocol.club.v1.StreamMessage.content_chain)
  return &content_chain_;
}

// optional .bgs.protocol.club.v1.MemberDescription destroyer = 15;
inline bool StreamMessage::has_destroyer() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void StreamMessage::set_has_destroyer() {
  _has_bits_[0] |= 0x00000008u;
}
inline void StreamMessage::clear_has_destroyer() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void StreamMessage::clear_destroyer() {
  if (destroyer_ != NULL) destroyer_->::bgs::protocol::club::v1::MemberDescription::Clear();
  clear_has_destroyer();
}
inline const ::bgs::protocol::club::v1::MemberDescription& StreamMessage::destroyer() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamMessage.destroyer)
  return destroyer_ != NULL ? *destroyer_ : *default_instance_->destroyer_;
}
inline ::bgs::protocol::club::v1::MemberDescription* StreamMessage::mutable_destroyer() {
  set_has_destroyer();
  if (destroyer_ == NULL) destroyer_ = new ::bgs::protocol::club::v1::MemberDescription;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.StreamMessage.destroyer)
  return destroyer_;
}
inline ::bgs::protocol::club::v1::MemberDescription* StreamMessage::release_destroyer() {
  clear_has_destroyer();
  ::bgs::protocol::club::v1::MemberDescription* temp = destroyer_;
  destroyer_ = NULL;
  return temp;
}
inline void StreamMessage::set_allocated_destroyer(::bgs::protocol::club::v1::MemberDescription* destroyer) {
  delete destroyer_;
  destroyer_ = destroyer;
  if (destroyer) {
    set_has_destroyer();
  } else {
    clear_has_destroyer();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.club.v1.StreamMessage.destroyer)
}

// optional bool destroyed = 16;
inline bool StreamMessage::has_destroyed() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void StreamMessage::set_has_destroyed() {
  _has_bits_[0] |= 0x00000010u;
}
inline void StreamMessage::clear_has_destroyed() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void StreamMessage::clear_destroyed() {
  destroyed_ = false;
  clear_has_destroyed();
}
inline bool StreamMessage::destroyed() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamMessage.destroyed)
  return destroyed_;
}
inline void StreamMessage::set_destroyed(bool value) {
  set_has_destroyed();
  destroyed_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.StreamMessage.destroyed)
}

// optional uint64 destroy_time = 17;
inline bool StreamMessage::has_destroy_time() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void StreamMessage::set_has_destroy_time() {
  _has_bits_[0] |= 0x00000020u;
}
inline void StreamMessage::clear_has_destroy_time() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void StreamMessage::clear_destroy_time() {
  destroy_time_ = GOOGLE_ULONGLONG(0);
  clear_has_destroy_time();
}
inline ::google::protobuf::uint64 StreamMessage::destroy_time() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamMessage.destroy_time)
  return destroy_time_;
}
inline void StreamMessage::set_destroy_time(::google::protobuf::uint64 value) {
  set_has_destroy_time();
  destroy_time_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.StreamMessage.destroy_time)
}

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

// StreamMention

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

// optional uint64 stream_id = 2;
inline bool StreamMention::has_stream_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void StreamMention::set_has_stream_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void StreamMention::clear_has_stream_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void StreamMention::clear_stream_id() {
  stream_id_ = GOOGLE_ULONGLONG(0);
  clear_has_stream_id();
}
inline ::google::protobuf::uint64 StreamMention::stream_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamMention.stream_id)
  return stream_id_;
}
inline void StreamMention::set_stream_id(::google::protobuf::uint64 value) {
  set_has_stream_id();
  stream_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.StreamMention.stream_id)
}

// optional .bgs.protocol.MessageId message_id = 3;
inline bool StreamMention::has_message_id() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void StreamMention::set_has_message_id() {
  _has_bits_[0] |= 0x00000004u;
}
inline void StreamMention::clear_has_message_id() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void StreamMention::clear_message_id() {
  if (message_id_ != NULL) message_id_->::bgs::protocol::MessageId::Clear();
  clear_has_message_id();
}
inline const ::bgs::protocol::MessageId& StreamMention::message_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamMention.message_id)
  return message_id_ != NULL ? *message_id_ : *default_instance_->message_id_;
}
inline ::bgs::protocol::MessageId* StreamMention::mutable_message_id() {
  set_has_message_id();
  if (message_id_ == NULL) message_id_ = new ::bgs::protocol::MessageId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.StreamMention.message_id)
  return message_id_;
}
inline ::bgs::protocol::MessageId* StreamMention::release_message_id() {
  clear_has_message_id();
  ::bgs::protocol::MessageId* temp = message_id_;
  message_id_ = NULL;
  return temp;
}
inline void StreamMention::set_allocated_message_id(::bgs::protocol::MessageId* message_id) {
  delete message_id_;
  message_id_ = message_id;
  if (message_id) {
    set_has_message_id();
  } else {
    clear_has_message_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.club.v1.StreamMention.message_id)
}

// optional .bgs.protocol.club.v1.MemberDescription author = 4;
inline bool StreamMention::has_author() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void StreamMention::set_has_author() {
  _has_bits_[0] |= 0x00000008u;
}
inline void StreamMention::clear_has_author() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void StreamMention::clear_author() {
  if (author_ != NULL) author_->::bgs::protocol::club::v1::MemberDescription::Clear();
  clear_has_author();
}
inline const ::bgs::protocol::club::v1::MemberDescription& StreamMention::author() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamMention.author)
  return author_ != NULL ? *author_ : *default_instance_->author_;
}
inline ::bgs::protocol::club::v1::MemberDescription* StreamMention::mutable_author() {
  set_has_author();
  if (author_ == NULL) author_ = new ::bgs::protocol::club::v1::MemberDescription;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.StreamMention.author)
  return author_;
}
inline ::bgs::protocol::club::v1::MemberDescription* StreamMention::release_author() {
  clear_has_author();
  ::bgs::protocol::club::v1::MemberDescription* temp = author_;
  author_ = NULL;
  return temp;
}
inline void StreamMention::set_allocated_author(::bgs::protocol::club::v1::MemberDescription* author) {
  delete author_;
  author_ = author;
  if (author) {
    set_has_author();
  } else {
    clear_has_author();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.club.v1.StreamMention.author)
}

// optional bool destroyed = 5;
inline bool StreamMention::has_destroyed() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void StreamMention::set_has_destroyed() {
  _has_bits_[0] |= 0x00000010u;
}
inline void StreamMention::clear_has_destroyed() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void StreamMention::clear_destroyed() {
  destroyed_ = false;
  clear_has_destroyed();
}
inline bool StreamMention::destroyed() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamMention.destroyed)
  return destroyed_;
}
inline void StreamMention::set_destroyed(bool value) {
  set_has_destroyed();
  destroyed_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.StreamMention.destroyed)
}

// optional .bgs.protocol.TimeSeriesId mention_id = 6;
inline bool StreamMention::has_mention_id() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void StreamMention::set_has_mention_id() {
  _has_bits_[0] |= 0x00000020u;
}
inline void StreamMention::clear_has_mention_id() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void StreamMention::clear_mention_id() {
  if (mention_id_ != NULL) mention_id_->::bgs::protocol::TimeSeriesId::Clear();
  clear_has_mention_id();
}
inline const ::bgs::protocol::TimeSeriesId& StreamMention::mention_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamMention.mention_id)
  return mention_id_ != NULL ? *mention_id_ : *default_instance_->mention_id_;
}
inline ::bgs::protocol::TimeSeriesId* StreamMention::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.StreamMention.mention_id)
  return mention_id_;
}
inline ::bgs::protocol::TimeSeriesId* StreamMention::release_mention_id() {
  clear_has_mention_id();
  ::bgs::protocol::TimeSeriesId* temp = mention_id_;
  mention_id_ = NULL;
  return temp;
}
inline void StreamMention::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.StreamMention.mention_id)
}

// optional .bgs.protocol.club.v1.MemberId member_id = 7;
inline bool StreamMention::has_member_id() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void StreamMention::set_has_member_id() {
  _has_bits_[0] |= 0x00000040u;
}
inline void StreamMention::clear_has_member_id() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void StreamMention::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& StreamMention::member_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamMention.member_id)
  return member_id_ != NULL ? *member_id_ : *default_instance_->member_id_;
}
inline ::bgs::protocol::club::v1::MemberId* StreamMention::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.StreamMention.member_id)
  return member_id_;
}
inline ::bgs::protocol::club::v1::MemberId* StreamMention::release_member_id() {
  clear_has_member_id();
  ::bgs::protocol::club::v1::MemberId* temp = member_id_;
  member_id_ = NULL;
  return temp;
}
inline void StreamMention::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.StreamMention.member_id)
}

// optional .bgs.protocol.club.v1.StreamMessage message = 8;
inline bool StreamMention::has_message() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void StreamMention::set_has_message() {
  _has_bits_[0] |= 0x00000080u;
}
inline void StreamMention::clear_has_message() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void StreamMention::clear_message() {
  if (message_ != NULL) message_->::bgs::protocol::club::v1::StreamMessage::Clear();
  clear_has_message();
}
inline const ::bgs::protocol::club::v1::StreamMessage& StreamMention::message() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamMention.message)
  return message_ != NULL ? *message_ : *default_instance_->message_;
}
inline ::bgs::protocol::club::v1::StreamMessage* StreamMention::mutable_message() {
  set_has_message();
  if (message_ == NULL) message_ = new ::bgs::protocol::club::v1::StreamMessage;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.StreamMention.message)
  return message_;
}
inline ::bgs::protocol::club::v1::StreamMessage* StreamMention::release_message() {
  clear_has_message();
  ::bgs::protocol::club::v1::StreamMessage* temp = message_;
  message_ = NULL;
  return temp;
}
inline void StreamMention::set_allocated_message(::bgs::protocol::club::v1::StreamMessage* message) {
  delete message_;
  message_ = message;
  if (message) {
    set_has_message();
  } else {
    clear_has_message();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.club.v1.StreamMention.message)
}

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

// StreamView

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

// optional uint64 stream_id = 2;
inline bool StreamView::has_stream_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void StreamView::set_has_stream_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void StreamView::clear_has_stream_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void StreamView::clear_stream_id() {
  stream_id_ = GOOGLE_ULONGLONG(0);
  clear_has_stream_id();
}
inline ::google::protobuf::uint64 StreamView::stream_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamView.stream_id)
  return stream_id_;
}
inline void StreamView::set_stream_id(::google::protobuf::uint64 value) {
  set_has_stream_id();
  stream_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.StreamView.stream_id)
}

// optional .bgs.protocol.ViewMarker marker = 3;
inline bool StreamView::has_marker() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void StreamView::set_has_marker() {
  _has_bits_[0] |= 0x00000004u;
}
inline void StreamView::clear_has_marker() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void StreamView::clear_marker() {
  if (marker_ != NULL) marker_->::bgs::protocol::ViewMarker::Clear();
  clear_has_marker();
}
inline const ::bgs::protocol::ViewMarker& StreamView::marker() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamView.marker)
  return marker_ != NULL ? *marker_ : *default_instance_->marker_;
}
inline ::bgs::protocol::ViewMarker* StreamView::mutable_marker() {
  set_has_marker();
  if (marker_ == NULL) marker_ = new ::bgs::protocol::ViewMarker;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.StreamView.marker)
  return marker_;
}
inline ::bgs::protocol::ViewMarker* StreamView::release_marker() {
  clear_has_marker();
  ::bgs::protocol::ViewMarker* temp = marker_;
  marker_ = NULL;
  return temp;
}
inline void StreamView::set_allocated_marker(::bgs::protocol::ViewMarker* marker) {
  delete marker_;
  marker_ = marker;
  if (marker) {
    set_has_marker();
  } else {
    clear_has_marker();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.club.v1.StreamView.marker)
}

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

// StreamAdvanceViewTime

// optional uint64 stream_id = 1;
inline bool StreamAdvanceViewTime::has_stream_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void StreamAdvanceViewTime::set_has_stream_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void StreamAdvanceViewTime::clear_has_stream_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void StreamAdvanceViewTime::clear_stream_id() {
  stream_id_ = GOOGLE_ULONGLONG(0);
  clear_has_stream_id();
}
inline ::google::protobuf::uint64 StreamAdvanceViewTime::stream_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamAdvanceViewTime.stream_id)
  return stream_id_;
}
inline void StreamAdvanceViewTime::set_stream_id(::google::protobuf::uint64 value) {
  set_has_stream_id();
  stream_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.StreamAdvanceViewTime.stream_id)
}

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

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

// StreamEventTime

// optional uint64 stream_id = 1;
inline bool StreamEventTime::has_stream_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void StreamEventTime::set_has_stream_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void StreamEventTime::clear_has_stream_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void StreamEventTime::clear_stream_id() {
  stream_id_ = GOOGLE_ULONGLONG(0);
  clear_has_stream_id();
}
inline ::google::protobuf::uint64 StreamEventTime::stream_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamEventTime.stream_id)
  return stream_id_;
}
inline void StreamEventTime::set_stream_id(::google::protobuf::uint64 value) {
  set_has_stream_id();
  stream_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.StreamEventTime.stream_id)
}

// optional uint64 event_time = 2;
inline bool StreamEventTime::has_event_time() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void StreamEventTime::set_has_event_time() {
  _has_bits_[0] |= 0x00000002u;
}
inline void StreamEventTime::clear_has_event_time() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void StreamEventTime::clear_event_time() {
  event_time_ = GOOGLE_ULONGLONG(0);
  clear_has_event_time();
}
inline ::google::protobuf::uint64 StreamEventTime::event_time() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamEventTime.event_time)
  return event_time_;
}
inline void StreamEventTime::set_event_time(::google::protobuf::uint64 value) {
  set_has_event_time();
  event_time_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.StreamEventTime.event_time)
}

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

// StreamMentionView

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

// optional uint64 stream_id = 2;
inline bool StreamMentionView::has_stream_id() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void StreamMentionView::set_has_stream_id() {
  _has_bits_[0] |= 0x00000002u;
}
inline void StreamMentionView::clear_has_stream_id() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void StreamMentionView::clear_stream_id() {
  stream_id_ = GOOGLE_ULONGLONG(0);
  clear_has_stream_id();
}
inline ::google::protobuf::uint64 StreamMentionView::stream_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamMentionView.stream_id)
  return stream_id_;
}
inline void StreamMentionView::set_stream_id(::google::protobuf::uint64 value) {
  set_has_stream_id();
  stream_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.StreamMentionView.stream_id)
}

// optional .bgs.protocol.ViewMarker marker = 3;
inline bool StreamMentionView::has_marker() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void StreamMentionView::set_has_marker() {
  _has_bits_[0] |= 0x00000004u;
}
inline void StreamMentionView::clear_has_marker() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void StreamMentionView::clear_marker() {
  if (marker_ != NULL) marker_->::bgs::protocol::ViewMarker::Clear();
  clear_has_marker();
}
inline const ::bgs::protocol::ViewMarker& StreamMentionView::marker() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamMentionView.marker)
  return marker_ != NULL ? *marker_ : *default_instance_->marker_;
}
inline ::bgs::protocol::ViewMarker* StreamMentionView::mutable_marker() {
  set_has_marker();
  if (marker_ == NULL) marker_ = new ::bgs::protocol::ViewMarker;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.StreamMentionView.marker)
  return marker_;
}
inline ::bgs::protocol::ViewMarker* StreamMentionView::release_marker() {
  clear_has_marker();
  ::bgs::protocol::ViewMarker* temp = marker_;
  marker_ = NULL;
  return temp;
}
inline void StreamMentionView::set_allocated_marker(::bgs::protocol::ViewMarker* marker) {
  delete marker_;
  marker_ = marker;
  if (marker) {
    set_has_marker();
  } else {
    clear_has_marker();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.club.v1.StreamMentionView.marker)
}

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

// StreamStateOptions

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

// optional string name = 2;
inline bool StreamStateOptions::has_name() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void StreamStateOptions::set_has_name() {
  _has_bits_[0] |= 0x00000002u;
}
inline void StreamStateOptions::clear_has_name() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void StreamStateOptions::clear_name() {
  if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_->clear();
  }
  clear_has_name();
}
inline const ::std::string& StreamStateOptions::name() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamStateOptions.name)
  return *name_;
}
inline void StreamStateOptions::set_name(const ::std::string& value) {
  set_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_ = new ::std::string;
  }
  name_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.StreamStateOptions.name)
}
inline void StreamStateOptions::set_name(const char* value) {
  set_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_ = new ::std::string;
  }
  name_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.club.v1.StreamStateOptions.name)
}
inline void StreamStateOptions::set_name(const char* value, size_t size) {
  set_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_ = new ::std::string;
  }
  name_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.club.v1.StreamStateOptions.name)
}
inline ::std::string* StreamStateOptions::mutable_name() {
  set_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.StreamStateOptions.name)
  return name_;
}
inline ::std::string* StreamStateOptions::release_name() {
  clear_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = name_;
    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void StreamStateOptions::set_allocated_name(::std::string* name) {
  if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete name_;
  }
  if (name) {
    set_has_name();
    name_ = name;
  } else {
    clear_has_name();
    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.club.v1.StreamStateOptions.name)
}

// optional string subject = 3;
inline bool StreamStateOptions::has_subject() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void StreamStateOptions::set_has_subject() {
  _has_bits_[0] |= 0x00000004u;
}
inline void StreamStateOptions::clear_has_subject() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void StreamStateOptions::clear_subject() {
  if (subject_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    subject_->clear();
  }
  clear_has_subject();
}
inline const ::std::string& StreamStateOptions::subject() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamStateOptions.subject)
  return *subject_;
}
inline void StreamStateOptions::set_subject(const ::std::string& value) {
  set_has_subject();
  if (subject_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    subject_ = new ::std::string;
  }
  subject_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.StreamStateOptions.subject)
}
inline void StreamStateOptions::set_subject(const char* value) {
  set_has_subject();
  if (subject_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    subject_ = new ::std::string;
  }
  subject_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.club.v1.StreamStateOptions.subject)
}
inline void StreamStateOptions::set_subject(const char* value, size_t size) {
  set_has_subject();
  if (subject_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    subject_ = new ::std::string;
  }
  subject_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.club.v1.StreamStateOptions.subject)
}
inline ::std::string* StreamStateOptions::mutable_subject() {
  set_has_subject();
  if (subject_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    subject_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.StreamStateOptions.subject)
  return subject_;
}
inline ::std::string* StreamStateOptions::release_subject() {
  clear_has_subject();
  if (subject_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = subject_;
    subject_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void StreamStateOptions::set_allocated_subject(::std::string* subject) {
  if (subject_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete subject_;
  }
  if (subject) {
    set_has_subject();
    subject_ = subject;
  } else {
    clear_has_subject();
    subject_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.club.v1.StreamStateOptions.subject)
}

// optional .bgs.protocol.club.v1.StreamAccess access = 4;
inline bool StreamStateOptions::has_access() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void StreamStateOptions::set_has_access() {
  _has_bits_[0] |= 0x00000008u;
}
inline void StreamStateOptions::clear_has_access() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void StreamStateOptions::clear_access() {
  if (access_ != NULL) access_->::bgs::protocol::club::v1::StreamAccess::Clear();
  clear_has_access();
}
inline const ::bgs::protocol::club::v1::StreamAccess& StreamStateOptions::access() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamStateOptions.access)
  return access_ != NULL ? *access_ : *default_instance_->access_;
}
inline ::bgs::protocol::club::v1::StreamAccess* StreamStateOptions::mutable_access() {
  set_has_access();
  if (access_ == NULL) access_ = new ::bgs::protocol::club::v1::StreamAccess;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.StreamStateOptions.access)
  return access_;
}
inline ::bgs::protocol::club::v1::StreamAccess* StreamStateOptions::release_access() {
  clear_has_access();
  ::bgs::protocol::club::v1::StreamAccess* temp = access_;
  access_ = NULL;
  return temp;
}
inline void StreamStateOptions::set_allocated_access(::bgs::protocol::club::v1::StreamAccess* access) {
  delete access_;
  access_ = access;
  if (access) {
    set_has_access();
  } else {
    clear_has_access();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.club.v1.StreamStateOptions.access)
}

// optional .bgs.protocol.club.v1.StreamVoiceLevel voice_level = 5;
inline bool StreamStateOptions::has_voice_level() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void StreamStateOptions::set_has_voice_level() {
  _has_bits_[0] |= 0x00000010u;
}
inline void StreamStateOptions::clear_has_voice_level() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void StreamStateOptions::clear_voice_level() {
  voice_level_ = 0;
  clear_has_voice_level();
}
inline ::bgs::protocol::club::v1::StreamVoiceLevel StreamStateOptions::voice_level() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamStateOptions.voice_level)
  return static_cast< ::bgs::protocol::club::v1::StreamVoiceLevel >(voice_level_);
}
inline void StreamStateOptions::set_voice_level(::bgs::protocol::club::v1::StreamVoiceLevel value) {
  assert(::bgs::protocol::club::v1::StreamVoiceLevel_IsValid(value));
  set_has_voice_level();
  voice_level_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.StreamStateOptions.voice_level)
}

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

// StreamStateAssignment

// optional uint64 stream_id = 1;
inline bool StreamStateAssignment::has_stream_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void StreamStateAssignment::set_has_stream_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void StreamStateAssignment::clear_has_stream_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void StreamStateAssignment::clear_stream_id() {
  stream_id_ = GOOGLE_ULONGLONG(0);
  clear_has_stream_id();
}
inline ::google::protobuf::uint64 StreamStateAssignment::stream_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamStateAssignment.stream_id)
  return stream_id_;
}
inline void StreamStateAssignment::set_stream_id(::google::protobuf::uint64 value) {
  set_has_stream_id();
  stream_id_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.StreamStateAssignment.stream_id)
}

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

// optional string name = 3;
inline bool StreamStateAssignment::has_name() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void StreamStateAssignment::set_has_name() {
  _has_bits_[0] |= 0x00000004u;
}
inline void StreamStateAssignment::clear_has_name() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void StreamStateAssignment::clear_name() {
  if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_->clear();
  }
  clear_has_name();
}
inline const ::std::string& StreamStateAssignment::name() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamStateAssignment.name)
  return *name_;
}
inline void StreamStateAssignment::set_name(const ::std::string& value) {
  set_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_ = new ::std::string;
  }
  name_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.StreamStateAssignment.name)
}
inline void StreamStateAssignment::set_name(const char* value) {
  set_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_ = new ::std::string;
  }
  name_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.club.v1.StreamStateAssignment.name)
}
inline void StreamStateAssignment::set_name(const char* value, size_t size) {
  set_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_ = new ::std::string;
  }
  name_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.club.v1.StreamStateAssignment.name)
}
inline ::std::string* StreamStateAssignment::mutable_name() {
  set_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    name_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.StreamStateAssignment.name)
  return name_;
}
inline ::std::string* StreamStateAssignment::release_name() {
  clear_has_name();
  if (name_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = name_;
    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void StreamStateAssignment::set_allocated_name(::std::string* name) {
  if (name_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete name_;
  }
  if (name) {
    set_has_name();
    name_ = name;
  } else {
    clear_has_name();
    name_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.club.v1.StreamStateAssignment.name)
}

// optional string subject = 4;
inline bool StreamStateAssignment::has_subject() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void StreamStateAssignment::set_has_subject() {
  _has_bits_[0] |= 0x00000008u;
}
inline void StreamStateAssignment::clear_has_subject() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void StreamStateAssignment::clear_subject() {
  if (subject_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    subject_->clear();
  }
  clear_has_subject();
}
inline const ::std::string& StreamStateAssignment::subject() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamStateAssignment.subject)
  return *subject_;
}
inline void StreamStateAssignment::set_subject(const ::std::string& value) {
  set_has_subject();
  if (subject_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    subject_ = new ::std::string;
  }
  subject_->assign(value);
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.StreamStateAssignment.subject)
}
inline void StreamStateAssignment::set_subject(const char* value) {
  set_has_subject();
  if (subject_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    subject_ = new ::std::string;
  }
  subject_->assign(value);
  // @@protoc_insertion_point(field_set_char:bgs.protocol.club.v1.StreamStateAssignment.subject)
}
inline void StreamStateAssignment::set_subject(const char* value, size_t size) {
  set_has_subject();
  if (subject_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    subject_ = new ::std::string;
  }
  subject_->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:bgs.protocol.club.v1.StreamStateAssignment.subject)
}
inline ::std::string* StreamStateAssignment::mutable_subject() {
  set_has_subject();
  if (subject_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    subject_ = new ::std::string;
  }
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.StreamStateAssignment.subject)
  return subject_;
}
inline ::std::string* StreamStateAssignment::release_subject() {
  clear_has_subject();
  if (subject_ == &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    return NULL;
  } else {
    ::std::string* temp = subject_;
    subject_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
    return temp;
  }
}
inline void StreamStateAssignment::set_allocated_subject(::std::string* subject) {
  if (subject_ != &::google::protobuf::internal::GetEmptyStringAlreadyInited()) {
    delete subject_;
  }
  if (subject) {
    set_has_subject();
    subject_ = subject;
  } else {
    clear_has_subject();
    subject_ = const_cast< ::std::string*>(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.club.v1.StreamStateAssignment.subject)
}

// optional .bgs.protocol.club.v1.StreamAccess access = 5;
inline bool StreamStateAssignment::has_access() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void StreamStateAssignment::set_has_access() {
  _has_bits_[0] |= 0x00000010u;
}
inline void StreamStateAssignment::clear_has_access() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void StreamStateAssignment::clear_access() {
  if (access_ != NULL) access_->::bgs::protocol::club::v1::StreamAccess::Clear();
  clear_has_access();
}
inline const ::bgs::protocol::club::v1::StreamAccess& StreamStateAssignment::access() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamStateAssignment.access)
  return access_ != NULL ? *access_ : *default_instance_->access_;
}
inline ::bgs::protocol::club::v1::StreamAccess* StreamStateAssignment::mutable_access() {
  set_has_access();
  if (access_ == NULL) access_ = new ::bgs::protocol::club::v1::StreamAccess;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.StreamStateAssignment.access)
  return access_;
}
inline ::bgs::protocol::club::v1::StreamAccess* StreamStateAssignment::release_access() {
  clear_has_access();
  ::bgs::protocol::club::v1::StreamAccess* temp = access_;
  access_ = NULL;
  return temp;
}
inline void StreamStateAssignment::set_allocated_access(::bgs::protocol::club::v1::StreamAccess* access) {
  delete access_;
  access_ = access;
  if (access) {
    set_has_access();
  } else {
    clear_has_access();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.club.v1.StreamStateAssignment.access)
}

// optional bool stream_subscription_removed = 6;
inline bool StreamStateAssignment::has_stream_subscription_removed() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void StreamStateAssignment::set_has_stream_subscription_removed() {
  _has_bits_[0] |= 0x00000020u;
}
inline void StreamStateAssignment::clear_has_stream_subscription_removed() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void StreamStateAssignment::clear_stream_subscription_removed() {
  stream_subscription_removed_ = false;
  clear_has_stream_subscription_removed();
}
inline bool StreamStateAssignment::stream_subscription_removed() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamStateAssignment.stream_subscription_removed)
  return stream_subscription_removed_;
}
inline void StreamStateAssignment::set_stream_subscription_removed(bool value) {
  set_has_stream_subscription_removed();
  stream_subscription_removed_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.StreamStateAssignment.stream_subscription_removed)
}

// optional .bgs.protocol.club.v1.StreamVoiceLevel voice_level = 7;
inline bool StreamStateAssignment::has_voice_level() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void StreamStateAssignment::set_has_voice_level() {
  _has_bits_[0] |= 0x00000040u;
}
inline void StreamStateAssignment::clear_has_voice_level() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void StreamStateAssignment::clear_voice_level() {
  voice_level_ = 0;
  clear_has_voice_level();
}
inline ::bgs::protocol::club::v1::StreamVoiceLevel StreamStateAssignment::voice_level() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamStateAssignment.voice_level)
  return static_cast< ::bgs::protocol::club::v1::StreamVoiceLevel >(voice_level_);
}
inline void StreamStateAssignment::set_voice_level(::bgs::protocol::club::v1::StreamVoiceLevel value) {
  assert(::bgs::protocol::club::v1::StreamVoiceLevel_IsValid(value));
  set_has_voice_level();
  voice_level_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.StreamStateAssignment.voice_level)
}

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

// StreamTypingIndicator

// optional .bgs.protocol.club.v1.MemberId author_id = 1;
inline bool StreamTypingIndicator::has_author_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void StreamTypingIndicator::set_has_author_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void StreamTypingIndicator::clear_has_author_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void StreamTypingIndicator::clear_author_id() {
  if (author_id_ != NULL) author_id_->::bgs::protocol::club::v1::MemberId::Clear();
  clear_has_author_id();
}
inline const ::bgs::protocol::club::v1::MemberId& StreamTypingIndicator::author_id() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamTypingIndicator.author_id)
  return author_id_ != NULL ? *author_id_ : *default_instance_->author_id_;
}
inline ::bgs::protocol::club::v1::MemberId* StreamTypingIndicator::mutable_author_id() {
  set_has_author_id();
  if (author_id_ == NULL) author_id_ = new ::bgs::protocol::club::v1::MemberId;
  // @@protoc_insertion_point(field_mutable:bgs.protocol.club.v1.StreamTypingIndicator.author_id)
  return author_id_;
}
inline ::bgs::protocol::club::v1::MemberId* StreamTypingIndicator::release_author_id() {
  clear_has_author_id();
  ::bgs::protocol::club::v1::MemberId* temp = author_id_;
  author_id_ = NULL;
  return temp;
}
inline void StreamTypingIndicator::set_allocated_author_id(::bgs::protocol::club::v1::MemberId* author_id) {
  delete author_id_;
  author_id_ = author_id;
  if (author_id) {
    set_has_author_id();
  } else {
    clear_has_author_id();
  }
  // @@protoc_insertion_point(field_set_allocated:bgs.protocol.club.v1.StreamTypingIndicator.author_id)
}

// optional .bgs.protocol.TypingIndicator indicator = 2;
inline bool StreamTypingIndicator::has_indicator() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void StreamTypingIndicator::set_has_indicator() {
  _has_bits_[0] |= 0x00000002u;
}
inline void StreamTypingIndicator::clear_has_indicator() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void StreamTypingIndicator::clear_indicator() {
  indicator_ = 0;
  clear_has_indicator();
}
inline ::bgs::protocol::TypingIndicator StreamTypingIndicator::indicator() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamTypingIndicator.indicator)
  return static_cast< ::bgs::protocol::TypingIndicator >(indicator_);
}
inline void StreamTypingIndicator::set_indicator(::bgs::protocol::TypingIndicator value) {
  assert(::bgs::protocol::TypingIndicator_IsValid(value));
  set_has_indicator();
  indicator_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.StreamTypingIndicator.indicator)
}

// optional uint64 epoch = 3;
inline bool StreamTypingIndicator::has_epoch() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void StreamTypingIndicator::set_has_epoch() {
  _has_bits_[0] |= 0x00000004u;
}
inline void StreamTypingIndicator::clear_has_epoch() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void StreamTypingIndicator::clear_epoch() {
  epoch_ = GOOGLE_ULONGLONG(0);
  clear_has_epoch();
}
inline ::google::protobuf::uint64 StreamTypingIndicator::epoch() const {
  // @@protoc_insertion_point(field_get:bgs.protocol.club.v1.StreamTypingIndicator.epoch)
  return epoch_;
}
inline void StreamTypingIndicator::set_epoch(::google::protobuf::uint64 value) {
  set_has_epoch();
  epoch_ = value;
  // @@protoc_insertion_point(field_set:bgs.protocol.club.v1.StreamTypingIndicator.epoch)
}


// @@protoc_insertion_point(namespace_scope)

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