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
15class CFCBundle : public CFCReleaser<CFBundleRef>
16{
17public:
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
42private:
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