blob: 88dbe85d5ae521b1e6116056efe1b4a1ea51e061 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
//
// Copyright (c) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
//
//
#ifndef ASSEMBLY_USAGE_LOG_MANAGER_H
#define ASSEMBLY_USAGE_LOG_MANAGER_H
#include "assemblyusagelog.h"
#include "daccess.h"
class AssemblyUsageLogManager
{
public:
class Config
{
public:
LPCWSTR wszLogDir;
unsigned int cLogBufferSize;
#ifdef FEATURE_APPX
unsigned int uiLogRefreshInterval;
#endif
};
enum GENERATE_LOG_FLAGS
{
GENERATE_LOG_FLAGS_NONE = 0,
};
// we depend on static PODs being initialized to 0 which is why ASSEMBLY_USAGE_LOG_FLAGS_NONE is 0
enum ASSEMBLY_USAGE_LOG_FLAGS : DWORD
{
ASSEMBLY_USAGE_LOG_FLAGS_NONE = 0,
ASSEMBLY_USAGE_LOG_FLAGS_INITTED = 1,
ASSEMBLY_USAGE_LOG_FLAGS_APPLOCALNGENDISABLED = 2,
};
static HRESULT Init(const Config *pConfig);
static HRESULT GenerateLog(GENERATE_LOG_FLAGS flags);
static HRESULT GetUsageLogForContext(LPCWSTR binder, LPCWSTR binderParameter, IAssemblyUsageLog **ppUsageLog);
static HRESULT RegisterBinderWithUsageLog(UINT_PTR binderId, IAssemblyUsageLog *pUsageLog);
static HRESULT UnRegisterBinderFromUsageLog(UINT_PTR binderId);
static IAssemblyUsageLog *GetUsageLogForBinder(UINT_PTR binderId);
static ASSEMBLY_USAGE_LOG_FLAGS GetUsageLogFlags();
static HRESULT SetUsageLogFlag(ASSEMBLY_USAGE_LOG_FLAGS flag, BOOL);
private:
SVAL_DECL(ASSEMBLY_USAGE_LOG_FLAGS, s_UsageLogFlags);
};
#endif /* ASSEMBLY_USAGE_LOG_MANAGER_H */
|