XdmfCoreReader.hpp 1 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
#ifndef XDMFCOREREADER_HPP_
#define XDMFCOREREADER_HPP_

// Forward Declarations
class XdmfCoreItemFactory;
class XdmfItem;

// Includes
#include "XdmfObject.hpp"

/**
 * @brief Reads an Xdmf structured file stored on disk into memory.
 *
 * Reads an Xdmf structured file stored on disk into an Xdmf structure in memory.  All light data is parsed in order to create appropriate
 * Xdmf objects.  Heavy data controllers are created and attached to XdmfArrays but no heavy data is read into memory.
 */
class XdmfCoreReader : public XdmfObject {

public:

	virtual ~XdmfCoreReader();

	virtual boost::shared_ptr<XdmfItem> read(const std::string & fileName) const;

protected:

	XdmfCoreReader(const boost::shared_ptr<XdmfCoreItemFactory> itemFactory);

private:

	/**
	 * PIMPL
	 */
	class XdmfCoreReaderImpl;

	XdmfCoreReader(const XdmfCoreReader & reader);  // Not implemented.
	void operator=(const XdmfCoreReader & reader);  // Not implemented.

	const XdmfCoreReaderImpl * const mImpl;
};

#endif /* XDMFCOREREADER_HPP_ */