Make some unit tests skip file system access
[alexxy/gromacs.git] / src / gromacs / utility / fileredirector.cpp
index 9a1406122d1d51a44d3b6b38067cfa3f5fa2efe4..405702bd7280e180f17002a0abd6713d32adab96 100644 (file)
 namespace gmx
 {
 
+FileInputRedirectorInterface::~FileInputRedirectorInterface()
+{
+}
+
 FileOutputRedirectorInterface::~FileOutputRedirectorInterface()
 {
 }
@@ -55,6 +59,23 @@ 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().
@@ -80,6 +101,12 @@ class DefaultOutputRedirector : public FileOutputRedirectorInterface
 }   // namespace
 
 //! \cond libapi
+FileInputRedirectorInterface &defaultFileInputRedirector()
+{
+    static DefaultInputRedirector instance;
+    return instance;
+}
+
 FileOutputRedirectorInterface &defaultFileOutputRedirector()
 {
     static DefaultOutputRedirector instance;