47 lines
1.1 KiB
C++
47 lines
1.1 KiB
C++
// Copyright (c) .NET Foundation. All rights reserved.
|
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
|
|
#pragma once
|
|
|
|
#include <Windows.h>
|
|
#include "application.h"
|
|
#include "filewatcher.h"
|
|
#include <atomic>
|
|
|
|
class AppOfflineTrackingApplication: public APPLICATION
|
|
{
|
|
public:
|
|
AppOfflineTrackingApplication(const IHttpApplication& application)
|
|
: m_applicationPath(application.GetApplicationPhysicalPath()),
|
|
m_fileWatcher(nullptr),
|
|
m_fAppOfflineProcessed(false)
|
|
{
|
|
}
|
|
|
|
~AppOfflineTrackingApplication() override
|
|
{
|
|
if (m_fileWatcher)
|
|
{
|
|
m_fileWatcher->StopMonitor();
|
|
}
|
|
};
|
|
|
|
HRESULT
|
|
StartMonitoringAppOffline();
|
|
|
|
VOID
|
|
Stop(bool fServerInitiated) override;
|
|
|
|
virtual
|
|
VOID
|
|
OnAppOffline();
|
|
|
|
private:
|
|
HRESULT
|
|
StartMonitoringAppOflineImpl();
|
|
|
|
std::wstring m_applicationPath;
|
|
std::unique_ptr<FILE_WATCHER> m_fileWatcher;
|
|
std::atomic_bool m_fAppOfflineProcessed;
|
|
};
|