/* * Tencent is pleased to support the open source community by making Puerts available. * Copyright (C) 2020 THL A29 Limited, a Tencent company. All rights reserved. * Puerts is licensed under the BSD 3-Clause License, except for the third-party components listed in the file 'LICENSE' which may * be subject to their corresponding license terms. This file is subject to the terms and conditions defined in file 'LICENSE', * which is part of this source code package. */ #pragma once #if WITH_EDITOR #include "CoreMinimal.h" #include "IDirectoryWatcher.h" #include "Misc/SecureHash.h" #include #include "PuertsNamespaceDef.h" namespace PUERTS_NAMESPACE { class JSENV_API FSourceFileWatcher { public: FSourceFileWatcher(std::function InOnWatchedFileChanged); ~FSourceFileWatcher(); void OnSourceLoaded(const FString& InPath); void OnDirectoryChanged(const TArray& FileChanges); private: TMap WatchedDirs; TMap> WatchedFiles; FCriticalSection SourceFileWatcherCritical; std::function OnWatchedFileChanged; }; } // namespace PUERTS_NAMESPACE #endif