XdmfItem.hpp 1.05 KB
Newer Older
1
/**
2 3
 * An XdmfItem replaces the XdmfElement class in the previous version of Xdmf.  An XdmfItem represents an item that can be
 * visited by an XdmfVisitor and have it's contents added to an xdmf file.  These include XdmfGrids, XdmfSets,
4 5 6 7 8 9 10 11
 * XdmfTopologies, etc.
 *
 * This is an abstract base class.
 */

#ifndef XDMFITEM_HPP_
#define XDMFITEM_HPP_

12
// Forward Declarations
13 14 15 16 17
class XdmfVisitor;

// Includes
#include "XdmfObject.hpp"

18 19 20 21 22 23
/**
 * @brief Base class of any object that is able to be added to an Xdmf structure.
 *
 * XdmfItem is an abstract base class.  It represents any item that can be visited and traversed by an XdmfVisitor
 * and have its contents added to an Xdmf file.
 */
24 25 26 27
class XdmfItem : public XdmfObject {

public:

28 29
	virtual void traverse(boost::shared_ptr<XdmfVisitor> visitor) const;
	virtual void write(boost::shared_ptr<XdmfVisitor> visitor) const = 0;
30 31 32 33 34 35 36 37

protected:

	XdmfItem();
	virtual ~XdmfItem();

private:

38 39
	XdmfItem(const XdmfItem&);  // Not implemented.
	void operator=(const XdmfItem&);  // Not implemented.
40 41 42 43

};

#endif /* XDMFITEM_HPP_ */