XdmfItemFactory.hpp 930 Bytes
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
#ifndef XDMFITEMFACTORY_HPP_
#define XDMFITEMFACTORY_HPP_

// Forward Declarations
class XdmfItem;

// Includes
#include "XdmfCoreItemFactory.hpp"

/**
 * @brief Factory for constructing XdmfItems from their ItemTag and ItemProperties
 */
class XdmfItemFactory : public XdmfCoreItemFactory {

public:

17 18 19 20 21 22 23 24 25 26 27
	/**
	 * Create a new XdmfItemFactory.
	 *
	 * @return constructed XdmfItemFactory.
	 */
	static boost::shared_ptr<XdmfItemFactory> New()
	{
		boost::shared_ptr<XdmfItemFactory> p(new XdmfItemFactory());
		return p;
	};

28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
	virtual ~XdmfItemFactory();

	virtual boost::shared_ptr<XdmfItem> createItem(const std::string & itemTag, const std::map<std::string, std::string> & itemProperties) const;

protected:

	XdmfItemFactory();

private:

	XdmfItemFactory(const XdmfItemFactory & itemFactory);  // Not implemented.
	void operator=(const XdmfItemFactory & itemFactory);  // Not implemented.

};

#endif /* XDMFITEMFACTORY_HPP_ */