blob: d59966f849b48546fd9e6cd0ee0547324d9cfc61 [file] [log] [blame]
Andrew Scull5e1ddfa2018-08-14 10:06:54 +01001//===- llvm/Support/COM.h ---------------------------------------*- C++ -*-===//
2//
Andrew Walbran16937d02019-10-22 13:54:20 +01003// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
Andrew Scull5e1ddfa2018-08-14 10:06:54 +01006//
7//===----------------------------------------------------------------------===//
8/// \file
9///
10/// Provides a library for accessing COM functionality of the Host OS.
11///
12//===----------------------------------------------------------------------===//
13
14#ifndef LLVM_SUPPORT_COM_H
15#define LLVM_SUPPORT_COM_H
16
17namespace llvm {
18namespace sys {
19
20enum class COMThreadingMode { SingleThreaded, MultiThreaded };
21
22class InitializeCOMRAII {
23public:
24 explicit InitializeCOMRAII(COMThreadingMode Threading,
25 bool SpeedOverMemory = false);
26 ~InitializeCOMRAII();
27
28private:
29 InitializeCOMRAII(const InitializeCOMRAII &) = delete;
30 void operator=(const InitializeCOMRAII &) = delete;
31};
32}
33}
34
35#endif