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

#ifndef PROTOBUF_schema_2eproto__INCLUDED
#define PROTOBUF_schema_2eproto__INCLUDED

#include <string>

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

#if GOOGLE_PROTOBUF_VERSION < 2003000
#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 2003000 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
#error This file was generated by an older version of protoc which is
#error incompatible with your Protocol Buffer headers.  Please
#error regenerate this file with a newer version of protoc.
#endif

#include <google/protobuf/generated_message_util.h>
#include <google/protobuf/repeated_field.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/generated_message_reflection.h>
#include "engine.pb.h"
// @@protoc_insertion_point(includes)

namespace drizzled {
namespace message {

// Internal implementation detail -- do not call these.
void  protobuf_AddDesc_schema_2eproto();
void protobuf_AssignDesc_schema_2eproto();
void protobuf_ShutdownFile_schema_2eproto();

class Schema;

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

class Schema : public ::google::protobuf::Message {
 public:
  Schema();
  virtual ~Schema();
  
  Schema(const Schema& from);
  
  inline Schema& operator=(const Schema& 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 Schema& default_instance();
  
  void Swap(Schema* other);
  
  // implements Message ----------------------------------------------
  
  Schema* New() const;
  void CopyFrom(const ::google::protobuf::Message& from);
  void MergeFrom(const ::google::protobuf::Message& from);
  void CopyFrom(const Schema& from);
  void MergeFrom(const Schema& 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 name = 1;
  inline bool has_name() const;
  inline void clear_name();
  static const int kNameFieldNumber = 1;
  inline const ::std::string& name() const;
  inline void set_name(const ::std::string& value);
  inline void set_name(const char* value);
  inline void set_name(const char* value, size_t size);
  inline ::std::string* mutable_name();
  
  // optional string collation = 2;
  inline bool has_collation() const;
  inline void clear_collation();
  static const int kCollationFieldNumber = 2;
  inline const ::std::string& collation() const;
  inline void set_collation(const ::std::string& value);
  inline void set_collation(const char* value);
  inline void set_collation(const char* value, size_t size);
  inline ::std::string* mutable_collation();
  
  // required .drizzled.message.Engine engine = 3;
  inline bool has_engine() const;
  inline void clear_engine();
  static const int kEngineFieldNumber = 3;
  inline const ::drizzled::message::Engine& engine() const;
  inline ::drizzled::message::Engine* mutable_engine();
  
  // required uint64 creation_timestamp = 11 [default = 0];
  inline bool has_creation_timestamp() const;
  inline void clear_creation_timestamp();
  static const int kCreationTimestampFieldNumber = 11;
  inline ::google::protobuf::uint64 creation_timestamp() const;
  inline void set_creation_timestamp(::google::protobuf::uint64 value);
  
  // required uint64 update_timestamp = 12 [default = 0];
  inline bool has_update_timestamp() const;
  inline void clear_update_timestamp();
  static const int kUpdateTimestampFieldNumber = 12;
  inline ::google::protobuf::uint64 update_timestamp() const;
  inline void set_update_timestamp(::google::protobuf::uint64 value);
  
  // @@protoc_insertion_point(class_scope:drizzled.message.Schema)
 private:
  ::google::protobuf::UnknownFieldSet _unknown_fields_;
  mutable int _cached_size_;
  
  ::std::string* name_;
  static const ::std::string _default_name_;
  ::std::string* collation_;
  static const ::std::string _default_collation_;
  ::drizzled::message::Engine* engine_;
  ::google::protobuf::uint64 creation_timestamp_;
  ::google::protobuf::uint64 update_timestamp_;
  friend void  protobuf_AddDesc_schema_2eproto();
  friend void protobuf_AssignDesc_schema_2eproto();
  friend void protobuf_ShutdownFile_schema_2eproto();
  
  ::google::protobuf::uint32 _has_bits_[(5 + 31) / 32];
  
  // WHY DOES & HAVE LOWER PRECEDENCE THAN != !?
  inline bool _has_bit(int index) const {
    return (_has_bits_[index / 32] & (1u << (index % 32))) != 0;
  }
  inline void _set_bit(int index) {
    _has_bits_[index / 32] |= (1u << (index % 32));
  }
  inline void _clear_bit(int index) {
    _has_bits_[index / 32] &= ~(1u << (index % 32));
  }
  
  void InitAsDefaultInstance();
  static Schema* default_instance_;
};
// ===================================================================


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

// Schema

// required string name = 1;
inline bool Schema::has_name() const {
  return _has_bit(0);
}
inline void Schema::clear_name() {
  if (name_ != &_default_name_) {
    name_->clear();
  }
  _clear_bit(0);
}
inline const ::std::string& Schema::name() const {
  return *name_;
}
inline void Schema::set_name(const ::std::string& value) {
  _set_bit(0);
  if (name_ == &_default_name_) {
    name_ = new ::std::string;
  }
  name_->assign(value);
}
inline void Schema::set_name(const char* value) {
  _set_bit(0);
  if (name_ == &_default_name_) {
    name_ = new ::std::string;
  }
  name_->assign(value);
}
inline void Schema::set_name(const char* value, size_t size) {
  _set_bit(0);
  if (name_ == &_default_name_) {
    name_ = new ::std::string;
  }
  name_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* Schema::mutable_name() {
  _set_bit(0);
  if (name_ == &_default_name_) {
    name_ = new ::std::string;
  }
  return name_;
}

// optional string collation = 2;
inline bool Schema::has_collation() const {
  return _has_bit(1);
}
inline void Schema::clear_collation() {
  if (collation_ != &_default_collation_) {
    collation_->clear();
  }
  _clear_bit(1);
}
inline const ::std::string& Schema::collation() const {
  return *collation_;
}
inline void Schema::set_collation(const ::std::string& value) {
  _set_bit(1);
  if (collation_ == &_default_collation_) {
    collation_ = new ::std::string;
  }
  collation_->assign(value);
}
inline void Schema::set_collation(const char* value) {
  _set_bit(1);
  if (collation_ == &_default_collation_) {
    collation_ = new ::std::string;
  }
  collation_->assign(value);
}
inline void Schema::set_collation(const char* value, size_t size) {
  _set_bit(1);
  if (collation_ == &_default_collation_) {
    collation_ = new ::std::string;
  }
  collation_->assign(reinterpret_cast<const char*>(value), size);
}
inline ::std::string* Schema::mutable_collation() {
  _set_bit(1);
  if (collation_ == &_default_collation_) {
    collation_ = new ::std::string;
  }
  return collation_;
}

// required .drizzled.message.Engine engine = 3;
inline bool Schema::has_engine() const {
  return _has_bit(2);
}
inline void Schema::clear_engine() {
  if (engine_ != NULL) engine_->::drizzled::message::Engine::Clear();
  _clear_bit(2);
}
inline const ::drizzled::message::Engine& Schema::engine() const {
  return engine_ != NULL ? *engine_ : *default_instance_->engine_;
}
inline ::drizzled::message::Engine* Schema::mutable_engine() {
  _set_bit(2);
  if (engine_ == NULL) engine_ = new ::drizzled::message::Engine;
  return engine_;
}

// required uint64 creation_timestamp = 11 [default = 0];
inline bool Schema::has_creation_timestamp() const {
  return _has_bit(3);
}
inline void Schema::clear_creation_timestamp() {
  creation_timestamp_ = GOOGLE_ULONGLONG(0);
  _clear_bit(3);
}
inline ::google::protobuf::uint64 Schema::creation_timestamp() const {
  return creation_timestamp_;
}
inline void Schema::set_creation_timestamp(::google::protobuf::uint64 value) {
  _set_bit(3);
  creation_timestamp_ = value;
}

// required uint64 update_timestamp = 12 [default = 0];
inline bool Schema::has_update_timestamp() const {
  return _has_bit(4);
}
inline void Schema::clear_update_timestamp() {
  update_timestamp_ = GOOGLE_ULONGLONG(0);
  _clear_bit(4);
}
inline ::google::protobuf::uint64 Schema::update_timestamp() const {
  return update_timestamp_;
}
inline void Schema::set_update_timestamp(::google::protobuf::uint64 value) {
  _set_bit(4);
  update_timestamp_ = value;
}


// @@protoc_insertion_point(namespace_scope)

}  // namespace message
}  // namespace drizzled

#ifndef SWIG
namespace google {
namespace protobuf {


}  // namespace google
}  // namespace protobuf
#endif  // SWIG

// @@protoc_insertion_point(global_scope)

#endif  // PROTOBUF_schema_2eproto__INCLUDED
