]> Creatis software - creaImageIO.git/blobdiff - src2/creaImageIOListener.cpp
Added Settings dialog, customize configuration options and the listener on an externa...
[creaImageIO.git] / src2 / creaImageIOListener.cpp
diff --git a/src2/creaImageIOListener.cpp b/src2/creaImageIOListener.cpp
new file mode 100644 (file)
index 0000000..d515b31
--- /dev/null
@@ -0,0 +1,104 @@
+#include <creaImageIOListener.h>
+#include <creaImageIOSystem.h>
+#include "boost/filesystem.hpp"
+#include <boost/filesystem/operations.hpp>
+#include <boost/utility.hpp>
+
+
+namespace fs = boost::filesystem;
+using boost::filesystem::path;
+
+using namespace crea;
+
+namespace creaImageIO
+{
+  //=====================================================================
+  // CTor
+  Listener::Listener()
+  {
+    wxMutexLocker lock(mMutex);
+    GimmickDebugMessage(6,"Listener::Listener"
+                       <<std::endl);
+       mDrive="E:";
+       mMounted=false;
+       mAddFiles=false;
+       mRemoveFiles=true;
+
+  }
+  //=====================================================================
+
+  //=====================================================================
+  /// Destructor
+  Listener::~Listener()
+  {
+    wxMutexLocker lock(mMutex);
+    GimmickDebugMessage(6,"Listener::~Listener"
+                       <<std::endl);
+  }
+  //=====================================================================
+
+  void*  Listener::Entry()
+  {      
+    GimmickDebugMessage(6,"Listener::Entry()"<<std::endl);
+       while(!TestDestroy())
+         { 
+               try  
+               {
+                       fs::exists( mDrive );
+                       if(!mMounted && mAddFiles)
+                       {
+                               mMounted=true;
+                               SendSignal(mMounted);           
+                       }
+                       else if(!mMounted)
+                       {
+                               mMounted=true;
+                       }
+                       
+               }
+               catch (...)
+               {
+                       if(mMounted && mRemoveFiles)
+                       {
+                         mMounted=false;
+                         SendSignal(mMounted);
+                       }
+                       else if(mMounted)
+                       {
+                               mMounted=false;
+                       }
+               }
+
+               clock_t endwait;
+               endwait = clock () + 0.00000001 * CLOCKS_PER_SEC ;
+               while (clock() < endwait ) {}
+                       
+      }
+    return 0;
+  }
+
+  //=====================================================================
+
+  //=====================================================================
+  void Listener::OnExit()
+  {
+    GimmickDebugMessage(6,"Listener::OnExit() "<<std::endl);
+  }
+
+   //====================================================================
+  void Listener::ConnectObserver(MountingCallbackType callback)
+  {
+    mMountingSignal.connect(callback);
+  }
+
+   //======================================================================
+  void Listener::SendSignal(bool mount)
+  {
+         mMountingSignal(mount);
+  }
+
+
+
+} // EO namespace creaImageIO
+