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" #include "file_watcher.h"
FileWatcher::FileWatcher(std::string path, TimeSpan<Millisecond> ts) namespace Bk::Tools {
: target(path), ttm(ts) 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)) for (const std::filesystem::directory_entry& file : std::filesystem::recursive_directory_iterator(target))
paths[file.path().string()] = std::filesystem::last_write_time(file); 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([&]() std::function<void()> task([&]()
{ {
auto it = paths.begin(); 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)); 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.h>
#include <bakatools/thread/task_timer.h> #include <bakatools/thread/task_timer.h>
namespace Bk::Tools {
enum class FileStatus enum class FileStatus
{ {
Created = 0, Created = 0,
Modified = 1, Modified = 1,
Deleted = 2, Deleted = 2,
}; };
class FileWatcher class FileWatcher
{ {
public: public:
FileWatcher(std::string path, TimeSpan<Millisecond> ts); FileWatcher(std::string path, TimeSpan<Millisecond> ts);
~FileWatcher(); ~FileWatcher();
@ -24,4 +24,5 @@ class FileWatcher
std::string target; std::string target;
std::unordered_map<std::string, std::filesystem::file_time_type> paths; std::unordered_map<std::string, std::filesystem::file_time_type> paths;
TaskTimer<Millisecond> ttm; TaskTimer<Millisecond> ttm;
}; };
}

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

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