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

#ifndef PROTOBUF_club_5flistener_2eproto__INCLUDED
#define PROTOBUF_club_5flistener_2eproto__INCLUDED

#include <string>

#include <google/protobuf/stubs/common.h>

#if GOOGLE_PROTOBUF_VERSION < 2006000
#error This file was generated by a newer version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please update
#error your headers.
#endif
#if 2006001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/repeated_field.h>
#include <google/protobuf/extension_set.h>
#include "club_notification.pb.h"
#include "ServiceBase.h"
#include "MessageBuffer.h"
#include <functional>
#include <type_traits>
// @@protoc_insertion_point(includes)

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

// Internal implementation detail -- do not call these.
void TC_PROTO_API protobuf_AddDesc_club_5flistener_2eproto();
void protobuf_AssignDesc_club_5flistener_2eproto();
void protobuf_ShutdownFile_club_5flistener_2eproto();


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


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

class TC_PROTO_API ClubListener : public ServiceBase
{
 public:

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

  typedef std::integral_constant<uint32, 0x80909D73u> OriginalHash;
  typedef std::integral_constant<uint32, 0x40BE3344u> NameHash;

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

  // client methods --------------------------------------------------
  void OnSubscribe(::bgs::protocol::club::v1::SubscribeNotification const* request, bool client = false, bool server = false);
  void OnUnsubscribe(::bgs::protocol::club::v1::UnsubscribeNotification const* request, bool client = false, bool server = false);
  void OnStateChanged(::bgs::protocol::club::v1::StateChangedNotification const* request, bool client = false, bool server = false);
  void OnSettingsChanged(::bgs::protocol::club::v1::SettingsChangedNotification const* request, bool client = false, bool server = false);
  void OnMemberAdded(::bgs::protocol::club::v1::MemberAddedNotification const* request, bool client = false, bool server = false);
  void OnMemberRemoved(::bgs::protocol::club::v1::MemberRemovedNotification const* request, bool client = false, bool server = false);
  void OnMemberStateChanged(::bgs::protocol::club::v1::MemberStateChangedNotification const* request, bool client = false, bool server = false);
  void OnSubscriberStateChanged(::bgs::protocol::club::v1::SubscriberStateChangedNotification const* request, bool client = false, bool server = false);
  void OnMemberRoleChanged(::bgs::protocol::club::v1::MemberRoleChangedNotification const* request, bool client = false, bool server = false);
  void OnInvitationAdded(::bgs::protocol::club::v1::InvitationAddedNotification const* request, bool client = false, bool server = false);
  void OnInvitationRemoved(::bgs::protocol::club::v1::InvitationRemovedNotification const* request, bool client = false, bool server = false);
  void OnSuggestionAdded(::bgs::protocol::club::v1::SuggestionAddedNotification const* request, bool client = false, bool server = false);
  void OnSuggestionRemoved(::bgs::protocol::club::v1::SuggestionRemovedNotification const* request, bool client = false, bool server = false);
  void OnStreamAdded(::bgs::protocol::club::v1::StreamAddedNotification const* request, bool client = false, bool server = false);
  void OnStreamRemoved(::bgs::protocol::club::v1::StreamRemovedNotification const* request, bool client = false, bool server = false);
  void OnStreamStateChanged(::bgs::protocol::club::v1::StreamStateChangedNotification const* request, bool client = false, bool server = false);
  void OnStreamMessageAdded(::bgs::protocol::club::v1::StreamMessageAddedNotification const* request, bool client = false, bool server = false);
  void OnStreamMessageUpdated(::bgs::protocol::club::v1::StreamMessageUpdatedNotification const* request, bool client = false, bool server = false);
  void OnStreamTypingIndicator(::bgs::protocol::club::v1::StreamTypingIndicatorNotification const* request, bool client = false, bool server = false);
  void OnStreamUnreadIndicator(::bgs::protocol::club::v1::StreamUnreadIndicatorNotification const* request, bool client = false, bool server = false);
  void OnStreamAdvanceViewTime(::bgs::protocol::club::v1::StreamAdvanceViewTimeNotification const* request, bool client = false, bool server = false);

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

 private:
  uint32 service_hash_;

  GOOGLE_DISALLOW_EVIL_CONSTRUCTORS(ClubListener);
};

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


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


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