• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 //===-- CFCBundle.h ---------------------------------------------*- C++ -*-===//
2 //
3 // 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
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLDB_SOURCE_HOST_MACOSX_CFCPP_CFCBUNDLE_H
10 #define LLDB_SOURCE_HOST_MACOSX_CFCPP_CFCBUNDLE_H
11 
12 #include "CFCReleaser.h"
13 
14 class CFCBundle : public CFCReleaser<CFBundleRef> {
15 public:
16   // Constructors and Destructors
17   CFCBundle(const char *path = NULL);
18   CFCBundle(CFURLRef url);
19 
20   virtual ~CFCBundle();
21 
22   CFURLRef CopyExecutableURL() const;
23 
24   CFStringRef GetIdentifier() const;
25 
26   CFTypeRef GetValueForInfoDictionaryKey(CFStringRef key) const;
27 
28   bool GetPath(char *dst, size_t dst_len);
29 
30   bool SetPath(const char *path);
31 
32 private:
33   // Disallow copy and assignment constructors
34   CFCBundle(const CFCBundle &) = delete;
35 
36   const CFCBundle &operator=(const CFCBundle &) = delete;
37 };
38 
39 #endif // LLDB_SOURCE_HOST_MACOSX_CFCPP_CFCBUNDLE_H
40