Added namespace to file

main
anulax1225 ago%!(EXTRA string=1 year)
parent 46284efe28
commit 2f2a11dda1
  1. 22
      src/bakatools/file_system/file_watcher.cpp
  2. 15
      src/bakatools/file_system/file_watcher.h
  3. 11
      src/bakatools/thread/task_timer.h
  4. 36
      src/bakatools/time/time.h

@ -1,16 +1,17 @@
#include "file_watcher.h"
FileWatcher::FileWatcher(std::string path, TimeSpan<Millisecond> ts)
: target(path), ttm(ts)
{
namespace Bk::Tools {
FileWatcher::FileWatcher(std::string path, TimeSpan<Millisecond> ts)
: target(path), ttm(ts)
{
for (const std::filesystem::directory_entry& file : std::filesystem::recursive_directory_iterator(target))
paths[file.path().string()] = std::filesystem::last_write_time(file);
}
}
FileWatcher::~FileWatcher() { stop(); }
FileWatcher::~FileWatcher() { stop(); }
void FileWatcher::start(const std::function<void (std::string, FileStatus)>& action)
{
void FileWatcher::start(const std::function<void (std::string, FileStatus)>& action)
{
std::function<void()> task([&]()
{
auto it = paths.begin();
@ -40,8 +41,9 @@ void FileWatcher::start(const std::function<void (std::string, FileStatus)>& act
}
});
ttm.start(std::make_unique<std::function<void()>>(task));
}
}
void FileWatcher::stop() { ttm.stop(); }
void FileWatcher::stop() { ttm.stop(); }
bool FileWatcher::contains(std::string path) { return paths.find(path) != paths.end(); }
bool FileWatcher::contains(std::string path) { return paths.find(path) != paths.end(); }
}

@ -2,16 +2,16 @@
#include <bakatools.h>
#include <bakatools/thread/task_timer.h>
enum class FileStatus
{
namespace Bk::Tools {
enum class FileStatus
{
Created = 0,
Modified = 1,
Deleted = 2,
};
};
class FileWatcher
{
class FileWatcher
{
public:
FileWatcher(std::string path, TimeSpan<Millisecond> ts);
~FileWatcher();
@ -24,4 +24,5 @@ class FileWatcher
std::string target;
std::unordered_map<std::string, std::filesystem::file_time_type> paths;
TaskTimer<Millisecond> ttm;
};
};
}

@ -2,10 +2,10 @@
#include <bakatools.h>
#include <bakatools/time/time.h>
template<typename P>
class TaskTimer
{
namespace Bk::Tools {
template<typename P>
class TaskTimer
{
public:
TaskTimer(TimeSpan<P> ts)
: ts(ts) {}
@ -36,4 +36,5 @@ class TaskTimer
bool running = false;
std::thread worker;
TimeSpan<P> ts;
};
};
}

@ -2,20 +2,21 @@
#include <bakatoolspch.h>
using Nanosecond = std::ratio<1,1000000000>;
using Microsecond = std::ratio<1,1000000>;
using Millisecond = std::ratio<1,1000>;
using Second = std::ratio<1,1>;
using Minute = std::ratio<60, 1>;
using Hour = std::ratio<3600, 1>;
using Day = std::ratio<84600, 1>;
namespace Bk::Tools {
using Nanosecond = std::ratio<1,1000000000>;
using Microsecond = std::ratio<1,1000000>;
using Millisecond = std::ratio<1,1000>;
using Second = std::ratio<1,1>;
using Minute = std::ratio<60, 1>;
using Hour = std::ratio<3600, 1>;
using Day = std::ratio<84600, 1>;
using SysClock = std::chrono::system_clock;
using SteadyClock = std::chrono::steady_clock;
using SysClock = std::chrono::system_clock;
using SteadyClock = std::chrono::steady_clock;
template<typename P>
struct TimeSpan
{
template<typename P>
struct TimeSpan
{
TimeSpan(int interval = 0)
: interval(std::chrono::duration<long int, P>(interval)) {}
TimeSpan(std::chrono::duration<long int, P> interval)
@ -35,11 +36,11 @@ struct TimeSpan
}
std::chrono::duration<long int, P> interval;
};
};
template<typename C, typename P>
struct TimePoint
{
template<typename C, typename P>
struct TimePoint
{
TimePoint() = default;
TimePoint(std::chrono::time_point<C> point)
{
@ -73,4 +74,5 @@ struct TimePoint
}
std::chrono::time_point<C, std::chrono::duration<long int, P>> point;
};
};
}
Loading…
Cancel
Save