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

#ifndef PROTOBUF_HekateServerProto_2eproto__INCLUDED
#define PROTOBUF_HekateServerProto_2eproto__INCLUDED

#include <string>

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

#if GOOGLE_PROTOBUF_VERSION < 3000000
#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 3000000 < 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/arena.h>
#include <google/protobuf/arenastring.h>
#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/metadata.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>
// @@protoc_insertion_point(includes)

namespace Hekate {
namespace Protobuf {
namespace Proto {
namespace Server {

// Internal implementation detail -- do not call these.
void protobuf_AddDesc_HekateServerProto_2eproto();
void protobuf_AssignDesc_HekateServerProto_2eproto();
void protobuf_ShutdownFile_HekateServerProto_2eproto();

class SendMessage_;
class SendToMessage;
class WSASendMessage;
class WSASendToMessage;
class RecvMessage;
class RecvFromMessage;
class WSARecvMessage;
class WSARecvFromMessage;
class HekateToClientMessage;
class AcknowledgeMessage;
class FilterHitMessage;
class HekateMessage;

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

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

  SendMessage_(const SendMessage_& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  void Swap(SendMessage_* other);

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

  inline SendMessage_* New() const { return New(NULL); }

  SendMessage_* New(::google::protobuf::Arena* arena) const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const SendMessage_& from);
  void MergeFrom(const SendMessage_& 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;
  void InternalSwap(SendMessage_* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // required int64 socket = 1;
  bool has_socket() const;
  void clear_socket();
  static const int kSocketFieldNumber = 1;
  ::google::protobuf::int64 socket() const;
  void set_socket(::google::protobuf::int64 value);

  // required bytes buffer = 2;
  bool has_buffer() const;
  void clear_buffer();
  static const int kBufferFieldNumber = 2;
  const ::std::string& buffer() const;
  void set_buffer(const ::std::string& value);
  void set_buffer(const char* value);
  void set_buffer(const void* value, size_t size);
  ::std::string* mutable_buffer();
  ::std::string* release_buffer();
  void set_allocated_buffer(::std::string* buffer);

  // required int32 length = 3;
  bool has_length() const;
  void clear_length();
  static const int kLengthFieldNumber = 3;
  ::google::protobuf::int32 length() const;
  void set_length(::google::protobuf::int32 value);

  // required int32 flags = 4;
  bool has_flags() const;
  void clear_flags();
  static const int kFlagsFieldNumber = 4;
  ::google::protobuf::int32 flags() const;
  void set_flags(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:Hekate.Protobuf.Proto.Server.SendMessage_)
 private:
  inline void set_has_socket();
  inline void clear_has_socket();
  inline void set_has_buffer();
  inline void clear_has_buffer();
  inline void set_has_length();
  inline void clear_has_length();
  inline void set_has_flags();
  inline void clear_has_flags();

  // helper for ByteSize()
  int RequiredFieldsByteSizeFallback() const;

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::int64 socket_;
  ::google::protobuf::internal::ArenaStringPtr buffer_;
  ::google::protobuf::int32 length_;
  ::google::protobuf::int32 flags_;
  friend void  protobuf_AddDesc_HekateServerProto_2eproto();
  friend void protobuf_AssignDesc_HekateServerProto_2eproto();
  friend void protobuf_ShutdownFile_HekateServerProto_2eproto();

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

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

  SendToMessage(const SendToMessage& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  void Swap(SendToMessage* other);

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

  inline SendToMessage* New() const { return New(NULL); }

  SendToMessage* New(::google::protobuf::Arena* arena) const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const SendToMessage& from);
  void MergeFrom(const SendToMessage& 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;
  void InternalSwap(SendToMessage* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // required int64 socket = 1;
  bool has_socket() const;
  void clear_socket();
  static const int kSocketFieldNumber = 1;
  ::google::protobuf::int64 socket() const;
  void set_socket(::google::protobuf::int64 value);

  // required bytes buffer = 2;
  bool has_buffer() const;
  void clear_buffer();
  static const int kBufferFieldNumber = 2;
  const ::std::string& buffer() const;
  void set_buffer(const ::std::string& value);
  void set_buffer(const char* value);
  void set_buffer(const void* value, size_t size);
  ::std::string* mutable_buffer();
  ::std::string* release_buffer();
  void set_allocated_buffer(::std::string* buffer);

  // required int32 length = 3;
  bool has_length() const;
  void clear_length();
  static const int kLengthFieldNumber = 3;
  ::google::protobuf::int32 length() const;
  void set_length(::google::protobuf::int32 value);

  // required int32 flags = 4;
  bool has_flags() const;
  void clear_flags();
  static const int kFlagsFieldNumber = 4;
  ::google::protobuf::int32 flags() const;
  void set_flags(::google::protobuf::int32 value);

  // required int64 to_address = 5;
  bool has_to_address() const;
  void clear_to_address();
  static const int kToAddressFieldNumber = 5;
  ::google::protobuf::int64 to_address() const;
  void set_to_address(::google::protobuf::int64 value);

  // required int32 to_length = 6;
  bool has_to_length() const;
  void clear_to_length();
  static const int kToLengthFieldNumber = 6;
  ::google::protobuf::int32 to_length() const;
  void set_to_length(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:Hekate.Protobuf.Proto.Server.SendToMessage)
 private:
  inline void set_has_socket();
  inline void clear_has_socket();
  inline void set_has_buffer();
  inline void clear_has_buffer();
  inline void set_has_length();
  inline void clear_has_length();
  inline void set_has_flags();
  inline void clear_has_flags();
  inline void set_has_to_address();
  inline void clear_has_to_address();
  inline void set_has_to_length();
  inline void clear_has_to_length();

  // helper for ByteSize()
  int RequiredFieldsByteSizeFallback() const;

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::int64 socket_;
  ::google::protobuf::internal::ArenaStringPtr buffer_;
  ::google::protobuf::int32 length_;
  ::google::protobuf::int32 flags_;
  ::google::protobuf::int64 to_address_;
  ::google::protobuf::int32 to_length_;
  friend void  protobuf_AddDesc_HekateServerProto_2eproto();
  friend void protobuf_AssignDesc_HekateServerProto_2eproto();
  friend void protobuf_ShutdownFile_HekateServerProto_2eproto();

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

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

  WSASendMessage(const WSASendMessage& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  void Swap(WSASendMessage* other);

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

  inline WSASendMessage* New() const { return New(NULL); }

  WSASendMessage* New(::google::protobuf::Arena* arena) const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const WSASendMessage& from);
  void MergeFrom(const WSASendMessage& 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;
  void InternalSwap(WSASendMessage* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // required int64 socket = 1;
  bool has_socket() const;
  void clear_socket();
  static const int kSocketFieldNumber = 1;
  ::google::protobuf::int64 socket() const;
  void set_socket(::google::protobuf::int64 value);

  // repeated bytes buffers = 2;
  int buffers_size() const;
  void clear_buffers();
  static const int kBuffersFieldNumber = 2;
  const ::std::string& buffers(int index) const;
  ::std::string* mutable_buffers(int index);
  void set_buffers(int index, const ::std::string& value);
  void set_buffers(int index, const char* value);
  void set_buffers(int index, const void* value, size_t size);
  ::std::string* add_buffers();
  void add_buffers(const ::std::string& value);
  void add_buffers(const char* value);
  void add_buffers(const void* value, size_t size);
  const ::google::protobuf::RepeatedPtrField< ::std::string>& buffers() const;
  ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_buffers();

  // repeated int32 buffer_size = 3;
  int buffer_size_size() const;
  void clear_buffer_size();
  static const int kBufferSizeFieldNumber = 3;
  ::google::protobuf::int32 buffer_size(int index) const;
  void set_buffer_size(int index, ::google::protobuf::int32 value);
  void add_buffer_size(::google::protobuf::int32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      buffer_size() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_buffer_size();

  // required int32 count = 4;
  bool has_count() const;
  void clear_count();
  static const int kCountFieldNumber = 4;
  ::google::protobuf::int32 count() const;
  void set_count(::google::protobuf::int32 value);

  // required int64 bytes_sent_address = 5;
  bool has_bytes_sent_address() const;
  void clear_bytes_sent_address();
  static const int kBytesSentAddressFieldNumber = 5;
  ::google::protobuf::int64 bytes_sent_address() const;
  void set_bytes_sent_address(::google::protobuf::int64 value);

  // required int32 flags = 6;
  bool has_flags() const;
  void clear_flags();
  static const int kFlagsFieldNumber = 6;
  ::google::protobuf::int32 flags() const;
  void set_flags(::google::protobuf::int32 value);

  // required int64 overlapped_address = 7;
  bool has_overlapped_address() const;
  void clear_overlapped_address();
  static const int kOverlappedAddressFieldNumber = 7;
  ::google::protobuf::int64 overlapped_address() const;
  void set_overlapped_address(::google::protobuf::int64 value);

  // required int64 overlapped_routine_address = 8;
  bool has_overlapped_routine_address() const;
  void clear_overlapped_routine_address();
  static const int kOverlappedRoutineAddressFieldNumber = 8;
  ::google::protobuf::int64 overlapped_routine_address() const;
  void set_overlapped_routine_address(::google::protobuf::int64 value);

  // @@protoc_insertion_point(class_scope:Hekate.Protobuf.Proto.Server.WSASendMessage)
 private:
  inline void set_has_socket();
  inline void clear_has_socket();
  inline void set_has_count();
  inline void clear_has_count();
  inline void set_has_bytes_sent_address();
  inline void clear_has_bytes_sent_address();
  inline void set_has_flags();
  inline void clear_has_flags();
  inline void set_has_overlapped_address();
  inline void clear_has_overlapped_address();
  inline void set_has_overlapped_routine_address();
  inline void clear_has_overlapped_routine_address();

  // helper for ByteSize()
  int RequiredFieldsByteSizeFallback() const;

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::int64 socket_;
  ::google::protobuf::RepeatedPtrField< ::std::string> buffers_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > buffer_size_;
  ::google::protobuf::int64 bytes_sent_address_;
  ::google::protobuf::int32 count_;
  ::google::protobuf::int32 flags_;
  ::google::protobuf::int64 overlapped_address_;
  ::google::protobuf::int64 overlapped_routine_address_;
  friend void  protobuf_AddDesc_HekateServerProto_2eproto();
  friend void protobuf_AssignDesc_HekateServerProto_2eproto();
  friend void protobuf_ShutdownFile_HekateServerProto_2eproto();

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

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

  WSASendToMessage(const WSASendToMessage& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  void Swap(WSASendToMessage* other);

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

  inline WSASendToMessage* New() const { return New(NULL); }

  WSASendToMessage* New(::google::protobuf::Arena* arena) const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const WSASendToMessage& from);
  void MergeFrom(const WSASendToMessage& 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;
  void InternalSwap(WSASendToMessage* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // required int64 socket = 1;
  bool has_socket() const;
  void clear_socket();
  static const int kSocketFieldNumber = 1;
  ::google::protobuf::int64 socket() const;
  void set_socket(::google::protobuf::int64 value);

  // repeated bytes buffers = 2;
  int buffers_size() const;
  void clear_buffers();
  static const int kBuffersFieldNumber = 2;
  const ::std::string& buffers(int index) const;
  ::std::string* mutable_buffers(int index);
  void set_buffers(int index, const ::std::string& value);
  void set_buffers(int index, const char* value);
  void set_buffers(int index, const void* value, size_t size);
  ::std::string* add_buffers();
  void add_buffers(const ::std::string& value);
  void add_buffers(const char* value);
  void add_buffers(const void* value, size_t size);
  const ::google::protobuf::RepeatedPtrField< ::std::string>& buffers() const;
  ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_buffers();

  // repeated int32 buffer_size = 3;
  int buffer_size_size() const;
  void clear_buffer_size();
  static const int kBufferSizeFieldNumber = 3;
  ::google::protobuf::int32 buffer_size(int index) const;
  void set_buffer_size(int index, ::google::protobuf::int32 value);
  void add_buffer_size(::google::protobuf::int32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      buffer_size() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_buffer_size();

  // required int32 count = 4;
  bool has_count() const;
  void clear_count();
  static const int kCountFieldNumber = 4;
  ::google::protobuf::int32 count() const;
  void set_count(::google::protobuf::int32 value);

  // required int64 bytes_sent_address = 5;
  bool has_bytes_sent_address() const;
  void clear_bytes_sent_address();
  static const int kBytesSentAddressFieldNumber = 5;
  ::google::protobuf::int64 bytes_sent_address() const;
  void set_bytes_sent_address(::google::protobuf::int64 value);

  // required int32 flags = 6;
  bool has_flags() const;
  void clear_flags();
  static const int kFlagsFieldNumber = 6;
  ::google::protobuf::int32 flags() const;
  void set_flags(::google::protobuf::int32 value);

  // required int64 to_address = 7;
  bool has_to_address() const;
  void clear_to_address();
  static const int kToAddressFieldNumber = 7;
  ::google::protobuf::int64 to_address() const;
  void set_to_address(::google::protobuf::int64 value);

  // required int32 to_length = 8;
  bool has_to_length() const;
  void clear_to_length();
  static const int kToLengthFieldNumber = 8;
  ::google::protobuf::int32 to_length() const;
  void set_to_length(::google::protobuf::int32 value);

  // required int64 overlapped_address = 9;
  bool has_overlapped_address() const;
  void clear_overlapped_address();
  static const int kOverlappedAddressFieldNumber = 9;
  ::google::protobuf::int64 overlapped_address() const;
  void set_overlapped_address(::google::protobuf::int64 value);

  // required int64 overlapped_routine_address = 10;
  bool has_overlapped_routine_address() const;
  void clear_overlapped_routine_address();
  static const int kOverlappedRoutineAddressFieldNumber = 10;
  ::google::protobuf::int64 overlapped_routine_address() const;
  void set_overlapped_routine_address(::google::protobuf::int64 value);

  // @@protoc_insertion_point(class_scope:Hekate.Protobuf.Proto.Server.WSASendToMessage)
 private:
  inline void set_has_socket();
  inline void clear_has_socket();
  inline void set_has_count();
  inline void clear_has_count();
  inline void set_has_bytes_sent_address();
  inline void clear_has_bytes_sent_address();
  inline void set_has_flags();
  inline void clear_has_flags();
  inline void set_has_to_address();
  inline void clear_has_to_address();
  inline void set_has_to_length();
  inline void clear_has_to_length();
  inline void set_has_overlapped_address();
  inline void clear_has_overlapped_address();
  inline void set_has_overlapped_routine_address();
  inline void clear_has_overlapped_routine_address();

  // helper for ByteSize()
  int RequiredFieldsByteSizeFallback() const;

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::int64 socket_;
  ::google::protobuf::RepeatedPtrField< ::std::string> buffers_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > buffer_size_;
  ::google::protobuf::int64 bytes_sent_address_;
  ::google::protobuf::int32 count_;
  ::google::protobuf::int32 flags_;
  ::google::protobuf::int64 to_address_;
  ::google::protobuf::int64 overlapped_address_;
  ::google::protobuf::int64 overlapped_routine_address_;
  ::google::protobuf::int32 to_length_;
  friend void  protobuf_AddDesc_HekateServerProto_2eproto();
  friend void protobuf_AssignDesc_HekateServerProto_2eproto();
  friend void protobuf_ShutdownFile_HekateServerProto_2eproto();

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

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

  RecvMessage(const RecvMessage& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  void Swap(RecvMessage* other);

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

  inline RecvMessage* New() const { return New(NULL); }

  RecvMessage* New(::google::protobuf::Arena* arena) const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const RecvMessage& from);
  void MergeFrom(const RecvMessage& 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;
  void InternalSwap(RecvMessage* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // required int64 socket = 1;
  bool has_socket() const;
  void clear_socket();
  static const int kSocketFieldNumber = 1;
  ::google::protobuf::int64 socket() const;
  void set_socket(::google::protobuf::int64 value);

  // required int64 buffer = 2;
  bool has_buffer() const;
  void clear_buffer();
  static const int kBufferFieldNumber = 2;
  ::google::protobuf::int64 buffer() const;
  void set_buffer(::google::protobuf::int64 value);

  // required int32 length = 3;
  bool has_length() const;
  void clear_length();
  static const int kLengthFieldNumber = 3;
  ::google::protobuf::int32 length() const;
  void set_length(::google::protobuf::int32 value);

  // required int32 flags = 4;
  bool has_flags() const;
  void clear_flags();
  static const int kFlagsFieldNumber = 4;
  ::google::protobuf::int32 flags() const;
  void set_flags(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:Hekate.Protobuf.Proto.Server.RecvMessage)
 private:
  inline void set_has_socket();
  inline void clear_has_socket();
  inline void set_has_buffer();
  inline void clear_has_buffer();
  inline void set_has_length();
  inline void clear_has_length();
  inline void set_has_flags();
  inline void clear_has_flags();

  // helper for ByteSize()
  int RequiredFieldsByteSizeFallback() const;

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::int64 socket_;
  ::google::protobuf::int64 buffer_;
  ::google::protobuf::int32 length_;
  ::google::protobuf::int32 flags_;
  friend void  protobuf_AddDesc_HekateServerProto_2eproto();
  friend void protobuf_AssignDesc_HekateServerProto_2eproto();
  friend void protobuf_ShutdownFile_HekateServerProto_2eproto();

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

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

  RecvFromMessage(const RecvFromMessage& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  void Swap(RecvFromMessage* other);

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

  inline RecvFromMessage* New() const { return New(NULL); }

  RecvFromMessage* New(::google::protobuf::Arena* arena) const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const RecvFromMessage& from);
  void MergeFrom(const RecvFromMessage& 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;
  void InternalSwap(RecvFromMessage* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // required int64 socket = 1;
  bool has_socket() const;
  void clear_socket();
  static const int kSocketFieldNumber = 1;
  ::google::protobuf::int64 socket() const;
  void set_socket(::google::protobuf::int64 value);

  // required int64 buffer = 2;
  bool has_buffer() const;
  void clear_buffer();
  static const int kBufferFieldNumber = 2;
  ::google::protobuf::int64 buffer() const;
  void set_buffer(::google::protobuf::int64 value);

  // required int32 length = 3;
  bool has_length() const;
  void clear_length();
  static const int kLengthFieldNumber = 3;
  ::google::protobuf::int32 length() const;
  void set_length(::google::protobuf::int32 value);

  // required int32 flags = 4;
  bool has_flags() const;
  void clear_flags();
  static const int kFlagsFieldNumber = 4;
  ::google::protobuf::int32 flags() const;
  void set_flags(::google::protobuf::int32 value);

  // required int64 from_address = 5;
  bool has_from_address() const;
  void clear_from_address();
  static const int kFromAddressFieldNumber = 5;
  ::google::protobuf::int64 from_address() const;
  void set_from_address(::google::protobuf::int64 value);

  // required int64 from_length_address = 6;
  bool has_from_length_address() const;
  void clear_from_length_address();
  static const int kFromLengthAddressFieldNumber = 6;
  ::google::protobuf::int64 from_length_address() const;
  void set_from_length_address(::google::protobuf::int64 value);

  // @@protoc_insertion_point(class_scope:Hekate.Protobuf.Proto.Server.RecvFromMessage)
 private:
  inline void set_has_socket();
  inline void clear_has_socket();
  inline void set_has_buffer();
  inline void clear_has_buffer();
  inline void set_has_length();
  inline void clear_has_length();
  inline void set_has_flags();
  inline void clear_has_flags();
  inline void set_has_from_address();
  inline void clear_has_from_address();
  inline void set_has_from_length_address();
  inline void clear_has_from_length_address();

  // helper for ByteSize()
  int RequiredFieldsByteSizeFallback() const;

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::int64 socket_;
  ::google::protobuf::int64 buffer_;
  ::google::protobuf::int32 length_;
  ::google::protobuf::int32 flags_;
  ::google::protobuf::int64 from_address_;
  ::google::protobuf::int64 from_length_address_;
  friend void  protobuf_AddDesc_HekateServerProto_2eproto();
  friend void protobuf_AssignDesc_HekateServerProto_2eproto();
  friend void protobuf_ShutdownFile_HekateServerProto_2eproto();

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

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

  WSARecvMessage(const WSARecvMessage& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  void Swap(WSARecvMessage* other);

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

  inline WSARecvMessage* New() const { return New(NULL); }

  WSARecvMessage* New(::google::protobuf::Arena* arena) const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const WSARecvMessage& from);
  void MergeFrom(const WSARecvMessage& 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;
  void InternalSwap(WSARecvMessage* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // required int64 socket = 1;
  bool has_socket() const;
  void clear_socket();
  static const int kSocketFieldNumber = 1;
  ::google::protobuf::int64 socket() const;
  void set_socket(::google::protobuf::int64 value);

  // repeated int64 buffers = 2;
  int buffers_size() const;
  void clear_buffers();
  static const int kBuffersFieldNumber = 2;
  ::google::protobuf::int64 buffers(int index) const;
  void set_buffers(int index, ::google::protobuf::int64 value);
  void add_buffers(::google::protobuf::int64 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
      buffers() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
      mutable_buffers();

  // repeated int32 buffer_size = 3;
  int buffer_size_size() const;
  void clear_buffer_size();
  static const int kBufferSizeFieldNumber = 3;
  ::google::protobuf::int32 buffer_size(int index) const;
  void set_buffer_size(int index, ::google::protobuf::int32 value);
  void add_buffer_size(::google::protobuf::int32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      buffer_size() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_buffer_size();

  // required int32 count = 4;
  bool has_count() const;
  void clear_count();
  static const int kCountFieldNumber = 4;
  ::google::protobuf::int32 count() const;
  void set_count(::google::protobuf::int32 value);

  // required int64 bytes_received_address = 5;
  bool has_bytes_received_address() const;
  void clear_bytes_received_address();
  static const int kBytesReceivedAddressFieldNumber = 5;
  ::google::protobuf::int64 bytes_received_address() const;
  void set_bytes_received_address(::google::protobuf::int64 value);

  // required int64 flags_address = 6;
  bool has_flags_address() const;
  void clear_flags_address();
  static const int kFlagsAddressFieldNumber = 6;
  ::google::protobuf::int64 flags_address() const;
  void set_flags_address(::google::protobuf::int64 value);

  // required int64 overlapped_address = 7;
  bool has_overlapped_address() const;
  void clear_overlapped_address();
  static const int kOverlappedAddressFieldNumber = 7;
  ::google::protobuf::int64 overlapped_address() const;
  void set_overlapped_address(::google::protobuf::int64 value);

  // required int64 overlapped_routine_address = 8;
  bool has_overlapped_routine_address() const;
  void clear_overlapped_routine_address();
  static const int kOverlappedRoutineAddressFieldNumber = 8;
  ::google::protobuf::int64 overlapped_routine_address() const;
  void set_overlapped_routine_address(::google::protobuf::int64 value);

  // @@protoc_insertion_point(class_scope:Hekate.Protobuf.Proto.Server.WSARecvMessage)
 private:
  inline void set_has_socket();
  inline void clear_has_socket();
  inline void set_has_count();
  inline void clear_has_count();
  inline void set_has_bytes_received_address();
  inline void clear_has_bytes_received_address();
  inline void set_has_flags_address();
  inline void clear_has_flags_address();
  inline void set_has_overlapped_address();
  inline void clear_has_overlapped_address();
  inline void set_has_overlapped_routine_address();
  inline void clear_has_overlapped_routine_address();

  // helper for ByteSize()
  int RequiredFieldsByteSizeFallback() const;

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::int64 socket_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > buffers_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > buffer_size_;
  ::google::protobuf::int64 bytes_received_address_;
  ::google::protobuf::int64 flags_address_;
  ::google::protobuf::int64 overlapped_address_;
  ::google::protobuf::int64 overlapped_routine_address_;
  ::google::protobuf::int32 count_;
  friend void  protobuf_AddDesc_HekateServerProto_2eproto();
  friend void protobuf_AssignDesc_HekateServerProto_2eproto();
  friend void protobuf_ShutdownFile_HekateServerProto_2eproto();

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

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

  WSARecvFromMessage(const WSARecvFromMessage& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  void Swap(WSARecvFromMessage* other);

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

  inline WSARecvFromMessage* New() const { return New(NULL); }

  WSARecvFromMessage* New(::google::protobuf::Arena* arena) const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const WSARecvFromMessage& from);
  void MergeFrom(const WSARecvFromMessage& 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;
  void InternalSwap(WSARecvFromMessage* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // required int64 socket = 1;
  bool has_socket() const;
  void clear_socket();
  static const int kSocketFieldNumber = 1;
  ::google::protobuf::int64 socket() const;
  void set_socket(::google::protobuf::int64 value);

  // repeated int64 buffers = 2;
  int buffers_size() const;
  void clear_buffers();
  static const int kBuffersFieldNumber = 2;
  ::google::protobuf::int64 buffers(int index) const;
  void set_buffers(int index, ::google::protobuf::int64 value);
  void add_buffers(::google::protobuf::int64 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
      buffers() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
      mutable_buffers();

  // repeated int32 buffer_size = 3;
  int buffer_size_size() const;
  void clear_buffer_size();
  static const int kBufferSizeFieldNumber = 3;
  ::google::protobuf::int32 buffer_size(int index) const;
  void set_buffer_size(int index, ::google::protobuf::int32 value);
  void add_buffer_size(::google::protobuf::int32 value);
  const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
      buffer_size() const;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
      mutable_buffer_size();

  // required int32 count = 4;
  bool has_count() const;
  void clear_count();
  static const int kCountFieldNumber = 4;
  ::google::protobuf::int32 count() const;
  void set_count(::google::protobuf::int32 value);

  // required int64 bytes_received_address = 5;
  bool has_bytes_received_address() const;
  void clear_bytes_received_address();
  static const int kBytesReceivedAddressFieldNumber = 5;
  ::google::protobuf::int64 bytes_received_address() const;
  void set_bytes_received_address(::google::protobuf::int64 value);

  // required int64 flags_address = 6;
  bool has_flags_address() const;
  void clear_flags_address();
  static const int kFlagsAddressFieldNumber = 6;
  ::google::protobuf::int64 flags_address() const;
  void set_flags_address(::google::protobuf::int64 value);

  // required int64 from_address = 7;
  bool has_from_address() const;
  void clear_from_address();
  static const int kFromAddressFieldNumber = 7;
  ::google::protobuf::int64 from_address() const;
  void set_from_address(::google::protobuf::int64 value);

  // required int64 from_length_address = 8;
  bool has_from_length_address() const;
  void clear_from_length_address();
  static const int kFromLengthAddressFieldNumber = 8;
  ::google::protobuf::int64 from_length_address() const;
  void set_from_length_address(::google::protobuf::int64 value);

  // required int64 overlapped_address = 9;
  bool has_overlapped_address() const;
  void clear_overlapped_address();
  static const int kOverlappedAddressFieldNumber = 9;
  ::google::protobuf::int64 overlapped_address() const;
  void set_overlapped_address(::google::protobuf::int64 value);

  // required int64 overlapped_routine_address = 10;
  bool has_overlapped_routine_address() const;
  void clear_overlapped_routine_address();
  static const int kOverlappedRoutineAddressFieldNumber = 10;
  ::google::protobuf::int64 overlapped_routine_address() const;
  void set_overlapped_routine_address(::google::protobuf::int64 value);

  // @@protoc_insertion_point(class_scope:Hekate.Protobuf.Proto.Server.WSARecvFromMessage)
 private:
  inline void set_has_socket();
  inline void clear_has_socket();
  inline void set_has_count();
  inline void clear_has_count();
  inline void set_has_bytes_received_address();
  inline void clear_has_bytes_received_address();
  inline void set_has_flags_address();
  inline void clear_has_flags_address();
  inline void set_has_from_address();
  inline void clear_has_from_address();
  inline void set_has_from_length_address();
  inline void clear_has_from_length_address();
  inline void set_has_overlapped_address();
  inline void clear_has_overlapped_address();
  inline void set_has_overlapped_routine_address();
  inline void clear_has_overlapped_routine_address();

  // helper for ByteSize()
  int RequiredFieldsByteSizeFallback() const;

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::int64 socket_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int64 > buffers_;
  ::google::protobuf::RepeatedField< ::google::protobuf::int32 > buffer_size_;
  ::google::protobuf::int64 bytes_received_address_;
  ::google::protobuf::int64 flags_address_;
  ::google::protobuf::int64 from_address_;
  ::google::protobuf::int64 from_length_address_;
  ::google::protobuf::int64 overlapped_address_;
  ::google::protobuf::int64 overlapped_routine_address_;
  ::google::protobuf::int32 count_;
  friend void  protobuf_AddDesc_HekateServerProto_2eproto();
  friend void protobuf_AssignDesc_HekateServerProto_2eproto();
  friend void protobuf_ShutdownFile_HekateServerProto_2eproto();

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

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

  HekateToClientMessage(const HekateToClientMessage& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  void Swap(HekateToClientMessage* other);

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

  inline HekateToClientMessage* New() const { return New(NULL); }

  HekateToClientMessage* New(::google::protobuf::Arena* arena) const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const HekateToClientMessage& from);
  void MergeFrom(const HekateToClientMessage& 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;
  void InternalSwap(HekateToClientMessage* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // optional .Hekate.Protobuf.Proto.Server.SendMessage_ send = 1;
  bool has_send() const;
  void clear_send();
  static const int kSendFieldNumber = 1;
  const ::Hekate::Protobuf::Proto::Server::SendMessage_& send() const;
  ::Hekate::Protobuf::Proto::Server::SendMessage_* mutable_send();
  ::Hekate::Protobuf::Proto::Server::SendMessage_* release_send();
  void set_allocated_send(::Hekate::Protobuf::Proto::Server::SendMessage_* send);

  // optional .Hekate.Protobuf.Proto.Server.SendToMessage sendto = 2;
  bool has_sendto() const;
  void clear_sendto();
  static const int kSendtoFieldNumber = 2;
  const ::Hekate::Protobuf::Proto::Server::SendToMessage& sendto() const;
  ::Hekate::Protobuf::Proto::Server::SendToMessage* mutable_sendto();
  ::Hekate::Protobuf::Proto::Server::SendToMessage* release_sendto();
  void set_allocated_sendto(::Hekate::Protobuf::Proto::Server::SendToMessage* sendto);

  // optional .Hekate.Protobuf.Proto.Server.WSASendMessage wsasend = 3;
  bool has_wsasend() const;
  void clear_wsasend();
  static const int kWsasendFieldNumber = 3;
  const ::Hekate::Protobuf::Proto::Server::WSASendMessage& wsasend() const;
  ::Hekate::Protobuf::Proto::Server::WSASendMessage* mutable_wsasend();
  ::Hekate::Protobuf::Proto::Server::WSASendMessage* release_wsasend();
  void set_allocated_wsasend(::Hekate::Protobuf::Proto::Server::WSASendMessage* wsasend);

  // optional .Hekate.Protobuf.Proto.Server.WSASendToMessage wsasendto = 4;
  bool has_wsasendto() const;
  void clear_wsasendto();
  static const int kWsasendtoFieldNumber = 4;
  const ::Hekate::Protobuf::Proto::Server::WSASendToMessage& wsasendto() const;
  ::Hekate::Protobuf::Proto::Server::WSASendToMessage* mutable_wsasendto();
  ::Hekate::Protobuf::Proto::Server::WSASendToMessage* release_wsasendto();
  void set_allocated_wsasendto(::Hekate::Protobuf::Proto::Server::WSASendToMessage* wsasendto);

  // optional .Hekate.Protobuf.Proto.Server.RecvMessage recv = 5;
  bool has_recv() const;
  void clear_recv();
  static const int kRecvFieldNumber = 5;
  const ::Hekate::Protobuf::Proto::Server::RecvMessage& recv() const;
  ::Hekate::Protobuf::Proto::Server::RecvMessage* mutable_recv();
  ::Hekate::Protobuf::Proto::Server::RecvMessage* release_recv();
  void set_allocated_recv(::Hekate::Protobuf::Proto::Server::RecvMessage* recv);

  // optional .Hekate.Protobuf.Proto.Server.RecvFromMessage recvfrom = 6;
  bool has_recvfrom() const;
  void clear_recvfrom();
  static const int kRecvfromFieldNumber = 6;
  const ::Hekate::Protobuf::Proto::Server::RecvFromMessage& recvfrom() const;
  ::Hekate::Protobuf::Proto::Server::RecvFromMessage* mutable_recvfrom();
  ::Hekate::Protobuf::Proto::Server::RecvFromMessage* release_recvfrom();
  void set_allocated_recvfrom(::Hekate::Protobuf::Proto::Server::RecvFromMessage* recvfrom);

  // optional .Hekate.Protobuf.Proto.Server.WSARecvMessage wsarecv = 7;
  bool has_wsarecv() const;
  void clear_wsarecv();
  static const int kWsarecvFieldNumber = 7;
  const ::Hekate::Protobuf::Proto::Server::WSARecvMessage& wsarecv() const;
  ::Hekate::Protobuf::Proto::Server::WSARecvMessage* mutable_wsarecv();
  ::Hekate::Protobuf::Proto::Server::WSARecvMessage* release_wsarecv();
  void set_allocated_wsarecv(::Hekate::Protobuf::Proto::Server::WSARecvMessage* wsarecv);

  // optional .Hekate.Protobuf.Proto.Server.WSARecvFromMessage wsarecvfrom = 8;
  bool has_wsarecvfrom() const;
  void clear_wsarecvfrom();
  static const int kWsarecvfromFieldNumber = 8;
  const ::Hekate::Protobuf::Proto::Server::WSARecvFromMessage& wsarecvfrom() const;
  ::Hekate::Protobuf::Proto::Server::WSARecvFromMessage* mutable_wsarecvfrom();
  ::Hekate::Protobuf::Proto::Server::WSARecvFromMessage* release_wsarecvfrom();
  void set_allocated_wsarecvfrom(::Hekate::Protobuf::Proto::Server::WSARecvFromMessage* wsarecvfrom);

  // optional .Hekate.Protobuf.Proto.Server.FilterHitMessage filter_message = 9;
  bool has_filter_message() const;
  void clear_filter_message();
  static const int kFilterMessageFieldNumber = 9;
  const ::Hekate::Protobuf::Proto::Server::FilterHitMessage& filter_message() const;
  ::Hekate::Protobuf::Proto::Server::FilterHitMessage* mutable_filter_message();
  ::Hekate::Protobuf::Proto::Server::FilterHitMessage* release_filter_message();
  void set_allocated_filter_message(::Hekate::Protobuf::Proto::Server::FilterHitMessage* filter_message);

  // @@protoc_insertion_point(class_scope:Hekate.Protobuf.Proto.Server.HekateToClientMessage)
 private:
  inline void set_has_send();
  inline void clear_has_send();
  inline void set_has_sendto();
  inline void clear_has_sendto();
  inline void set_has_wsasend();
  inline void clear_has_wsasend();
  inline void set_has_wsasendto();
  inline void clear_has_wsasendto();
  inline void set_has_recv();
  inline void clear_has_recv();
  inline void set_has_recvfrom();
  inline void clear_has_recvfrom();
  inline void set_has_wsarecv();
  inline void clear_has_wsarecv();
  inline void set_has_wsarecvfrom();
  inline void clear_has_wsarecvfrom();
  inline void set_has_filter_message();
  inline void clear_has_filter_message();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::Hekate::Protobuf::Proto::Server::SendMessage_* send_;
  ::Hekate::Protobuf::Proto::Server::SendToMessage* sendto_;
  ::Hekate::Protobuf::Proto::Server::WSASendMessage* wsasend_;
  ::Hekate::Protobuf::Proto::Server::WSASendToMessage* wsasendto_;
  ::Hekate::Protobuf::Proto::Server::RecvMessage* recv_;
  ::Hekate::Protobuf::Proto::Server::RecvFromMessage* recvfrom_;
  ::Hekate::Protobuf::Proto::Server::WSARecvMessage* wsarecv_;
  ::Hekate::Protobuf::Proto::Server::WSARecvFromMessage* wsarecvfrom_;
  ::Hekate::Protobuf::Proto::Server::FilterHitMessage* filter_message_;
  friend void  protobuf_AddDesc_HekateServerProto_2eproto();
  friend void protobuf_AssignDesc_HekateServerProto_2eproto();
  friend void protobuf_ShutdownFile_HekateServerProto_2eproto();

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

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

  AcknowledgeMessage(const AcknowledgeMessage& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  void Swap(AcknowledgeMessage* other);

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

  inline AcknowledgeMessage* New() const { return New(NULL); }

  AcknowledgeMessage* New(::google::protobuf::Arena* arena) const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const AcknowledgeMessage& from);
  void MergeFrom(const AcknowledgeMessage& 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;
  void InternalSwap(AcknowledgeMessage* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // optional int32 debug_response_id = 1;
  bool has_debug_response_id() const;
  void clear_debug_response_id();
  static const int kDebugResponseIdFieldNumber = 1;
  ::google::protobuf::int32 debug_response_id() const;
  void set_debug_response_id(::google::protobuf::int32 value);

  // @@protoc_insertion_point(class_scope:Hekate.Protobuf.Proto.Server.AcknowledgeMessage)
 private:
  inline void set_has_debug_response_id();
  inline void clear_has_debug_response_id();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::int32 debug_response_id_;
  friend void  protobuf_AddDesc_HekateServerProto_2eproto();
  friend void protobuf_AssignDesc_HekateServerProto_2eproto();
  friend void protobuf_ShutdownFile_HekateServerProto_2eproto();

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

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

  FilterHitMessage(const FilterHitMessage& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  void Swap(FilterHitMessage* other);

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

  inline FilterHitMessage* New() const { return New(NULL); }

  FilterHitMessage* New(::google::protobuf::Arena* arena) const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const FilterHitMessage& from);
  void MergeFrom(const FilterHitMessage& 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;
  void InternalSwap(FilterHitMessage* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // required int32 filter_id = 1;
  bool has_filter_id() const;
  void clear_filter_id();
  static const int kFilterIdFieldNumber = 1;
  ::google::protobuf::int32 filter_id() const;
  void set_filter_id(::google::protobuf::int32 value);

  // required bool broken = 2;
  bool has_broken() const;
  void clear_broken();
  static const int kBrokenFieldNumber = 2;
  bool broken() const;
  void set_broken(bool value);

  // @@protoc_insertion_point(class_scope:Hekate.Protobuf.Proto.Server.FilterHitMessage)
 private:
  inline void set_has_filter_id();
  inline void clear_has_filter_id();
  inline void set_has_broken();
  inline void clear_has_broken();

  // helper for ByteSize()
  int RequiredFieldsByteSizeFallback() const;

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::google::protobuf::int32 filter_id_;
  bool broken_;
  friend void  protobuf_AddDesc_HekateServerProto_2eproto();
  friend void protobuf_AssignDesc_HekateServerProto_2eproto();
  friend void protobuf_ShutdownFile_HekateServerProto_2eproto();

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

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

  HekateMessage(const HekateMessage& from);

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

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

  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
    return _internal_metadata_.mutable_unknown_fields();
  }

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

  void Swap(HekateMessage* other);

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

  inline HekateMessage* New() const { return New(NULL); }

  HekateMessage* New(::google::protobuf::Arena* arena) const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const HekateMessage& from);
  void MergeFrom(const HekateMessage& 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;
  void InternalSwap(HekateMessage* other);
  private:
  inline ::google::protobuf::Arena* GetArenaNoVirtual() const {
    return _internal_metadata_.arena();
  }
  inline void* MaybeArenaPtr() const {
    return _internal_metadata_.raw_arena_ptr();
  }
  public:

  ::google::protobuf::Metadata GetMetadata() const;

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

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

  // required .Hekate.Protobuf.Proto.Server.HekateToClientMessage hook_info = 1;
  bool has_hook_info() const;
  void clear_hook_info();
  static const int kHookInfoFieldNumber = 1;
  const ::Hekate::Protobuf::Proto::Server::HekateToClientMessage& hook_info() const;
  ::Hekate::Protobuf::Proto::Server::HekateToClientMessage* mutable_hook_info();
  ::Hekate::Protobuf::Proto::Server::HekateToClientMessage* release_hook_info();
  void set_allocated_hook_info(::Hekate::Protobuf::Proto::Server::HekateToClientMessage* hook_info);

  // optional .Hekate.Protobuf.Proto.Server.AcknowledgeMessage acknowledge = 2;
  bool has_acknowledge() const;
  void clear_acknowledge();
  static const int kAcknowledgeFieldNumber = 2;
  const ::Hekate::Protobuf::Proto::Server::AcknowledgeMessage& acknowledge() const;
  ::Hekate::Protobuf::Proto::Server::AcknowledgeMessage* mutable_acknowledge();
  ::Hekate::Protobuf::Proto::Server::AcknowledgeMessage* release_acknowledge();
  void set_allocated_acknowledge(::Hekate::Protobuf::Proto::Server::AcknowledgeMessage* acknowledge);

  // @@protoc_insertion_point(class_scope:Hekate.Protobuf.Proto.Server.HekateMessage)
 private:
  inline void set_has_hook_info();
  inline void clear_has_hook_info();
  inline void set_has_acknowledge();
  inline void clear_has_acknowledge();

  ::google::protobuf::internal::InternalMetadataWithArena _internal_metadata_;
  ::google::protobuf::uint32 _has_bits_[1];
  mutable int _cached_size_;
  ::Hekate::Protobuf::Proto::Server::HekateToClientMessage* hook_info_;
  ::Hekate::Protobuf::Proto::Server::AcknowledgeMessage* acknowledge_;
  friend void  protobuf_AddDesc_HekateServerProto_2eproto();
  friend void protobuf_AssignDesc_HekateServerProto_2eproto();
  friend void protobuf_ShutdownFile_HekateServerProto_2eproto();

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


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

#if !PROTOBUF_INLINE_NOT_IN_HEADERS
// SendMessage_

// required int64 socket = 1;
inline bool SendMessage_::has_socket() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void SendMessage_::set_has_socket() {
  _has_bits_[0] |= 0x00000001u;
}
inline void SendMessage_::clear_has_socket() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void SendMessage_::clear_socket() {
  socket_ = GOOGLE_LONGLONG(0);
  clear_has_socket();
}
inline ::google::protobuf::int64 SendMessage_::socket() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.SendMessage_.socket)
  return socket_;
}
inline void SendMessage_::set_socket(::google::protobuf::int64 value) {
  set_has_socket();
  socket_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.SendMessage_.socket)
}

// required bytes buffer = 2;
inline bool SendMessage_::has_buffer() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void SendMessage_::set_has_buffer() {
  _has_bits_[0] |= 0x00000002u;
}
inline void SendMessage_::clear_has_buffer() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void SendMessage_::clear_buffer() {
  buffer_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_buffer();
}
inline const ::std::string& SendMessage_::buffer() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.SendMessage_.buffer)
  return buffer_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void SendMessage_::set_buffer(const ::std::string& value) {
  set_has_buffer();
  buffer_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.SendMessage_.buffer)
}
inline void SendMessage_::set_buffer(const char* value) {
  set_has_buffer();
  buffer_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:Hekate.Protobuf.Proto.Server.SendMessage_.buffer)
}
inline void SendMessage_::set_buffer(const void* value, size_t size) {
  set_has_buffer();
  buffer_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:Hekate.Protobuf.Proto.Server.SendMessage_.buffer)
}
inline ::std::string* SendMessage_::mutable_buffer() {
  set_has_buffer();
  // @@protoc_insertion_point(field_mutable:Hekate.Protobuf.Proto.Server.SendMessage_.buffer)
  return buffer_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* SendMessage_::release_buffer() {
  clear_has_buffer();
  return buffer_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void SendMessage_::set_allocated_buffer(::std::string* buffer) {
  if (buffer != NULL) {
    set_has_buffer();
  } else {
    clear_has_buffer();
  }
  buffer_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), buffer);
  // @@protoc_insertion_point(field_set_allocated:Hekate.Protobuf.Proto.Server.SendMessage_.buffer)
}

// required int32 length = 3;
inline bool SendMessage_::has_length() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void SendMessage_::set_has_length() {
  _has_bits_[0] |= 0x00000004u;
}
inline void SendMessage_::clear_has_length() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void SendMessage_::clear_length() {
  length_ = 0;
  clear_has_length();
}
inline ::google::protobuf::int32 SendMessage_::length() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.SendMessage_.length)
  return length_;
}
inline void SendMessage_::set_length(::google::protobuf::int32 value) {
  set_has_length();
  length_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.SendMessage_.length)
}

// required int32 flags = 4;
inline bool SendMessage_::has_flags() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void SendMessage_::set_has_flags() {
  _has_bits_[0] |= 0x00000008u;
}
inline void SendMessage_::clear_has_flags() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void SendMessage_::clear_flags() {
  flags_ = 0;
  clear_has_flags();
}
inline ::google::protobuf::int32 SendMessage_::flags() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.SendMessage_.flags)
  return flags_;
}
inline void SendMessage_::set_flags(::google::protobuf::int32 value) {
  set_has_flags();
  flags_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.SendMessage_.flags)
}

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

// SendToMessage

// required int64 socket = 1;
inline bool SendToMessage::has_socket() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void SendToMessage::set_has_socket() {
  _has_bits_[0] |= 0x00000001u;
}
inline void SendToMessage::clear_has_socket() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void SendToMessage::clear_socket() {
  socket_ = GOOGLE_LONGLONG(0);
  clear_has_socket();
}
inline ::google::protobuf::int64 SendToMessage::socket() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.SendToMessage.socket)
  return socket_;
}
inline void SendToMessage::set_socket(::google::protobuf::int64 value) {
  set_has_socket();
  socket_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.SendToMessage.socket)
}

// required bytes buffer = 2;
inline bool SendToMessage::has_buffer() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void SendToMessage::set_has_buffer() {
  _has_bits_[0] |= 0x00000002u;
}
inline void SendToMessage::clear_has_buffer() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void SendToMessage::clear_buffer() {
  buffer_.ClearToEmptyNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
  clear_has_buffer();
}
inline const ::std::string& SendToMessage::buffer() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.SendToMessage.buffer)
  return buffer_.GetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void SendToMessage::set_buffer(const ::std::string& value) {
  set_has_buffer();
  buffer_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), value);
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.SendToMessage.buffer)
}
inline void SendToMessage::set_buffer(const char* value) {
  set_has_buffer();
  buffer_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), ::std::string(value));
  // @@protoc_insertion_point(field_set_char:Hekate.Protobuf.Proto.Server.SendToMessage.buffer)
}
inline void SendToMessage::set_buffer(const void* value, size_t size) {
  set_has_buffer();
  buffer_.SetNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(),
      ::std::string(reinterpret_cast<const char*>(value), size));
  // @@protoc_insertion_point(field_set_pointer:Hekate.Protobuf.Proto.Server.SendToMessage.buffer)
}
inline ::std::string* SendToMessage::mutable_buffer() {
  set_has_buffer();
  // @@protoc_insertion_point(field_mutable:Hekate.Protobuf.Proto.Server.SendToMessage.buffer)
  return buffer_.MutableNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline ::std::string* SendToMessage::release_buffer() {
  clear_has_buffer();
  return buffer_.ReleaseNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited());
}
inline void SendToMessage::set_allocated_buffer(::std::string* buffer) {
  if (buffer != NULL) {
    set_has_buffer();
  } else {
    clear_has_buffer();
  }
  buffer_.SetAllocatedNoArena(&::google::protobuf::internal::GetEmptyStringAlreadyInited(), buffer);
  // @@protoc_insertion_point(field_set_allocated:Hekate.Protobuf.Proto.Server.SendToMessage.buffer)
}

// required int32 length = 3;
inline bool SendToMessage::has_length() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void SendToMessage::set_has_length() {
  _has_bits_[0] |= 0x00000004u;
}
inline void SendToMessage::clear_has_length() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void SendToMessage::clear_length() {
  length_ = 0;
  clear_has_length();
}
inline ::google::protobuf::int32 SendToMessage::length() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.SendToMessage.length)
  return length_;
}
inline void SendToMessage::set_length(::google::protobuf::int32 value) {
  set_has_length();
  length_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.SendToMessage.length)
}

// required int32 flags = 4;
inline bool SendToMessage::has_flags() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void SendToMessage::set_has_flags() {
  _has_bits_[0] |= 0x00000008u;
}
inline void SendToMessage::clear_has_flags() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void SendToMessage::clear_flags() {
  flags_ = 0;
  clear_has_flags();
}
inline ::google::protobuf::int32 SendToMessage::flags() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.SendToMessage.flags)
  return flags_;
}
inline void SendToMessage::set_flags(::google::protobuf::int32 value) {
  set_has_flags();
  flags_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.SendToMessage.flags)
}

// required int64 to_address = 5;
inline bool SendToMessage::has_to_address() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void SendToMessage::set_has_to_address() {
  _has_bits_[0] |= 0x00000010u;
}
inline void SendToMessage::clear_has_to_address() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void SendToMessage::clear_to_address() {
  to_address_ = GOOGLE_LONGLONG(0);
  clear_has_to_address();
}
inline ::google::protobuf::int64 SendToMessage::to_address() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.SendToMessage.to_address)
  return to_address_;
}
inline void SendToMessage::set_to_address(::google::protobuf::int64 value) {
  set_has_to_address();
  to_address_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.SendToMessage.to_address)
}

// required int32 to_length = 6;
inline bool SendToMessage::has_to_length() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void SendToMessage::set_has_to_length() {
  _has_bits_[0] |= 0x00000020u;
}
inline void SendToMessage::clear_has_to_length() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void SendToMessage::clear_to_length() {
  to_length_ = 0;
  clear_has_to_length();
}
inline ::google::protobuf::int32 SendToMessage::to_length() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.SendToMessage.to_length)
  return to_length_;
}
inline void SendToMessage::set_to_length(::google::protobuf::int32 value) {
  set_has_to_length();
  to_length_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.SendToMessage.to_length)
}

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

// WSASendMessage

// required int64 socket = 1;
inline bool WSASendMessage::has_socket() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void WSASendMessage::set_has_socket() {
  _has_bits_[0] |= 0x00000001u;
}
inline void WSASendMessage::clear_has_socket() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void WSASendMessage::clear_socket() {
  socket_ = GOOGLE_LONGLONG(0);
  clear_has_socket();
}
inline ::google::protobuf::int64 WSASendMessage::socket() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSASendMessage.socket)
  return socket_;
}
inline void WSASendMessage::set_socket(::google::protobuf::int64 value) {
  set_has_socket();
  socket_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSASendMessage.socket)
}

// repeated bytes buffers = 2;
inline int WSASendMessage::buffers_size() const {
  return buffers_.size();
}
inline void WSASendMessage::clear_buffers() {
  buffers_.Clear();
}
inline const ::std::string& WSASendMessage::buffers(int index) const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSASendMessage.buffers)
  return buffers_.Get(index);
}
inline ::std::string* WSASendMessage::mutable_buffers(int index) {
  // @@protoc_insertion_point(field_mutable:Hekate.Protobuf.Proto.Server.WSASendMessage.buffers)
  return buffers_.Mutable(index);
}
inline void WSASendMessage::set_buffers(int index, const ::std::string& value) {
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSASendMessage.buffers)
  buffers_.Mutable(index)->assign(value);
}
inline void WSASendMessage::set_buffers(int index, const char* value) {
  buffers_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:Hekate.Protobuf.Proto.Server.WSASendMessage.buffers)
}
inline void WSASendMessage::set_buffers(int index, const void* value, size_t size) {
  buffers_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:Hekate.Protobuf.Proto.Server.WSASendMessage.buffers)
}
inline ::std::string* WSASendMessage::add_buffers() {
  return buffers_.Add();
}
inline void WSASendMessage::add_buffers(const ::std::string& value) {
  buffers_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:Hekate.Protobuf.Proto.Server.WSASendMessage.buffers)
}
inline void WSASendMessage::add_buffers(const char* value) {
  buffers_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:Hekate.Protobuf.Proto.Server.WSASendMessage.buffers)
}
inline void WSASendMessage::add_buffers(const void* value, size_t size) {
  buffers_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:Hekate.Protobuf.Proto.Server.WSASendMessage.buffers)
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
WSASendMessage::buffers() const {
  // @@protoc_insertion_point(field_list:Hekate.Protobuf.Proto.Server.WSASendMessage.buffers)
  return buffers_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
WSASendMessage::mutable_buffers() {
  // @@protoc_insertion_point(field_mutable_list:Hekate.Protobuf.Proto.Server.WSASendMessage.buffers)
  return &buffers_;
}

// repeated int32 buffer_size = 3;
inline int WSASendMessage::buffer_size_size() const {
  return buffer_size_.size();
}
inline void WSASendMessage::clear_buffer_size() {
  buffer_size_.Clear();
}
inline ::google::protobuf::int32 WSASendMessage::buffer_size(int index) const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSASendMessage.buffer_size)
  return buffer_size_.Get(index);
}
inline void WSASendMessage::set_buffer_size(int index, ::google::protobuf::int32 value) {
  buffer_size_.Set(index, value);
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSASendMessage.buffer_size)
}
inline void WSASendMessage::add_buffer_size(::google::protobuf::int32 value) {
  buffer_size_.Add(value);
  // @@protoc_insertion_point(field_add:Hekate.Protobuf.Proto.Server.WSASendMessage.buffer_size)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
WSASendMessage::buffer_size() const {
  // @@protoc_insertion_point(field_list:Hekate.Protobuf.Proto.Server.WSASendMessage.buffer_size)
  return buffer_size_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
WSASendMessage::mutable_buffer_size() {
  // @@protoc_insertion_point(field_mutable_list:Hekate.Protobuf.Proto.Server.WSASendMessage.buffer_size)
  return &buffer_size_;
}

// required int32 count = 4;
inline bool WSASendMessage::has_count() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void WSASendMessage::set_has_count() {
  _has_bits_[0] |= 0x00000008u;
}
inline void WSASendMessage::clear_has_count() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void WSASendMessage::clear_count() {
  count_ = 0;
  clear_has_count();
}
inline ::google::protobuf::int32 WSASendMessage::count() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSASendMessage.count)
  return count_;
}
inline void WSASendMessage::set_count(::google::protobuf::int32 value) {
  set_has_count();
  count_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSASendMessage.count)
}

// required int64 bytes_sent_address = 5;
inline bool WSASendMessage::has_bytes_sent_address() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void WSASendMessage::set_has_bytes_sent_address() {
  _has_bits_[0] |= 0x00000010u;
}
inline void WSASendMessage::clear_has_bytes_sent_address() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void WSASendMessage::clear_bytes_sent_address() {
  bytes_sent_address_ = GOOGLE_LONGLONG(0);
  clear_has_bytes_sent_address();
}
inline ::google::protobuf::int64 WSASendMessage::bytes_sent_address() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSASendMessage.bytes_sent_address)
  return bytes_sent_address_;
}
inline void WSASendMessage::set_bytes_sent_address(::google::protobuf::int64 value) {
  set_has_bytes_sent_address();
  bytes_sent_address_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSASendMessage.bytes_sent_address)
}

// required int32 flags = 6;
inline bool WSASendMessage::has_flags() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void WSASendMessage::set_has_flags() {
  _has_bits_[0] |= 0x00000020u;
}
inline void WSASendMessage::clear_has_flags() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void WSASendMessage::clear_flags() {
  flags_ = 0;
  clear_has_flags();
}
inline ::google::protobuf::int32 WSASendMessage::flags() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSASendMessage.flags)
  return flags_;
}
inline void WSASendMessage::set_flags(::google::protobuf::int32 value) {
  set_has_flags();
  flags_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSASendMessage.flags)
}

// required int64 overlapped_address = 7;
inline bool WSASendMessage::has_overlapped_address() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void WSASendMessage::set_has_overlapped_address() {
  _has_bits_[0] |= 0x00000040u;
}
inline void WSASendMessage::clear_has_overlapped_address() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void WSASendMessage::clear_overlapped_address() {
  overlapped_address_ = GOOGLE_LONGLONG(0);
  clear_has_overlapped_address();
}
inline ::google::protobuf::int64 WSASendMessage::overlapped_address() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSASendMessage.overlapped_address)
  return overlapped_address_;
}
inline void WSASendMessage::set_overlapped_address(::google::protobuf::int64 value) {
  set_has_overlapped_address();
  overlapped_address_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSASendMessage.overlapped_address)
}

// required int64 overlapped_routine_address = 8;
inline bool WSASendMessage::has_overlapped_routine_address() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void WSASendMessage::set_has_overlapped_routine_address() {
  _has_bits_[0] |= 0x00000080u;
}
inline void WSASendMessage::clear_has_overlapped_routine_address() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void WSASendMessage::clear_overlapped_routine_address() {
  overlapped_routine_address_ = GOOGLE_LONGLONG(0);
  clear_has_overlapped_routine_address();
}
inline ::google::protobuf::int64 WSASendMessage::overlapped_routine_address() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSASendMessage.overlapped_routine_address)
  return overlapped_routine_address_;
}
inline void WSASendMessage::set_overlapped_routine_address(::google::protobuf::int64 value) {
  set_has_overlapped_routine_address();
  overlapped_routine_address_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSASendMessage.overlapped_routine_address)
}

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

// WSASendToMessage

// required int64 socket = 1;
inline bool WSASendToMessage::has_socket() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void WSASendToMessage::set_has_socket() {
  _has_bits_[0] |= 0x00000001u;
}
inline void WSASendToMessage::clear_has_socket() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void WSASendToMessage::clear_socket() {
  socket_ = GOOGLE_LONGLONG(0);
  clear_has_socket();
}
inline ::google::protobuf::int64 WSASendToMessage::socket() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSASendToMessage.socket)
  return socket_;
}
inline void WSASendToMessage::set_socket(::google::protobuf::int64 value) {
  set_has_socket();
  socket_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSASendToMessage.socket)
}

// repeated bytes buffers = 2;
inline int WSASendToMessage::buffers_size() const {
  return buffers_.size();
}
inline void WSASendToMessage::clear_buffers() {
  buffers_.Clear();
}
inline const ::std::string& WSASendToMessage::buffers(int index) const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSASendToMessage.buffers)
  return buffers_.Get(index);
}
inline ::std::string* WSASendToMessage::mutable_buffers(int index) {
  // @@protoc_insertion_point(field_mutable:Hekate.Protobuf.Proto.Server.WSASendToMessage.buffers)
  return buffers_.Mutable(index);
}
inline void WSASendToMessage::set_buffers(int index, const ::std::string& value) {
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSASendToMessage.buffers)
  buffers_.Mutable(index)->assign(value);
}
inline void WSASendToMessage::set_buffers(int index, const char* value) {
  buffers_.Mutable(index)->assign(value);
  // @@protoc_insertion_point(field_set_char:Hekate.Protobuf.Proto.Server.WSASendToMessage.buffers)
}
inline void WSASendToMessage::set_buffers(int index, const void* value, size_t size) {
  buffers_.Mutable(index)->assign(
    reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_set_pointer:Hekate.Protobuf.Proto.Server.WSASendToMessage.buffers)
}
inline ::std::string* WSASendToMessage::add_buffers() {
  return buffers_.Add();
}
inline void WSASendToMessage::add_buffers(const ::std::string& value) {
  buffers_.Add()->assign(value);
  // @@protoc_insertion_point(field_add:Hekate.Protobuf.Proto.Server.WSASendToMessage.buffers)
}
inline void WSASendToMessage::add_buffers(const char* value) {
  buffers_.Add()->assign(value);
  // @@protoc_insertion_point(field_add_char:Hekate.Protobuf.Proto.Server.WSASendToMessage.buffers)
}
inline void WSASendToMessage::add_buffers(const void* value, size_t size) {
  buffers_.Add()->assign(reinterpret_cast<const char*>(value), size);
  // @@protoc_insertion_point(field_add_pointer:Hekate.Protobuf.Proto.Server.WSASendToMessage.buffers)
}
inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
WSASendToMessage::buffers() const {
  // @@protoc_insertion_point(field_list:Hekate.Protobuf.Proto.Server.WSASendToMessage.buffers)
  return buffers_;
}
inline ::google::protobuf::RepeatedPtrField< ::std::string>*
WSASendToMessage::mutable_buffers() {
  // @@protoc_insertion_point(field_mutable_list:Hekate.Protobuf.Proto.Server.WSASendToMessage.buffers)
  return &buffers_;
}

// repeated int32 buffer_size = 3;
inline int WSASendToMessage::buffer_size_size() const {
  return buffer_size_.size();
}
inline void WSASendToMessage::clear_buffer_size() {
  buffer_size_.Clear();
}
inline ::google::protobuf::int32 WSASendToMessage::buffer_size(int index) const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSASendToMessage.buffer_size)
  return buffer_size_.Get(index);
}
inline void WSASendToMessage::set_buffer_size(int index, ::google::protobuf::int32 value) {
  buffer_size_.Set(index, value);
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSASendToMessage.buffer_size)
}
inline void WSASendToMessage::add_buffer_size(::google::protobuf::int32 value) {
  buffer_size_.Add(value);
  // @@protoc_insertion_point(field_add:Hekate.Protobuf.Proto.Server.WSASendToMessage.buffer_size)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
WSASendToMessage::buffer_size() const {
  // @@protoc_insertion_point(field_list:Hekate.Protobuf.Proto.Server.WSASendToMessage.buffer_size)
  return buffer_size_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
WSASendToMessage::mutable_buffer_size() {
  // @@protoc_insertion_point(field_mutable_list:Hekate.Protobuf.Proto.Server.WSASendToMessage.buffer_size)
  return &buffer_size_;
}

// required int32 count = 4;
inline bool WSASendToMessage::has_count() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void WSASendToMessage::set_has_count() {
  _has_bits_[0] |= 0x00000008u;
}
inline void WSASendToMessage::clear_has_count() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void WSASendToMessage::clear_count() {
  count_ = 0;
  clear_has_count();
}
inline ::google::protobuf::int32 WSASendToMessage::count() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSASendToMessage.count)
  return count_;
}
inline void WSASendToMessage::set_count(::google::protobuf::int32 value) {
  set_has_count();
  count_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSASendToMessage.count)
}

// required int64 bytes_sent_address = 5;
inline bool WSASendToMessage::has_bytes_sent_address() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void WSASendToMessage::set_has_bytes_sent_address() {
  _has_bits_[0] |= 0x00000010u;
}
inline void WSASendToMessage::clear_has_bytes_sent_address() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void WSASendToMessage::clear_bytes_sent_address() {
  bytes_sent_address_ = GOOGLE_LONGLONG(0);
  clear_has_bytes_sent_address();
}
inline ::google::protobuf::int64 WSASendToMessage::bytes_sent_address() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSASendToMessage.bytes_sent_address)
  return bytes_sent_address_;
}
inline void WSASendToMessage::set_bytes_sent_address(::google::protobuf::int64 value) {
  set_has_bytes_sent_address();
  bytes_sent_address_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSASendToMessage.bytes_sent_address)
}

// required int32 flags = 6;
inline bool WSASendToMessage::has_flags() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void WSASendToMessage::set_has_flags() {
  _has_bits_[0] |= 0x00000020u;
}
inline void WSASendToMessage::clear_has_flags() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void WSASendToMessage::clear_flags() {
  flags_ = 0;
  clear_has_flags();
}
inline ::google::protobuf::int32 WSASendToMessage::flags() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSASendToMessage.flags)
  return flags_;
}
inline void WSASendToMessage::set_flags(::google::protobuf::int32 value) {
  set_has_flags();
  flags_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSASendToMessage.flags)
}

// required int64 to_address = 7;
inline bool WSASendToMessage::has_to_address() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void WSASendToMessage::set_has_to_address() {
  _has_bits_[0] |= 0x00000040u;
}
inline void WSASendToMessage::clear_has_to_address() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void WSASendToMessage::clear_to_address() {
  to_address_ = GOOGLE_LONGLONG(0);
  clear_has_to_address();
}
inline ::google::protobuf::int64 WSASendToMessage::to_address() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSASendToMessage.to_address)
  return to_address_;
}
inline void WSASendToMessage::set_to_address(::google::protobuf::int64 value) {
  set_has_to_address();
  to_address_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSASendToMessage.to_address)
}

// required int32 to_length = 8;
inline bool WSASendToMessage::has_to_length() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void WSASendToMessage::set_has_to_length() {
  _has_bits_[0] |= 0x00000080u;
}
inline void WSASendToMessage::clear_has_to_length() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void WSASendToMessage::clear_to_length() {
  to_length_ = 0;
  clear_has_to_length();
}
inline ::google::protobuf::int32 WSASendToMessage::to_length() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSASendToMessage.to_length)
  return to_length_;
}
inline void WSASendToMessage::set_to_length(::google::protobuf::int32 value) {
  set_has_to_length();
  to_length_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSASendToMessage.to_length)
}

// required int64 overlapped_address = 9;
inline bool WSASendToMessage::has_overlapped_address() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void WSASendToMessage::set_has_overlapped_address() {
  _has_bits_[0] |= 0x00000100u;
}
inline void WSASendToMessage::clear_has_overlapped_address() {
  _has_bits_[0] &= ~0x00000100u;
}
inline void WSASendToMessage::clear_overlapped_address() {
  overlapped_address_ = GOOGLE_LONGLONG(0);
  clear_has_overlapped_address();
}
inline ::google::protobuf::int64 WSASendToMessage::overlapped_address() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSASendToMessage.overlapped_address)
  return overlapped_address_;
}
inline void WSASendToMessage::set_overlapped_address(::google::protobuf::int64 value) {
  set_has_overlapped_address();
  overlapped_address_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSASendToMessage.overlapped_address)
}

// required int64 overlapped_routine_address = 10;
inline bool WSASendToMessage::has_overlapped_routine_address() const {
  return (_has_bits_[0] & 0x00000200u) != 0;
}
inline void WSASendToMessage::set_has_overlapped_routine_address() {
  _has_bits_[0] |= 0x00000200u;
}
inline void WSASendToMessage::clear_has_overlapped_routine_address() {
  _has_bits_[0] &= ~0x00000200u;
}
inline void WSASendToMessage::clear_overlapped_routine_address() {
  overlapped_routine_address_ = GOOGLE_LONGLONG(0);
  clear_has_overlapped_routine_address();
}
inline ::google::protobuf::int64 WSASendToMessage::overlapped_routine_address() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSASendToMessage.overlapped_routine_address)
  return overlapped_routine_address_;
}
inline void WSASendToMessage::set_overlapped_routine_address(::google::protobuf::int64 value) {
  set_has_overlapped_routine_address();
  overlapped_routine_address_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSASendToMessage.overlapped_routine_address)
}

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

// RecvMessage

// required int64 socket = 1;
inline bool RecvMessage::has_socket() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RecvMessage::set_has_socket() {
  _has_bits_[0] |= 0x00000001u;
}
inline void RecvMessage::clear_has_socket() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void RecvMessage::clear_socket() {
  socket_ = GOOGLE_LONGLONG(0);
  clear_has_socket();
}
inline ::google::protobuf::int64 RecvMessage::socket() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.RecvMessage.socket)
  return socket_;
}
inline void RecvMessage::set_socket(::google::protobuf::int64 value) {
  set_has_socket();
  socket_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.RecvMessage.socket)
}

// required int64 buffer = 2;
inline bool RecvMessage::has_buffer() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void RecvMessage::set_has_buffer() {
  _has_bits_[0] |= 0x00000002u;
}
inline void RecvMessage::clear_has_buffer() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void RecvMessage::clear_buffer() {
  buffer_ = GOOGLE_LONGLONG(0);
  clear_has_buffer();
}
inline ::google::protobuf::int64 RecvMessage::buffer() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.RecvMessage.buffer)
  return buffer_;
}
inline void RecvMessage::set_buffer(::google::protobuf::int64 value) {
  set_has_buffer();
  buffer_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.RecvMessage.buffer)
}

// required int32 length = 3;
inline bool RecvMessage::has_length() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void RecvMessage::set_has_length() {
  _has_bits_[0] |= 0x00000004u;
}
inline void RecvMessage::clear_has_length() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void RecvMessage::clear_length() {
  length_ = 0;
  clear_has_length();
}
inline ::google::protobuf::int32 RecvMessage::length() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.RecvMessage.length)
  return length_;
}
inline void RecvMessage::set_length(::google::protobuf::int32 value) {
  set_has_length();
  length_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.RecvMessage.length)
}

// required int32 flags = 4;
inline bool RecvMessage::has_flags() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void RecvMessage::set_has_flags() {
  _has_bits_[0] |= 0x00000008u;
}
inline void RecvMessage::clear_has_flags() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void RecvMessage::clear_flags() {
  flags_ = 0;
  clear_has_flags();
}
inline ::google::protobuf::int32 RecvMessage::flags() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.RecvMessage.flags)
  return flags_;
}
inline void RecvMessage::set_flags(::google::protobuf::int32 value) {
  set_has_flags();
  flags_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.RecvMessage.flags)
}

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

// RecvFromMessage

// required int64 socket = 1;
inline bool RecvFromMessage::has_socket() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void RecvFromMessage::set_has_socket() {
  _has_bits_[0] |= 0x00000001u;
}
inline void RecvFromMessage::clear_has_socket() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void RecvFromMessage::clear_socket() {
  socket_ = GOOGLE_LONGLONG(0);
  clear_has_socket();
}
inline ::google::protobuf::int64 RecvFromMessage::socket() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.RecvFromMessage.socket)
  return socket_;
}
inline void RecvFromMessage::set_socket(::google::protobuf::int64 value) {
  set_has_socket();
  socket_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.RecvFromMessage.socket)
}

// required int64 buffer = 2;
inline bool RecvFromMessage::has_buffer() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void RecvFromMessage::set_has_buffer() {
  _has_bits_[0] |= 0x00000002u;
}
inline void RecvFromMessage::clear_has_buffer() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void RecvFromMessage::clear_buffer() {
  buffer_ = GOOGLE_LONGLONG(0);
  clear_has_buffer();
}
inline ::google::protobuf::int64 RecvFromMessage::buffer() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.RecvFromMessage.buffer)
  return buffer_;
}
inline void RecvFromMessage::set_buffer(::google::protobuf::int64 value) {
  set_has_buffer();
  buffer_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.RecvFromMessage.buffer)
}

// required int32 length = 3;
inline bool RecvFromMessage::has_length() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void RecvFromMessage::set_has_length() {
  _has_bits_[0] |= 0x00000004u;
}
inline void RecvFromMessage::clear_has_length() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void RecvFromMessage::clear_length() {
  length_ = 0;
  clear_has_length();
}
inline ::google::protobuf::int32 RecvFromMessage::length() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.RecvFromMessage.length)
  return length_;
}
inline void RecvFromMessage::set_length(::google::protobuf::int32 value) {
  set_has_length();
  length_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.RecvFromMessage.length)
}

// required int32 flags = 4;
inline bool RecvFromMessage::has_flags() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void RecvFromMessage::set_has_flags() {
  _has_bits_[0] |= 0x00000008u;
}
inline void RecvFromMessage::clear_has_flags() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void RecvFromMessage::clear_flags() {
  flags_ = 0;
  clear_has_flags();
}
inline ::google::protobuf::int32 RecvFromMessage::flags() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.RecvFromMessage.flags)
  return flags_;
}
inline void RecvFromMessage::set_flags(::google::protobuf::int32 value) {
  set_has_flags();
  flags_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.RecvFromMessage.flags)
}

// required int64 from_address = 5;
inline bool RecvFromMessage::has_from_address() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void RecvFromMessage::set_has_from_address() {
  _has_bits_[0] |= 0x00000010u;
}
inline void RecvFromMessage::clear_has_from_address() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void RecvFromMessage::clear_from_address() {
  from_address_ = GOOGLE_LONGLONG(0);
  clear_has_from_address();
}
inline ::google::protobuf::int64 RecvFromMessage::from_address() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.RecvFromMessage.from_address)
  return from_address_;
}
inline void RecvFromMessage::set_from_address(::google::protobuf::int64 value) {
  set_has_from_address();
  from_address_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.RecvFromMessage.from_address)
}

// required int64 from_length_address = 6;
inline bool RecvFromMessage::has_from_length_address() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void RecvFromMessage::set_has_from_length_address() {
  _has_bits_[0] |= 0x00000020u;
}
inline void RecvFromMessage::clear_has_from_length_address() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void RecvFromMessage::clear_from_length_address() {
  from_length_address_ = GOOGLE_LONGLONG(0);
  clear_has_from_length_address();
}
inline ::google::protobuf::int64 RecvFromMessage::from_length_address() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.RecvFromMessage.from_length_address)
  return from_length_address_;
}
inline void RecvFromMessage::set_from_length_address(::google::protobuf::int64 value) {
  set_has_from_length_address();
  from_length_address_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.RecvFromMessage.from_length_address)
}

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

// WSARecvMessage

// required int64 socket = 1;
inline bool WSARecvMessage::has_socket() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void WSARecvMessage::set_has_socket() {
  _has_bits_[0] |= 0x00000001u;
}
inline void WSARecvMessage::clear_has_socket() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void WSARecvMessage::clear_socket() {
  socket_ = GOOGLE_LONGLONG(0);
  clear_has_socket();
}
inline ::google::protobuf::int64 WSARecvMessage::socket() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSARecvMessage.socket)
  return socket_;
}
inline void WSARecvMessage::set_socket(::google::protobuf::int64 value) {
  set_has_socket();
  socket_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSARecvMessage.socket)
}

// repeated int64 buffers = 2;
inline int WSARecvMessage::buffers_size() const {
  return buffers_.size();
}
inline void WSARecvMessage::clear_buffers() {
  buffers_.Clear();
}
inline ::google::protobuf::int64 WSARecvMessage::buffers(int index) const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSARecvMessage.buffers)
  return buffers_.Get(index);
}
inline void WSARecvMessage::set_buffers(int index, ::google::protobuf::int64 value) {
  buffers_.Set(index, value);
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSARecvMessage.buffers)
}
inline void WSARecvMessage::add_buffers(::google::protobuf::int64 value) {
  buffers_.Add(value);
  // @@protoc_insertion_point(field_add:Hekate.Protobuf.Proto.Server.WSARecvMessage.buffers)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
WSARecvMessage::buffers() const {
  // @@protoc_insertion_point(field_list:Hekate.Protobuf.Proto.Server.WSARecvMessage.buffers)
  return buffers_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
WSARecvMessage::mutable_buffers() {
  // @@protoc_insertion_point(field_mutable_list:Hekate.Protobuf.Proto.Server.WSARecvMessage.buffers)
  return &buffers_;
}

// repeated int32 buffer_size = 3;
inline int WSARecvMessage::buffer_size_size() const {
  return buffer_size_.size();
}
inline void WSARecvMessage::clear_buffer_size() {
  buffer_size_.Clear();
}
inline ::google::protobuf::int32 WSARecvMessage::buffer_size(int index) const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSARecvMessage.buffer_size)
  return buffer_size_.Get(index);
}
inline void WSARecvMessage::set_buffer_size(int index, ::google::protobuf::int32 value) {
  buffer_size_.Set(index, value);
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSARecvMessage.buffer_size)
}
inline void WSARecvMessage::add_buffer_size(::google::protobuf::int32 value) {
  buffer_size_.Add(value);
  // @@protoc_insertion_point(field_add:Hekate.Protobuf.Proto.Server.WSARecvMessage.buffer_size)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
WSARecvMessage::buffer_size() const {
  // @@protoc_insertion_point(field_list:Hekate.Protobuf.Proto.Server.WSARecvMessage.buffer_size)
  return buffer_size_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
WSARecvMessage::mutable_buffer_size() {
  // @@protoc_insertion_point(field_mutable_list:Hekate.Protobuf.Proto.Server.WSARecvMessage.buffer_size)
  return &buffer_size_;
}

// required int32 count = 4;
inline bool WSARecvMessage::has_count() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void WSARecvMessage::set_has_count() {
  _has_bits_[0] |= 0x00000008u;
}
inline void WSARecvMessage::clear_has_count() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void WSARecvMessage::clear_count() {
  count_ = 0;
  clear_has_count();
}
inline ::google::protobuf::int32 WSARecvMessage::count() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSARecvMessage.count)
  return count_;
}
inline void WSARecvMessage::set_count(::google::protobuf::int32 value) {
  set_has_count();
  count_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSARecvMessage.count)
}

// required int64 bytes_received_address = 5;
inline bool WSARecvMessage::has_bytes_received_address() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void WSARecvMessage::set_has_bytes_received_address() {
  _has_bits_[0] |= 0x00000010u;
}
inline void WSARecvMessage::clear_has_bytes_received_address() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void WSARecvMessage::clear_bytes_received_address() {
  bytes_received_address_ = GOOGLE_LONGLONG(0);
  clear_has_bytes_received_address();
}
inline ::google::protobuf::int64 WSARecvMessage::bytes_received_address() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSARecvMessage.bytes_received_address)
  return bytes_received_address_;
}
inline void WSARecvMessage::set_bytes_received_address(::google::protobuf::int64 value) {
  set_has_bytes_received_address();
  bytes_received_address_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSARecvMessage.bytes_received_address)
}

// required int64 flags_address = 6;
inline bool WSARecvMessage::has_flags_address() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void WSARecvMessage::set_has_flags_address() {
  _has_bits_[0] |= 0x00000020u;
}
inline void WSARecvMessage::clear_has_flags_address() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void WSARecvMessage::clear_flags_address() {
  flags_address_ = GOOGLE_LONGLONG(0);
  clear_has_flags_address();
}
inline ::google::protobuf::int64 WSARecvMessage::flags_address() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSARecvMessage.flags_address)
  return flags_address_;
}
inline void WSARecvMessage::set_flags_address(::google::protobuf::int64 value) {
  set_has_flags_address();
  flags_address_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSARecvMessage.flags_address)
}

// required int64 overlapped_address = 7;
inline bool WSARecvMessage::has_overlapped_address() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void WSARecvMessage::set_has_overlapped_address() {
  _has_bits_[0] |= 0x00000040u;
}
inline void WSARecvMessage::clear_has_overlapped_address() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void WSARecvMessage::clear_overlapped_address() {
  overlapped_address_ = GOOGLE_LONGLONG(0);
  clear_has_overlapped_address();
}
inline ::google::protobuf::int64 WSARecvMessage::overlapped_address() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSARecvMessage.overlapped_address)
  return overlapped_address_;
}
inline void WSARecvMessage::set_overlapped_address(::google::protobuf::int64 value) {
  set_has_overlapped_address();
  overlapped_address_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSARecvMessage.overlapped_address)
}

// required int64 overlapped_routine_address = 8;
inline bool WSARecvMessage::has_overlapped_routine_address() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void WSARecvMessage::set_has_overlapped_routine_address() {
  _has_bits_[0] |= 0x00000080u;
}
inline void WSARecvMessage::clear_has_overlapped_routine_address() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void WSARecvMessage::clear_overlapped_routine_address() {
  overlapped_routine_address_ = GOOGLE_LONGLONG(0);
  clear_has_overlapped_routine_address();
}
inline ::google::protobuf::int64 WSARecvMessage::overlapped_routine_address() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSARecvMessage.overlapped_routine_address)
  return overlapped_routine_address_;
}
inline void WSARecvMessage::set_overlapped_routine_address(::google::protobuf::int64 value) {
  set_has_overlapped_routine_address();
  overlapped_routine_address_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSARecvMessage.overlapped_routine_address)
}

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

// WSARecvFromMessage

// required int64 socket = 1;
inline bool WSARecvFromMessage::has_socket() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void WSARecvFromMessage::set_has_socket() {
  _has_bits_[0] |= 0x00000001u;
}
inline void WSARecvFromMessage::clear_has_socket() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void WSARecvFromMessage::clear_socket() {
  socket_ = GOOGLE_LONGLONG(0);
  clear_has_socket();
}
inline ::google::protobuf::int64 WSARecvFromMessage::socket() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSARecvFromMessage.socket)
  return socket_;
}
inline void WSARecvFromMessage::set_socket(::google::protobuf::int64 value) {
  set_has_socket();
  socket_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSARecvFromMessage.socket)
}

// repeated int64 buffers = 2;
inline int WSARecvFromMessage::buffers_size() const {
  return buffers_.size();
}
inline void WSARecvFromMessage::clear_buffers() {
  buffers_.Clear();
}
inline ::google::protobuf::int64 WSARecvFromMessage::buffers(int index) const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSARecvFromMessage.buffers)
  return buffers_.Get(index);
}
inline void WSARecvFromMessage::set_buffers(int index, ::google::protobuf::int64 value) {
  buffers_.Set(index, value);
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSARecvFromMessage.buffers)
}
inline void WSARecvFromMessage::add_buffers(::google::protobuf::int64 value) {
  buffers_.Add(value);
  // @@protoc_insertion_point(field_add:Hekate.Protobuf.Proto.Server.WSARecvFromMessage.buffers)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int64 >&
WSARecvFromMessage::buffers() const {
  // @@protoc_insertion_point(field_list:Hekate.Protobuf.Proto.Server.WSARecvFromMessage.buffers)
  return buffers_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int64 >*
WSARecvFromMessage::mutable_buffers() {
  // @@protoc_insertion_point(field_mutable_list:Hekate.Protobuf.Proto.Server.WSARecvFromMessage.buffers)
  return &buffers_;
}

// repeated int32 buffer_size = 3;
inline int WSARecvFromMessage::buffer_size_size() const {
  return buffer_size_.size();
}
inline void WSARecvFromMessage::clear_buffer_size() {
  buffer_size_.Clear();
}
inline ::google::protobuf::int32 WSARecvFromMessage::buffer_size(int index) const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSARecvFromMessage.buffer_size)
  return buffer_size_.Get(index);
}
inline void WSARecvFromMessage::set_buffer_size(int index, ::google::protobuf::int32 value) {
  buffer_size_.Set(index, value);
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSARecvFromMessage.buffer_size)
}
inline void WSARecvFromMessage::add_buffer_size(::google::protobuf::int32 value) {
  buffer_size_.Add(value);
  // @@protoc_insertion_point(field_add:Hekate.Protobuf.Proto.Server.WSARecvFromMessage.buffer_size)
}
inline const ::google::protobuf::RepeatedField< ::google::protobuf::int32 >&
WSARecvFromMessage::buffer_size() const {
  // @@protoc_insertion_point(field_list:Hekate.Protobuf.Proto.Server.WSARecvFromMessage.buffer_size)
  return buffer_size_;
}
inline ::google::protobuf::RepeatedField< ::google::protobuf::int32 >*
WSARecvFromMessage::mutable_buffer_size() {
  // @@protoc_insertion_point(field_mutable_list:Hekate.Protobuf.Proto.Server.WSARecvFromMessage.buffer_size)
  return &buffer_size_;
}

// required int32 count = 4;
inline bool WSARecvFromMessage::has_count() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void WSARecvFromMessage::set_has_count() {
  _has_bits_[0] |= 0x00000008u;
}
inline void WSARecvFromMessage::clear_has_count() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void WSARecvFromMessage::clear_count() {
  count_ = 0;
  clear_has_count();
}
inline ::google::protobuf::int32 WSARecvFromMessage::count() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSARecvFromMessage.count)
  return count_;
}
inline void WSARecvFromMessage::set_count(::google::protobuf::int32 value) {
  set_has_count();
  count_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSARecvFromMessage.count)
}

// required int64 bytes_received_address = 5;
inline bool WSARecvFromMessage::has_bytes_received_address() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void WSARecvFromMessage::set_has_bytes_received_address() {
  _has_bits_[0] |= 0x00000010u;
}
inline void WSARecvFromMessage::clear_has_bytes_received_address() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void WSARecvFromMessage::clear_bytes_received_address() {
  bytes_received_address_ = GOOGLE_LONGLONG(0);
  clear_has_bytes_received_address();
}
inline ::google::protobuf::int64 WSARecvFromMessage::bytes_received_address() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSARecvFromMessage.bytes_received_address)
  return bytes_received_address_;
}
inline void WSARecvFromMessage::set_bytes_received_address(::google::protobuf::int64 value) {
  set_has_bytes_received_address();
  bytes_received_address_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSARecvFromMessage.bytes_received_address)
}

// required int64 flags_address = 6;
inline bool WSARecvFromMessage::has_flags_address() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void WSARecvFromMessage::set_has_flags_address() {
  _has_bits_[0] |= 0x00000020u;
}
inline void WSARecvFromMessage::clear_has_flags_address() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void WSARecvFromMessage::clear_flags_address() {
  flags_address_ = GOOGLE_LONGLONG(0);
  clear_has_flags_address();
}
inline ::google::protobuf::int64 WSARecvFromMessage::flags_address() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSARecvFromMessage.flags_address)
  return flags_address_;
}
inline void WSARecvFromMessage::set_flags_address(::google::protobuf::int64 value) {
  set_has_flags_address();
  flags_address_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSARecvFromMessage.flags_address)
}

// required int64 from_address = 7;
inline bool WSARecvFromMessage::has_from_address() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void WSARecvFromMessage::set_has_from_address() {
  _has_bits_[0] |= 0x00000040u;
}
inline void WSARecvFromMessage::clear_has_from_address() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void WSARecvFromMessage::clear_from_address() {
  from_address_ = GOOGLE_LONGLONG(0);
  clear_has_from_address();
}
inline ::google::protobuf::int64 WSARecvFromMessage::from_address() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSARecvFromMessage.from_address)
  return from_address_;
}
inline void WSARecvFromMessage::set_from_address(::google::protobuf::int64 value) {
  set_has_from_address();
  from_address_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSARecvFromMessage.from_address)
}

// required int64 from_length_address = 8;
inline bool WSARecvFromMessage::has_from_length_address() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void WSARecvFromMessage::set_has_from_length_address() {
  _has_bits_[0] |= 0x00000080u;
}
inline void WSARecvFromMessage::clear_has_from_length_address() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void WSARecvFromMessage::clear_from_length_address() {
  from_length_address_ = GOOGLE_LONGLONG(0);
  clear_has_from_length_address();
}
inline ::google::protobuf::int64 WSARecvFromMessage::from_length_address() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSARecvFromMessage.from_length_address)
  return from_length_address_;
}
inline void WSARecvFromMessage::set_from_length_address(::google::protobuf::int64 value) {
  set_has_from_length_address();
  from_length_address_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSARecvFromMessage.from_length_address)
}

// required int64 overlapped_address = 9;
inline bool WSARecvFromMessage::has_overlapped_address() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void WSARecvFromMessage::set_has_overlapped_address() {
  _has_bits_[0] |= 0x00000100u;
}
inline void WSARecvFromMessage::clear_has_overlapped_address() {
  _has_bits_[0] &= ~0x00000100u;
}
inline void WSARecvFromMessage::clear_overlapped_address() {
  overlapped_address_ = GOOGLE_LONGLONG(0);
  clear_has_overlapped_address();
}
inline ::google::protobuf::int64 WSARecvFromMessage::overlapped_address() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSARecvFromMessage.overlapped_address)
  return overlapped_address_;
}
inline void WSARecvFromMessage::set_overlapped_address(::google::protobuf::int64 value) {
  set_has_overlapped_address();
  overlapped_address_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSARecvFromMessage.overlapped_address)
}

// required int64 overlapped_routine_address = 10;
inline bool WSARecvFromMessage::has_overlapped_routine_address() const {
  return (_has_bits_[0] & 0x00000200u) != 0;
}
inline void WSARecvFromMessage::set_has_overlapped_routine_address() {
  _has_bits_[0] |= 0x00000200u;
}
inline void WSARecvFromMessage::clear_has_overlapped_routine_address() {
  _has_bits_[0] &= ~0x00000200u;
}
inline void WSARecvFromMessage::clear_overlapped_routine_address() {
  overlapped_routine_address_ = GOOGLE_LONGLONG(0);
  clear_has_overlapped_routine_address();
}
inline ::google::protobuf::int64 WSARecvFromMessage::overlapped_routine_address() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.WSARecvFromMessage.overlapped_routine_address)
  return overlapped_routine_address_;
}
inline void WSARecvFromMessage::set_overlapped_routine_address(::google::protobuf::int64 value) {
  set_has_overlapped_routine_address();
  overlapped_routine_address_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.WSARecvFromMessage.overlapped_routine_address)
}

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

// HekateToClientMessage

// optional .Hekate.Protobuf.Proto.Server.SendMessage_ send = 1;
inline bool HekateToClientMessage::has_send() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void HekateToClientMessage::set_has_send() {
  _has_bits_[0] |= 0x00000001u;
}
inline void HekateToClientMessage::clear_has_send() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void HekateToClientMessage::clear_send() {
  if (send_ != NULL) send_->::Hekate::Protobuf::Proto::Server::SendMessage_::Clear();
  clear_has_send();
}
inline const ::Hekate::Protobuf::Proto::Server::SendMessage_& HekateToClientMessage::send() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.HekateToClientMessage.send)
  return send_ != NULL ? *send_ : *default_instance_->send_;
}
inline ::Hekate::Protobuf::Proto::Server::SendMessage_* HekateToClientMessage::mutable_send() {
  set_has_send();
  if (send_ == NULL) {
    send_ = new ::Hekate::Protobuf::Proto::Server::SendMessage_;
  }
  // @@protoc_insertion_point(field_mutable:Hekate.Protobuf.Proto.Server.HekateToClientMessage.send)
  return send_;
}
inline ::Hekate::Protobuf::Proto::Server::SendMessage_* HekateToClientMessage::release_send() {
  clear_has_send();
  ::Hekate::Protobuf::Proto::Server::SendMessage_* temp = send_;
  send_ = NULL;
  return temp;
}
inline void HekateToClientMessage::set_allocated_send(::Hekate::Protobuf::Proto::Server::SendMessage_* send) {
  delete send_;
  send_ = send;
  if (send) {
    set_has_send();
  } else {
    clear_has_send();
  }
  // @@protoc_insertion_point(field_set_allocated:Hekate.Protobuf.Proto.Server.HekateToClientMessage.send)
}

// optional .Hekate.Protobuf.Proto.Server.SendToMessage sendto = 2;
inline bool HekateToClientMessage::has_sendto() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void HekateToClientMessage::set_has_sendto() {
  _has_bits_[0] |= 0x00000002u;
}
inline void HekateToClientMessage::clear_has_sendto() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void HekateToClientMessage::clear_sendto() {
  if (sendto_ != NULL) sendto_->::Hekate::Protobuf::Proto::Server::SendToMessage::Clear();
  clear_has_sendto();
}
inline const ::Hekate::Protobuf::Proto::Server::SendToMessage& HekateToClientMessage::sendto() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.HekateToClientMessage.sendto)
  return sendto_ != NULL ? *sendto_ : *default_instance_->sendto_;
}
inline ::Hekate::Protobuf::Proto::Server::SendToMessage* HekateToClientMessage::mutable_sendto() {
  set_has_sendto();
  if (sendto_ == NULL) {
    sendto_ = new ::Hekate::Protobuf::Proto::Server::SendToMessage;
  }
  // @@protoc_insertion_point(field_mutable:Hekate.Protobuf.Proto.Server.HekateToClientMessage.sendto)
  return sendto_;
}
inline ::Hekate::Protobuf::Proto::Server::SendToMessage* HekateToClientMessage::release_sendto() {
  clear_has_sendto();
  ::Hekate::Protobuf::Proto::Server::SendToMessage* temp = sendto_;
  sendto_ = NULL;
  return temp;
}
inline void HekateToClientMessage::set_allocated_sendto(::Hekate::Protobuf::Proto::Server::SendToMessage* sendto) {
  delete sendto_;
  sendto_ = sendto;
  if (sendto) {
    set_has_sendto();
  } else {
    clear_has_sendto();
  }
  // @@protoc_insertion_point(field_set_allocated:Hekate.Protobuf.Proto.Server.HekateToClientMessage.sendto)
}

// optional .Hekate.Protobuf.Proto.Server.WSASendMessage wsasend = 3;
inline bool HekateToClientMessage::has_wsasend() const {
  return (_has_bits_[0] & 0x00000004u) != 0;
}
inline void HekateToClientMessage::set_has_wsasend() {
  _has_bits_[0] |= 0x00000004u;
}
inline void HekateToClientMessage::clear_has_wsasend() {
  _has_bits_[0] &= ~0x00000004u;
}
inline void HekateToClientMessage::clear_wsasend() {
  if (wsasend_ != NULL) wsasend_->::Hekate::Protobuf::Proto::Server::WSASendMessage::Clear();
  clear_has_wsasend();
}
inline const ::Hekate::Protobuf::Proto::Server::WSASendMessage& HekateToClientMessage::wsasend() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.HekateToClientMessage.wsasend)
  return wsasend_ != NULL ? *wsasend_ : *default_instance_->wsasend_;
}
inline ::Hekate::Protobuf::Proto::Server::WSASendMessage* HekateToClientMessage::mutable_wsasend() {
  set_has_wsasend();
  if (wsasend_ == NULL) {
    wsasend_ = new ::Hekate::Protobuf::Proto::Server::WSASendMessage;
  }
  // @@protoc_insertion_point(field_mutable:Hekate.Protobuf.Proto.Server.HekateToClientMessage.wsasend)
  return wsasend_;
}
inline ::Hekate::Protobuf::Proto::Server::WSASendMessage* HekateToClientMessage::release_wsasend() {
  clear_has_wsasend();
  ::Hekate::Protobuf::Proto::Server::WSASendMessage* temp = wsasend_;
  wsasend_ = NULL;
  return temp;
}
inline void HekateToClientMessage::set_allocated_wsasend(::Hekate::Protobuf::Proto::Server::WSASendMessage* wsasend) {
  delete wsasend_;
  wsasend_ = wsasend;
  if (wsasend) {
    set_has_wsasend();
  } else {
    clear_has_wsasend();
  }
  // @@protoc_insertion_point(field_set_allocated:Hekate.Protobuf.Proto.Server.HekateToClientMessage.wsasend)
}

// optional .Hekate.Protobuf.Proto.Server.WSASendToMessage wsasendto = 4;
inline bool HekateToClientMessage::has_wsasendto() const {
  return (_has_bits_[0] & 0x00000008u) != 0;
}
inline void HekateToClientMessage::set_has_wsasendto() {
  _has_bits_[0] |= 0x00000008u;
}
inline void HekateToClientMessage::clear_has_wsasendto() {
  _has_bits_[0] &= ~0x00000008u;
}
inline void HekateToClientMessage::clear_wsasendto() {
  if (wsasendto_ != NULL) wsasendto_->::Hekate::Protobuf::Proto::Server::WSASendToMessage::Clear();
  clear_has_wsasendto();
}
inline const ::Hekate::Protobuf::Proto::Server::WSASendToMessage& HekateToClientMessage::wsasendto() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.HekateToClientMessage.wsasendto)
  return wsasendto_ != NULL ? *wsasendto_ : *default_instance_->wsasendto_;
}
inline ::Hekate::Protobuf::Proto::Server::WSASendToMessage* HekateToClientMessage::mutable_wsasendto() {
  set_has_wsasendto();
  if (wsasendto_ == NULL) {
    wsasendto_ = new ::Hekate::Protobuf::Proto::Server::WSASendToMessage;
  }
  // @@protoc_insertion_point(field_mutable:Hekate.Protobuf.Proto.Server.HekateToClientMessage.wsasendto)
  return wsasendto_;
}
inline ::Hekate::Protobuf::Proto::Server::WSASendToMessage* HekateToClientMessage::release_wsasendto() {
  clear_has_wsasendto();
  ::Hekate::Protobuf::Proto::Server::WSASendToMessage* temp = wsasendto_;
  wsasendto_ = NULL;
  return temp;
}
inline void HekateToClientMessage::set_allocated_wsasendto(::Hekate::Protobuf::Proto::Server::WSASendToMessage* wsasendto) {
  delete wsasendto_;
  wsasendto_ = wsasendto;
  if (wsasendto) {
    set_has_wsasendto();
  } else {
    clear_has_wsasendto();
  }
  // @@protoc_insertion_point(field_set_allocated:Hekate.Protobuf.Proto.Server.HekateToClientMessage.wsasendto)
}

// optional .Hekate.Protobuf.Proto.Server.RecvMessage recv = 5;
inline bool HekateToClientMessage::has_recv() const {
  return (_has_bits_[0] & 0x00000010u) != 0;
}
inline void HekateToClientMessage::set_has_recv() {
  _has_bits_[0] |= 0x00000010u;
}
inline void HekateToClientMessage::clear_has_recv() {
  _has_bits_[0] &= ~0x00000010u;
}
inline void HekateToClientMessage::clear_recv() {
  if (recv_ != NULL) recv_->::Hekate::Protobuf::Proto::Server::RecvMessage::Clear();
  clear_has_recv();
}
inline const ::Hekate::Protobuf::Proto::Server::RecvMessage& HekateToClientMessage::recv() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.HekateToClientMessage.recv)
  return recv_ != NULL ? *recv_ : *default_instance_->recv_;
}
inline ::Hekate::Protobuf::Proto::Server::RecvMessage* HekateToClientMessage::mutable_recv() {
  set_has_recv();
  if (recv_ == NULL) {
    recv_ = new ::Hekate::Protobuf::Proto::Server::RecvMessage;
  }
  // @@protoc_insertion_point(field_mutable:Hekate.Protobuf.Proto.Server.HekateToClientMessage.recv)
  return recv_;
}
inline ::Hekate::Protobuf::Proto::Server::RecvMessage* HekateToClientMessage::release_recv() {
  clear_has_recv();
  ::Hekate::Protobuf::Proto::Server::RecvMessage* temp = recv_;
  recv_ = NULL;
  return temp;
}
inline void HekateToClientMessage::set_allocated_recv(::Hekate::Protobuf::Proto::Server::RecvMessage* recv) {
  delete recv_;
  recv_ = recv;
  if (recv) {
    set_has_recv();
  } else {
    clear_has_recv();
  }
  // @@protoc_insertion_point(field_set_allocated:Hekate.Protobuf.Proto.Server.HekateToClientMessage.recv)
}

// optional .Hekate.Protobuf.Proto.Server.RecvFromMessage recvfrom = 6;
inline bool HekateToClientMessage::has_recvfrom() const {
  return (_has_bits_[0] & 0x00000020u) != 0;
}
inline void HekateToClientMessage::set_has_recvfrom() {
  _has_bits_[0] |= 0x00000020u;
}
inline void HekateToClientMessage::clear_has_recvfrom() {
  _has_bits_[0] &= ~0x00000020u;
}
inline void HekateToClientMessage::clear_recvfrom() {
  if (recvfrom_ != NULL) recvfrom_->::Hekate::Protobuf::Proto::Server::RecvFromMessage::Clear();
  clear_has_recvfrom();
}
inline const ::Hekate::Protobuf::Proto::Server::RecvFromMessage& HekateToClientMessage::recvfrom() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.HekateToClientMessage.recvfrom)
  return recvfrom_ != NULL ? *recvfrom_ : *default_instance_->recvfrom_;
}
inline ::Hekate::Protobuf::Proto::Server::RecvFromMessage* HekateToClientMessage::mutable_recvfrom() {
  set_has_recvfrom();
  if (recvfrom_ == NULL) {
    recvfrom_ = new ::Hekate::Protobuf::Proto::Server::RecvFromMessage;
  }
  // @@protoc_insertion_point(field_mutable:Hekate.Protobuf.Proto.Server.HekateToClientMessage.recvfrom)
  return recvfrom_;
}
inline ::Hekate::Protobuf::Proto::Server::RecvFromMessage* HekateToClientMessage::release_recvfrom() {
  clear_has_recvfrom();
  ::Hekate::Protobuf::Proto::Server::RecvFromMessage* temp = recvfrom_;
  recvfrom_ = NULL;
  return temp;
}
inline void HekateToClientMessage::set_allocated_recvfrom(::Hekate::Protobuf::Proto::Server::RecvFromMessage* recvfrom) {
  delete recvfrom_;
  recvfrom_ = recvfrom;
  if (recvfrom) {
    set_has_recvfrom();
  } else {
    clear_has_recvfrom();
  }
  // @@protoc_insertion_point(field_set_allocated:Hekate.Protobuf.Proto.Server.HekateToClientMessage.recvfrom)
}

// optional .Hekate.Protobuf.Proto.Server.WSARecvMessage wsarecv = 7;
inline bool HekateToClientMessage::has_wsarecv() const {
  return (_has_bits_[0] & 0x00000040u) != 0;
}
inline void HekateToClientMessage::set_has_wsarecv() {
  _has_bits_[0] |= 0x00000040u;
}
inline void HekateToClientMessage::clear_has_wsarecv() {
  _has_bits_[0] &= ~0x00000040u;
}
inline void HekateToClientMessage::clear_wsarecv() {
  if (wsarecv_ != NULL) wsarecv_->::Hekate::Protobuf::Proto::Server::WSARecvMessage::Clear();
  clear_has_wsarecv();
}
inline const ::Hekate::Protobuf::Proto::Server::WSARecvMessage& HekateToClientMessage::wsarecv() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.HekateToClientMessage.wsarecv)
  return wsarecv_ != NULL ? *wsarecv_ : *default_instance_->wsarecv_;
}
inline ::Hekate::Protobuf::Proto::Server::WSARecvMessage* HekateToClientMessage::mutable_wsarecv() {
  set_has_wsarecv();
  if (wsarecv_ == NULL) {
    wsarecv_ = new ::Hekate::Protobuf::Proto::Server::WSARecvMessage;
  }
  // @@protoc_insertion_point(field_mutable:Hekate.Protobuf.Proto.Server.HekateToClientMessage.wsarecv)
  return wsarecv_;
}
inline ::Hekate::Protobuf::Proto::Server::WSARecvMessage* HekateToClientMessage::release_wsarecv() {
  clear_has_wsarecv();
  ::Hekate::Protobuf::Proto::Server::WSARecvMessage* temp = wsarecv_;
  wsarecv_ = NULL;
  return temp;
}
inline void HekateToClientMessage::set_allocated_wsarecv(::Hekate::Protobuf::Proto::Server::WSARecvMessage* wsarecv) {
  delete wsarecv_;
  wsarecv_ = wsarecv;
  if (wsarecv) {
    set_has_wsarecv();
  } else {
    clear_has_wsarecv();
  }
  // @@protoc_insertion_point(field_set_allocated:Hekate.Protobuf.Proto.Server.HekateToClientMessage.wsarecv)
}

// optional .Hekate.Protobuf.Proto.Server.WSARecvFromMessage wsarecvfrom = 8;
inline bool HekateToClientMessage::has_wsarecvfrom() const {
  return (_has_bits_[0] & 0x00000080u) != 0;
}
inline void HekateToClientMessage::set_has_wsarecvfrom() {
  _has_bits_[0] |= 0x00000080u;
}
inline void HekateToClientMessage::clear_has_wsarecvfrom() {
  _has_bits_[0] &= ~0x00000080u;
}
inline void HekateToClientMessage::clear_wsarecvfrom() {
  if (wsarecvfrom_ != NULL) wsarecvfrom_->::Hekate::Protobuf::Proto::Server::WSARecvFromMessage::Clear();
  clear_has_wsarecvfrom();
}
inline const ::Hekate::Protobuf::Proto::Server::WSARecvFromMessage& HekateToClientMessage::wsarecvfrom() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.HekateToClientMessage.wsarecvfrom)
  return wsarecvfrom_ != NULL ? *wsarecvfrom_ : *default_instance_->wsarecvfrom_;
}
inline ::Hekate::Protobuf::Proto::Server::WSARecvFromMessage* HekateToClientMessage::mutable_wsarecvfrom() {
  set_has_wsarecvfrom();
  if (wsarecvfrom_ == NULL) {
    wsarecvfrom_ = new ::Hekate::Protobuf::Proto::Server::WSARecvFromMessage;
  }
  // @@protoc_insertion_point(field_mutable:Hekate.Protobuf.Proto.Server.HekateToClientMessage.wsarecvfrom)
  return wsarecvfrom_;
}
inline ::Hekate::Protobuf::Proto::Server::WSARecvFromMessage* HekateToClientMessage::release_wsarecvfrom() {
  clear_has_wsarecvfrom();
  ::Hekate::Protobuf::Proto::Server::WSARecvFromMessage* temp = wsarecvfrom_;
  wsarecvfrom_ = NULL;
  return temp;
}
inline void HekateToClientMessage::set_allocated_wsarecvfrom(::Hekate::Protobuf::Proto::Server::WSARecvFromMessage* wsarecvfrom) {
  delete wsarecvfrom_;
  wsarecvfrom_ = wsarecvfrom;
  if (wsarecvfrom) {
    set_has_wsarecvfrom();
  } else {
    clear_has_wsarecvfrom();
  }
  // @@protoc_insertion_point(field_set_allocated:Hekate.Protobuf.Proto.Server.HekateToClientMessage.wsarecvfrom)
}

// optional .Hekate.Protobuf.Proto.Server.FilterHitMessage filter_message = 9;
inline bool HekateToClientMessage::has_filter_message() const {
  return (_has_bits_[0] & 0x00000100u) != 0;
}
inline void HekateToClientMessage::set_has_filter_message() {
  _has_bits_[0] |= 0x00000100u;
}
inline void HekateToClientMessage::clear_has_filter_message() {
  _has_bits_[0] &= ~0x00000100u;
}
inline void HekateToClientMessage::clear_filter_message() {
  if (filter_message_ != NULL) filter_message_->::Hekate::Protobuf::Proto::Server::FilterHitMessage::Clear();
  clear_has_filter_message();
}
inline const ::Hekate::Protobuf::Proto::Server::FilterHitMessage& HekateToClientMessage::filter_message() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.HekateToClientMessage.filter_message)
  return filter_message_ != NULL ? *filter_message_ : *default_instance_->filter_message_;
}
inline ::Hekate::Protobuf::Proto::Server::FilterHitMessage* HekateToClientMessage::mutable_filter_message() {
  set_has_filter_message();
  if (filter_message_ == NULL) {
    filter_message_ = new ::Hekate::Protobuf::Proto::Server::FilterHitMessage;
  }
  // @@protoc_insertion_point(field_mutable:Hekate.Protobuf.Proto.Server.HekateToClientMessage.filter_message)
  return filter_message_;
}
inline ::Hekate::Protobuf::Proto::Server::FilterHitMessage* HekateToClientMessage::release_filter_message() {
  clear_has_filter_message();
  ::Hekate::Protobuf::Proto::Server::FilterHitMessage* temp = filter_message_;
  filter_message_ = NULL;
  return temp;
}
inline void HekateToClientMessage::set_allocated_filter_message(::Hekate::Protobuf::Proto::Server::FilterHitMessage* filter_message) {
  delete filter_message_;
  filter_message_ = filter_message;
  if (filter_message) {
    set_has_filter_message();
  } else {
    clear_has_filter_message();
  }
  // @@protoc_insertion_point(field_set_allocated:Hekate.Protobuf.Proto.Server.HekateToClientMessage.filter_message)
}

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

// AcknowledgeMessage

// optional int32 debug_response_id = 1;
inline bool AcknowledgeMessage::has_debug_response_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void AcknowledgeMessage::set_has_debug_response_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void AcknowledgeMessage::clear_has_debug_response_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void AcknowledgeMessage::clear_debug_response_id() {
  debug_response_id_ = 0;
  clear_has_debug_response_id();
}
inline ::google::protobuf::int32 AcknowledgeMessage::debug_response_id() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.AcknowledgeMessage.debug_response_id)
  return debug_response_id_;
}
inline void AcknowledgeMessage::set_debug_response_id(::google::protobuf::int32 value) {
  set_has_debug_response_id();
  debug_response_id_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.AcknowledgeMessage.debug_response_id)
}

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

// FilterHitMessage

// required int32 filter_id = 1;
inline bool FilterHitMessage::has_filter_id() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void FilterHitMessage::set_has_filter_id() {
  _has_bits_[0] |= 0x00000001u;
}
inline void FilterHitMessage::clear_has_filter_id() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void FilterHitMessage::clear_filter_id() {
  filter_id_ = 0;
  clear_has_filter_id();
}
inline ::google::protobuf::int32 FilterHitMessage::filter_id() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.FilterHitMessage.filter_id)
  return filter_id_;
}
inline void FilterHitMessage::set_filter_id(::google::protobuf::int32 value) {
  set_has_filter_id();
  filter_id_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.FilterHitMessage.filter_id)
}

// required bool broken = 2;
inline bool FilterHitMessage::has_broken() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void FilterHitMessage::set_has_broken() {
  _has_bits_[0] |= 0x00000002u;
}
inline void FilterHitMessage::clear_has_broken() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void FilterHitMessage::clear_broken() {
  broken_ = false;
  clear_has_broken();
}
inline bool FilterHitMessage::broken() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.FilterHitMessage.broken)
  return broken_;
}
inline void FilterHitMessage::set_broken(bool value) {
  set_has_broken();
  broken_ = value;
  // @@protoc_insertion_point(field_set:Hekate.Protobuf.Proto.Server.FilterHitMessage.broken)
}

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

// HekateMessage

// required .Hekate.Protobuf.Proto.Server.HekateToClientMessage hook_info = 1;
inline bool HekateMessage::has_hook_info() const {
  return (_has_bits_[0] & 0x00000001u) != 0;
}
inline void HekateMessage::set_has_hook_info() {
  _has_bits_[0] |= 0x00000001u;
}
inline void HekateMessage::clear_has_hook_info() {
  _has_bits_[0] &= ~0x00000001u;
}
inline void HekateMessage::clear_hook_info() {
  if (hook_info_ != NULL) hook_info_->::Hekate::Protobuf::Proto::Server::HekateToClientMessage::Clear();
  clear_has_hook_info();
}
inline const ::Hekate::Protobuf::Proto::Server::HekateToClientMessage& HekateMessage::hook_info() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.HekateMessage.hook_info)
  return hook_info_ != NULL ? *hook_info_ : *default_instance_->hook_info_;
}
inline ::Hekate::Protobuf::Proto::Server::HekateToClientMessage* HekateMessage::mutable_hook_info() {
  set_has_hook_info();
  if (hook_info_ == NULL) {
    hook_info_ = new ::Hekate::Protobuf::Proto::Server::HekateToClientMessage;
  }
  // @@protoc_insertion_point(field_mutable:Hekate.Protobuf.Proto.Server.HekateMessage.hook_info)
  return hook_info_;
}
inline ::Hekate::Protobuf::Proto::Server::HekateToClientMessage* HekateMessage::release_hook_info() {
  clear_has_hook_info();
  ::Hekate::Protobuf::Proto::Server::HekateToClientMessage* temp = hook_info_;
  hook_info_ = NULL;
  return temp;
}
inline void HekateMessage::set_allocated_hook_info(::Hekate::Protobuf::Proto::Server::HekateToClientMessage* hook_info) {
  delete hook_info_;
  hook_info_ = hook_info;
  if (hook_info) {
    set_has_hook_info();
  } else {
    clear_has_hook_info();
  }
  // @@protoc_insertion_point(field_set_allocated:Hekate.Protobuf.Proto.Server.HekateMessage.hook_info)
}

// optional .Hekate.Protobuf.Proto.Server.AcknowledgeMessage acknowledge = 2;
inline bool HekateMessage::has_acknowledge() const {
  return (_has_bits_[0] & 0x00000002u) != 0;
}
inline void HekateMessage::set_has_acknowledge() {
  _has_bits_[0] |= 0x00000002u;
}
inline void HekateMessage::clear_has_acknowledge() {
  _has_bits_[0] &= ~0x00000002u;
}
inline void HekateMessage::clear_acknowledge() {
  if (acknowledge_ != NULL) acknowledge_->::Hekate::Protobuf::Proto::Server::AcknowledgeMessage::Clear();
  clear_has_acknowledge();
}
inline const ::Hekate::Protobuf::Proto::Server::AcknowledgeMessage& HekateMessage::acknowledge() const {
  // @@protoc_insertion_point(field_get:Hekate.Protobuf.Proto.Server.HekateMessage.acknowledge)
  return acknowledge_ != NULL ? *acknowledge_ : *default_instance_->acknowledge_;
}
inline ::Hekate::Protobuf::Proto::Server::AcknowledgeMessage* HekateMessage::mutable_acknowledge() {
  set_has_acknowledge();
  if (acknowledge_ == NULL) {
    acknowledge_ = new ::Hekate::Protobuf::Proto::Server::AcknowledgeMessage;
  }
  // @@protoc_insertion_point(field_mutable:Hekate.Protobuf.Proto.Server.HekateMessage.acknowledge)
  return acknowledge_;
}
inline ::Hekate::Protobuf::Proto::Server::AcknowledgeMessage* HekateMessage::release_acknowledge() {
  clear_has_acknowledge();
  ::Hekate::Protobuf::Proto::Server::AcknowledgeMessage* temp = acknowledge_;
  acknowledge_ = NULL;
  return temp;
}
inline void HekateMessage::set_allocated_acknowledge(::Hekate::Protobuf::Proto::Server::AcknowledgeMessage* acknowledge) {
  delete acknowledge_;
  acknowledge_ = acknowledge;
  if (acknowledge) {
    set_has_acknowledge();
  } else {
    clear_has_acknowledge();
  }
  // @@protoc_insertion_point(field_set_allocated:Hekate.Protobuf.Proto.Server.HekateMessage.acknowledge)
}

#endif  // !PROTOBUF_INLINE_NOT_IN_HEADERS
// -------------------------------------------------------------------

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

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

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

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

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

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

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

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

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

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


// @@protoc_insertion_point(namespace_scope)

}  // namespace Server
}  // namespace Proto
}  // namespace Protobuf
}  // namespace Hekate

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_HekateServerProto_2eproto__INCLUDED
