text: // Generated by the protocol buffer compiler.  DO NOT EDIT!
  // source: Message.proto
  
  #ifndef PROTOBUF_Message_2eproto__INCLUDED
  #define PROTOBUF_Message_2eproto__INCLUDED
  
  #include <string>
  
  #include <google/protobuf/stubs/common.h>
  
  #if GOOGLE_PROTOBUF_VERSION < 2005000
  #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 2005000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
  #error This file was generated by an older version of protoc which is
  #error incompatible with your Protocol Buffer headers.  Please
  #error regenerate this file with a newer version of protoc.
  #endif
  
  #include <google/protobuf/generated_message_util.h>
  #include <google/protobuf/message.h>
  #include <google/protobuf/repeated_field.h>
  #include <google/protobuf/extension_set.h>
  #include <google/protobuf/generated_enum_reflection.h>
  #include <google/protobuf/unknown_field_set.h>
  // @@protoc_insertion_point(includes)
  
  // Internal implementation detail -- do not call these.
  void  protobuf_AddDesc_Message_2eproto();
  void protobuf_AssignDesc_Message_2eproto();
  void protobuf_ShutdownFile_Message_2eproto();
  
  class Message;
  class Message_UserInfo;
  
  enum Message_IdType {
    Message_IdType_ID = 0,
    Message_IdType_EMAIL = 1,
    Message_IdType_PHONE = 2
  };
  bool Message_IdType_IsValid(int value);
  const Message_IdType Message_IdType_IdType_MIN = Message_IdType_ID;
  const Message_IdType Message_IdType_IdType_MAX = Message_IdType_PHONE;
  const int Message_IdType_IdType_ARRAYSIZE = Message_IdType_IdType_MAX + 1;
  
  const ::google::protobuf::EnumDescriptor* Message_IdType_descriptor();
  inline const ::std::string& Message_IdType_Name(Message_IdType value) {
    return ::google::protobuf::internal::NameOfEnum(
      Message_IdType_descriptor(), value);
  }
  inline bool Message_IdType_Parse(
      const ::std::string& name, Message_IdType* value) {
    return ::google::protobuf::internal::ParseNamedEnum<Message_IdType>(
      Message_IdType_descriptor(), name, value);
  }
  // ===================================================================
  
  class Message_UserInfo : public ::google::protobuf::Message {
   public:
    Message_UserInfo();
    virtual ~Message_UserInfo();
  
    Message_UserInfo(const Message_UserInfo& from);
  
    inline Message_UserInfo& operator=(const Message_UserInfo& from) {
      CopyFrom(from);
      return *this;
    }
  
    inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
      return _unknown_fields_;
    }
  
    inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
      return &_unknown_fields_;
    }
  
    static const ::google::protobuf::Descriptor* descriptor();
    static const Message_UserInfo& default_instance();
  
    void Swap(Message_UserInfo* other);
  
    // implements Message ----------------------------------------------
  
    Message_UserInfo* New() const;
    void CopyFrom(const ::google::protobuf::Message& from);
    void MergeFrom(const ::google::protobuf::Message& from);
    void CopyFrom(const Message_UserInfo& from);
    void MergeFrom(const Message_UserInfo& from);
    void Clear();
    bool IsInitialized() const;
  
    int ByteSize() const;
    bool MergePartialFromCodedStream(
        ::google::protobuf::io::CodedInputStream* input);
    void SerializeWithCachedSizes(
        ::google::protobuf::io::CodedOutputStream* output) const;
    ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
    int GetCachedSize() const { return _cached_size_; }
    private:
    void SharedCtor();
    void SharedDtor();
    void SetCachedSize(int size) const;
    public:
  
    ::google::protobuf::Metadata GetMetadata() const;
  
    // nested types ----------------------------------------------------
  
    // accessors -------------------------------------------------------
  
    // required string id = 1;
    inline bool has_id() const;
    inline void clear_id();
    static const int kIdFieldNumber = 1;
    inline const ::std::string& id() const;
    inline void set_id(const ::std::string& value);
    inline void set_id(const char* value);
    inline void set_id(const char* value, size_t size);
    inline ::std::string* mutable_id();
    inline ::std::string* release_id();
    inline void set_allocated_id(::std::string* id);
  
    // required .Message.IdType type = 2 [default = ID];
    inline bool has_type() const;
    inline void clear_type();
    static const int kTypeFieldNumber = 2;
    inline ::Message_IdType type() const;
    inline void set_type(::Message_IdType value);
  
    // @@protoc_insertion_point(class_scope:Message.UserInfo)
   private:
    inline void set_has_id();
    inline void clear_has_id();
    inline void set_has_type();
    inline void clear_has_type();
  
    ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
    ::std::string* id_;
    int type_;
  
    mutable int _cached_size_;
    ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
  
    friend void  protobuf_AddDesc_Message_2eproto();
    friend void protobuf_AssignDesc_Message_2eproto();
    friend void protobuf_ShutdownFile_Message_2eproto();
  
    void InitAsDefaultInstance();
    static Message_UserInfo* default_instance_;
  };
  // -------------------------------------------------------------------
  
  class Message : public ::google::protobuf::Message {
   public:
    Message();
    virtual ~Message();
  
    Message(const Message& from);
  
    inline Message& operator=(const Message& from) {
      CopyFrom(from);
      return *this;
    }
  
    inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
      return _unknown_fields_;
    }
  
    inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
      return &_unknown_fields_;
    }
  
    static const ::google::protobuf::Descriptor* descriptor();
    static const Message& default_instance();
  
    void Swap(Message* other);
  
    // implements Message ----------------------------------------------
  
    Message* New() const;
    void CopyFrom(const ::google::protobuf::Message& from);
    void MergeFrom(const ::google::protobuf::Message& from);
    void CopyFrom(const Message& from);
    void MergeFrom(const Message& from);
    void Clear();
    bool IsInitialized() const;
  
    int ByteSize() const;
    bool MergePartialFromCodedStream(
        ::google::protobuf::io::CodedInputStream* input);
    void SerializeWithCachedSizes(
        ::google::protobuf::io::CodedOutputStream* output) const;
    ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
    int GetCachedSize() const { return _cached_size_; }
    private:
    void SharedCtor();
    void SharedDtor();
    void SetCachedSize(int size) const;
    public:
  
    ::google::protobuf::Metadata GetMetadata() const;
  
    // nested types ----------------------------------------------------
  
    typedef Message_UserInfo UserInfo;
  
    typedef Message_IdType IdType;
    static const IdType ID = Message_IdType_ID;
    static const IdType EMAIL = Message_IdType_EMAIL;
    static const IdType PHONE = Message_IdType_PHONE;
    static inline bool IdType_IsValid(int value) {
      return Message_IdType_IsValid(value);
    }
    static const IdType IdType_MIN =
      Message_IdType_IdType_MIN;
    static const IdType IdType_MAX =
      Message_IdType_IdType_MAX;
    static const int IdType_ARRAYSIZE =
      Message_IdType_IdType_ARRAYSIZE;
    static inline const ::google::protobuf::EnumDescriptor*
    IdType_descriptor() {
      return Message_IdType_descriptor();
    }
    static inline const ::std::string& IdType_Name(IdType value) {
      return Message_IdType_Name(value);
    }
    static inline bool IdType_Parse(const ::std::string& name,
        IdType* value) {
      return Message_IdType_Parse(name, value);
    }
  
    // accessors -------------------------------------------------------
  
    // required .Message.UserInfo fromUser = 1;
    inline bool has_fromuser() const;
    inline void clear_fromuser();
    static const int kFromUserFieldNumber = 1;
    inline const ::Message_UserInfo& fromuser() const;
    inline ::Message_UserInfo* mutable_fromuser();
    inline ::Message_UserInfo* release_fromuser();
    inline void set_allocated_fromuser(::Message_UserInfo* fromuser);
  
    // required .Message.UserInfo toUser = 2;
    inline bool has_touser() const;
    inline void clear_touser();
    static const int kToUserFieldNumber = 2;
    inline const ::Message_UserInfo& touser() const;
    inline ::Message_UserInfo* mutable_touser();
    inline ::Message_UserInfo* release_touser();
    inline void set_allocated_touser(::Message_UserInfo* touser);
  
    // required string message = 3;
    inline bool has_message() const;
    inline void clear_message();
    static const int kMessageFieldNumber = 3;
    inline const ::std::string& message() const;
    inline void set_message(const ::std::string& value);
    inline void set_message(const char* value);
    inline void set_message(const char* value, size_t size);
    inline ::std::string* mutable_message();
    inline ::std::string* release_message();
    inline void set_allocated_message(::std::string* message);
  
    // @@protoc_insertion_point(class_scope:Message)
   private:
    inline void set_has_fromuser();
    inline void clear_has_fromuser();
    inline void set_has_touser();
    inline void clear_has_touser();
    inline void set_has_message();
    inline void clear_has_message();
  
    ::google::protobuf::UnknownFieldSet _unknown_fields_;
  
    ::Message_UserInfo* fromuser_;
    ::Message_UserInfo* touser_;
    ::std::string* message_;
  
    mutable int _cached_size_;
    ::google::protobuf::uint32 _has_bits_[(3 + 31) / 32];
  
    friend void  protobuf_AddDesc_Message_2eproto();
    friend void protobuf_AssignDesc_Message_2eproto();
    friend void protobuf_ShutdownFile_Message_2eproto();
  
    void InitAsDefaultInstance();
    static Message* default_instance_;
  };
  // ===================================================================
  
  
  // ===================================================================
  
  // Message_UserInfo
  
  // required string id = 1;
  inline bool Message_UserInfo::has_id() const {
    return (_has_bits_[0] & 0x00000001u) != 0;
  }
  inline void Message_UserInfo::set_has_id() {
    _has_bits_[0] |= 0x00000001u;
  }
  inline void Message_UserInfo::clear_has_id() {
    _has_bits_[0] &= ~0x00000001u;
  }
  inline void Message_UserInfo::clear_id() {
    if (id_ != &::google::protobuf::internal::kEmptyString) {
      id_->clear();
    }
    clear_has_id();
  }
  inline const ::std::string& Message_UserInfo::id() const {
    return *id_;
  }
  inline void Message_UserInfo::set_id(const ::std::string& value) {
    set_has_id();
    if (id_ == &::google::protobuf::internal::kEmptyString) {
      id_ = new ::std::string;
    }
    id_->assign(value);
  }
  inline void Message_UserInfo::set_id(const char* value) {
    set_has_id();
    if (id_ == &::google::protobuf::internal::kEmptyString) {
      id_ = new ::std::string;
    }
    id_->assign(value);
  }
  inline void Message_UserInfo::set_id(const char* value, size_t size) {
    set_has_id();
    if (id_ == &::google::protobuf::internal::kEmptyString) {
      id_ = new ::std::string;
    }
    id_->assign(reinterpret_cast<const char*>(value), size);
  }
  inline ::std::string* Message_UserInfo::mutable_id() {
    set_has_id();
    if (id_ == &::google::protobuf::internal::kEmptyString) {
      id_ = new ::std::string;
    }
    return id_;
  }
  inline ::std::string* Message_UserInfo::release_id() {
    clear_has_id();
    if (id_ == &::google::protobuf::internal::kEmptyString) {
      return NULL;
    } else {
      ::std::string* temp = id_;
      id_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
      return temp;
    }
  }
  inline void Message_UserInfo::set_allocated_id(::std::string* id) {
    if (id_ != &::google::protobuf::internal::kEmptyString) {
      delete id_;
    }
    if (id) {
      set_has_id();
      id_ = id;
    } else {
      clear_has_id();
      id_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
    }
  }
  
  // required .Message.IdType type = 2 [default = ID];
  inline bool Message_UserInfo::has_type() const {
    return (_has_bits_[0] & 0x00000002u) != 0;
  }
  inline void Message_UserInfo::set_has_type() {
    _has_bits_[0] |= 0x00000002u;
  }
  inline void Message_UserInfo::clear_has_type() {
    _has_bits_[0] &= ~0x00000002u;
  }
  inline void Message_UserInfo::clear_type() {
    type_ = 0;
    clear_has_type();
  }
  inline ::Message_IdType Message_UserInfo::type() const {
    return static_cast< ::Message_IdType >(type_);
  }
  inline void Message_UserInfo::set_type(::Message_IdType value) {
    assert(::Message_IdType_IsValid(value));
    set_has_type();
    type_ = value;
  }
  
  // -------------------------------------------------------------------
  
  // Message
  
  // required .Message.UserInfo fromUser = 1;
  inline bool Message::has_fromuser() const {
    return (_has_bits_[0] & 0x00000001u) != 0;
  }
  inline void Message::set_has_fromuser() {
    _has_bits_[0] |= 0x00000001u;
  }
  inline void Message::clear_has_fromuser() {
    _has_bits_[0] &= ~0x00000001u;
  }
  inline void Message::clear_fromuser() {
    if (fromuser_ != NULL) fromuser_->::Message_UserInfo::Clear();
    clear_has_fromuser();
  }
  inline const ::Message_UserInfo& Message::fromuser() const {
    return fromuser_ != NULL ? *fromuser_ : *default_instance_->fromuser_;
  }
  inline ::Message_UserInfo* Message::mutable_fromuser() {
    set_has_fromuser();
    if (fromuser_ == NULL) fromuser_ = new ::Message_UserInfo;
    return fromuser_;
  }
  inline ::Message_UserInfo* Message::release_fromuser() {
    clear_has_fromuser();
    ::Message_UserInfo* temp = fromuser_;
    fromuser_ = NULL;
    return temp;
  }
  inline void Message::set_allocated_fromuser(::Message_UserInfo* fromuser) {
    delete fromuser_;
    fromuser_ = fromuser;
    if (fromuser) {
      set_has_fromuser();
    } else {
      clear_has_fromuser();
    }
  }
  
  // required .Message.UserInfo toUser = 2;
  inline bool Message::has_touser() const {
    return (_has_bits_[0] & 0x00000002u) != 0;
  }
  inline void Message::set_has_touser() {
    _has_bits_[0] |= 0x00000002u;
  }
  inline void Message::clear_has_touser() {
    _has_bits_[0] &= ~0x00000002u;
  }
  inline void Message::clear_touser() {
    if (touser_ != NULL) touser_->::Message_UserInfo::Clear();
    clear_has_touser();
  }
  inline const ::Message_UserInfo& Message::touser() const {
    return touser_ != NULL ? *touser_ : *default_instance_->touser_;
  }
  inline ::Message_UserInfo* Message::mutable_touser() {
    set_has_touser();
    if (touser_ == NULL) touser_ = new ::Message_UserInfo;
    return touser_;
  }
  inline ::Message_UserInfo* Message::release_touser() {
    clear_has_touser();
    ::Message_UserInfo* temp = touser_;
    touser_ = NULL;
    return temp;
  }
  inline void Message::set_allocated_touser(::Message_UserInfo* touser) {
    delete touser_;
    touser_ = touser;
    if (touser) {
      set_has_touser();
    } else {
      clear_has_touser();
    }
  }
  
  // required string message = 3;
  inline bool Message::has_message() const {
    return (_has_bits_[0] & 0x00000004u) != 0;
  }
  inline void Message::set_has_message() {
    _has_bits_[0] |= 0x00000004u;
  }
  inline void Message::clear_has_message() {
    _has_bits_[0] &= ~0x00000004u;
  }
  inline void Message::clear_message() {
    if (message_ != &::google::protobuf::internal::kEmptyString) {
      message_->clear();
    }
    clear_has_message();
  }
  inline const ::std::string& Message::message() const {
    return *message_;
  }
  inline void Message::set_message(const ::std::string& value) {
    set_has_message();
    if (message_ == &::google::protobuf::internal::kEmptyString) {
      message_ = new ::std::string;
    }
    message_->assign(value);
  }
  inline void Message::set_message(const char* value) {
    set_has_message();
    if (message_ == &::google::protobuf::internal::kEmptyString) {
      message_ = new ::std::string;
    }
    message_->assign(value);
  }
  inline void Message::set_message(const char* value, size_t size) {
    set_has_message();
    if (message_ == &::google::protobuf::internal::kEmptyString) {
      message_ = new ::std::string;
    }
    message_->assign(reinterpret_cast<const char*>(value), size);
  }
  inline ::std::string* Message::mutable_message() {
    set_has_message();
    if (message_ == &::google::protobuf::internal::kEmptyString) {
      message_ = new ::std::string;
    }
    return message_;
  }
  inline ::std::string* Message::release_message() {
    clear_has_message();
    if (message_ == &::google::protobuf::internal::kEmptyString) {
      return NULL;
    } else {
      ::std::string* temp = message_;
      message_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
      return temp;
    }
  }
  inline void Message::set_allocated_message(::std::string* message) {
    if (message_ != &::google::protobuf::internal::kEmptyString) {
      delete message_;
    }
    if (message) {
      set_has_message();
      message_ = message;
    } else {
      clear_has_message();
      message_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
    }
  }
  
  
  // @@protoc_insertion_point(namespace_scope)
  
  #ifndef SWIG
  namespace google {
  namespace protobuf {
  
  template <>
  inline const EnumDescriptor* GetEnumDescriptor< ::Message_IdType>() {
    return ::Message_IdType_descriptor();
  }
  
  }  // namespace google
  }  // namespace protobuf
  #endif  // SWIG
  
  // @@protoc_insertion_point(global_scope)
  
  #endif  // PROTOBUF_Message_2eproto__INCLUDED
  