#include "fileredirector.h"
-#include "gromacs/utility/file.h"
+#include "gromacs/utility/filestream.h"
+#include "gromacs/utility/path.h"
namespace gmx
{
+FileInputRedirectorInterface::~FileInputRedirectorInterface()
+{
+}
+
FileOutputRedirectorInterface::~FileOutputRedirectorInterface()
{
}
namespace
{
+/*! \internal
+ * \brief
+ * Implements the redirector returned by defaultFileInputRedirector().
+ *
+ * Does not redirect anything, but uses the file system as requested.
+ *
+ * \ingroup module_utility
+ */
+class DefaultInputRedirector : public FileInputRedirectorInterface
+{
+ public:
+ virtual bool fileExists(const char *filename) const
+ {
+ return File::exists(filename);
+ }
+};
+
/*! \internal
* \brief
* Implements the redirector returned by defaultFileOutputRedirector().
class DefaultOutputRedirector : public FileOutputRedirectorInterface
{
public:
- virtual File &standardOutput()
+ virtual TextOutputStream &standardOutput()
{
- return File::standardOutput();
+ return TextOutputFile::standardOutput();
}
- virtual FileInitializer openFileForWriting(const char *filename)
+ virtual TextOutputStreamPointer openTextOutputFile(const char *filename)
{
- return FileInitializer(filename, "w");
+ return TextOutputStreamPointer(new TextOutputFile(filename));
}
};
} // namespace
//! \cond libapi
+FileInputRedirectorInterface &defaultFileInputRedirector()
+{
+ static DefaultInputRedirector instance;
+ return instance;
+}
+
FileOutputRedirectorInterface &defaultFileOutputRedirector()
{
static DefaultOutputRedirector instance;