1 //===- llvm/Support/COM.h ---------------------------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 /// \file 10 /// 11 /// Provides a library for accessing COM functionality of the Host OS. 12 /// 13 //===----------------------------------------------------------------------===// 14 15 #ifndef LLVM_SUPPORT_COM_H 16 #define LLVM_SUPPORT_COM_H 17 18 namespace llvm { 19 namespace sys { 20 21 enum class COMThreadingMode { SingleThreaded, MultiThreaded }; 22 23 class InitializeCOMRAII { 24 public: 25 explicit InitializeCOMRAII(COMThreadingMode Threading, 26 bool SpeedOverMemory = false); 27 ~InitializeCOMRAII(); 28 29 private: 30 InitializeCOMRAII(const InitializeCOMRAII &) = delete; 31 void operator=(const InitializeCOMRAII &) = delete; 32 }; 33 } 34 } 35 36 #endif 37