summaryrefslogtreecommitdiff
path: root/src/binder/inc/cdebuglog.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/binder/inc/cdebuglog.hpp')
-rw-r--r--src/binder/inc/cdebuglog.hpp67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/binder/inc/cdebuglog.hpp b/src/binder/inc/cdebuglog.hpp
new file mode 100644
index 0000000000..37e1bc65b9
--- /dev/null
+++ b/src/binder/inc/cdebuglog.hpp
@@ -0,0 +1,67 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+// ============================================================
+//
+// CDebugLog.hpp
+//
+
+
+//
+// Defines the CDebugLog class
+//
+// ============================================================
+
+#ifndef __BINDER__C_DEBUG_LOG_HPP__
+#define __BINDER__C_DEBUG_LOG_HPP__
+
+#include "bindertypes.hpp"
+#include "list.hpp"
+
+#define FUSION_BIND_LOG_CATEGORY_DEFAULT 0
+#define FUSION_BIND_LOG_CATEGORY_NGEN 1
+#define FUSION_BIND_LOG_CATEGORY_MAX 2
+
+namespace BINDER_SPACE
+{
+ class CDebugLog
+ {
+ public:
+ CDebugLog();
+ ~CDebugLog();
+
+ static HRESULT Create(/* in */ ApplicationContext *pApplicationContext,
+ /* in */ AssemblyName *pAssemblyName,
+ /* in */ SString &sCodeBase,
+ /* out */ CDebugLog **ppCDebugLog);
+
+ ULONG AddRef();
+ ULONG Release();
+
+ HRESULT SetResultCode(/* in */ DWORD dwLogCategory,
+ /* in */ HRESULT hrResult);
+
+ HRESULT LogMessage(/* in */ DWORD dwDetailLevel,
+ /* in */ DWORD dwLogCategory,
+ /* in */ SString &sDebugString);
+
+ HRESULT Flush(/* in */ DWORD dwDetailLevel,
+ /* in */ DWORD dwLogCategory);
+ protected:
+ HRESULT Init(/* in */ ApplicationContext *pApplicationContext,
+ /* in */ AssemblyName *pAssemblyName,
+ /* in */ SString &sCodeBase);
+
+ HRESULT LogHeader(/* in */ DWORD dwLogCategory);
+ HRESULT LogFooter(/* in */ DWORD dwLogCategory);
+
+ LONG m_cRef;
+ FileHandleHolder m_hLogFile;
+ List<SString> m_content[FUSION_BIND_LOG_CATEGORY_MAX];
+ SString m_applicationName;
+ SString m_logFileName;
+ HRESULT m_HrResult[FUSION_BIND_LOG_CATEGORY_MAX];
+ };
+};
+
+#endif