1 //===-- CFCBundle.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 
10 #ifndef CoreFoundationCPP_CFBundle_h_
11 #define CoreFoundationCPP_CFBundle_h_
12 
13 #include "CFCReleaser.h"
14 
15 class CFCBundle : public CFCReleaser<CFBundleRef>
16 {
17 public:
18     //------------------------------------------------------------------
19     // Constructors and Destructors
20     //------------------------------------------------------------------
21     CFCBundle (const char *path = NULL);
22     CFCBundle (CFURLRef url);
23 
24     virtual
25     ~CFCBundle();
26 
27     CFURLRef
28     CopyExecutableURL () const;
29 
30     CFStringRef
31     GetIdentifier () const;
32 
33     CFTypeRef
34     GetValueForInfoDictionaryKey(CFStringRef key) const;
35 
36     bool
37     GetPath (char *dst, size_t dst_len);
38 
39     bool
40     SetPath (const char *path);
41 
42 private:
43     // Disallow copy and assignment constructors
44     CFCBundle(const CFCBundle&);
45 
46     const CFCBundle&
47     operator=(const CFCBundle&);
48 };
49 
50 #endif // #ifndef CoreFoundationCPP_CFBundle_h_
51