⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filewatcher.h

📁 游戏编程精粹6第1章 通用编程,对入门的游戏开发者很有帮助.
💻 H
字号:
#pragma once

#include <string>
#include <vector>

#define _WIN32_WINNT 0x0501
#include <windows.h>

#include <time.h>

class FileWatcher
{
public:
	FileWatcher(const std::string& directoryToWatch);
	~FileWatcher();

	bool Update();

	typedef std::vector< std::string > StringVec;
	typedef void (*ChangedFileSetCallback)(const StringVec &);
	void InstallChangedFileSetCallback(ChangedFileSetCallback cb) { m_cb = cb; }

private:
	bool Listen();
	void UpdateReportTiming();
	void ReportChangedFile(const std::string& filename);

	HANDLE m_directoryHandle;
	HANDLE m_notifyEvent;
	OVERLAPPED m_overlappedIo;
	char *m_notifyResults;

	StringVec m_pendingChangedFiles;
	__time64_t m_timeOfFirstPendingChange;
	bool m_timing;

	ChangedFileSetCallback m_cb;

private:
	FileWatcher(const FileWatcher&);
	FileWatcher& operator =(const FileWatcher&);
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -