124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===-- CFBundle.h ----------------------------------------------*- C++ -*-===//
224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//
324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//                     The LLVM Compiler Infrastructure
424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//
524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// This file is distributed under the University of Illinois Open Source
624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner// License. See LICENSE.TXT for details.
724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//
824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===----------------------------------------------------------------------===//
924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//
1024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//  Created by Greg Clayton on 1/16/08.
1124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//
1224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner//===----------------------------------------------------------------------===//
1324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#ifndef __CFBundle_h__
1524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#define __CFBundle_h__
1624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#include "CFUtils.h"
1824943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
1924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerclass CFBundle : public CFReleaser<CFBundleRef>
2024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner{
2124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerpublic:
2224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    //------------------------------------------------------------------
2324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    // Constructors and Destructors
2424943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    //------------------------------------------------------------------
2524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    CFBundle(const char *path = NULL);
2624943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    CFBundle(const CFBundle& rhs);
2724943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner    CFBundle& operator=(const CFBundle& rhs);
28a5c92b6c0af7b68ae999d9efd87a060255aa7a37Greg Clayton    virtual
29a5c92b6c0af7b68ae999d9efd87a060255aa7a37Greg Clayton    ~CFBundle();
30a5c92b6c0af7b68ae999d9efd87a060255aa7a37Greg Clayton    bool
31a5c92b6c0af7b68ae999d9efd87a060255aa7a37Greg Clayton    SetPath (const char *path);
3224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
33a5c92b6c0af7b68ae999d9efd87a060255aa7a37Greg Clayton    CFStringRef
34a5c92b6c0af7b68ae999d9efd87a060255aa7a37Greg Clayton    GetIdentifier () const;
3524943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
36a5c92b6c0af7b68ae999d9efd87a060255aa7a37Greg Clayton    CFURLRef
37a5c92b6c0af7b68ae999d9efd87a060255aa7a37Greg Clayton    CopyExecutableURL () const;
38a5c92b6c0af7b68ae999d9efd87a060255aa7a37Greg Clayton
3924943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattnerprotected:
4024943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner        CFReleaser<CFURLRef> m_bundle_url;
4124943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner};
4224943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner
4324943d2ee8bfaa7cf5893e4709143924157a5c1eChris Lattner#endif // #ifndef __CFBundle_h__
44