text: /***************************************************************************
   *   Copyright (C) by GFZ Potsdam                                          *
   *                                                                         *
   *   You can redistribute and/or modify this program under the             *
   *   terms of the SeisComP Public License.                                 *
   *                                                                         *
   *   This program is distributed in the hope that it will be useful,       *
   *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
   *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
   *   SeisComP Public License for more details.                             *
   ***************************************************************************/
  
  
  #ifndef __SEISCOMP_DATAMODEL_BLOB_H__
  #define __SEISCOMP_DATAMODEL_BLOB_H__
  
  
  #include <string>
  #include <seiscomp3/core/baseobject.h>
  #include <seiscomp3/core.h>
  #include <seiscomp3/core/exceptions.h>
  
  
  namespace Seiscomp {
  namespace DataModel {
  
  
  DEFINE_SMARTPOINTER(Blob);
  
  
  class SC_SYSTEM_CORE_API Blob : public Core::BaseObject {
  	DECLARE_SC_CLASS(Blob);
  	DECLARE_SERIALIZATION;
  	DECLARE_METAOBJECT;
  
  	// ------------------------------------------------------------------
  	//  Xstruction
  	// ------------------------------------------------------------------
  	public:
  		//! Constructor
  		Blob();
  
  		//! Copy constructor
  		Blob(const Blob& other);
  
  		//! Destructor
  		~Blob();
  	
  
  	// ------------------------------------------------------------------
  	//  Operators
  	// ------------------------------------------------------------------
  	public:
  		//! Copies the metadata of other to this
  		Blob& operator=(const Blob& other);
  		//! Checks for equality of two objects. Childs objects
  		//! are not part of the check.
  		bool operator==(const Blob& other) const;
  		bool operator!=(const Blob& other) const;
  
  		//! Wrapper that calls operator==
  		bool equal(const Blob& other) const;
  
  
  	// ------------------------------------------------------------------
  	//  Setters/Getters
  	// ------------------------------------------------------------------
  	public:
  		void setContent(const std::string& content);
  		const std::string& content() const;
  
  
  	// ------------------------------------------------------------------
  	//  Implementation
  	// ------------------------------------------------------------------
  	private:
  		// Attributes
  		std::string _content;
  };
  
  
  }
  }
  
  
  #endif
  