1 //===-- CFString.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 // Created by Greg Clayton on 1/16/08. 11 // 12 //===----------------------------------------------------------------------===// 13 14 #ifndef __CFString_h__ 15 #define __CFString_h__ 16 17 #include "CFUtils.h" 18 #include <iosfwd> 19 20 class CFString : public CFReleaser<CFStringRef> 21 { 22 public: 23 //------------------------------------------------------------------ 24 // Constructors and Destructors 25 //------------------------------------------------------------------ 26 CFString (CFStringRef cf_str = NULL); 27 CFString (const char *s, CFStringEncoding encoding = kCFStringEncodingUTF8); 28 CFString (const CFString& rhs); 29 CFString& operator= (const CFString& rhs); 30 virtual ~CFString (); 31 32 const char * GetFileSystemRepresentation (std::string& str); 33 CFStringRef SetFileSystemRepresentation (const char *path); 34 CFStringRef SetFileSystemRepresentationFromCFType (CFTypeRef cf_type); 35 CFStringRef SetFileSystemRepresentationAndExpandTilde (const char *path); 36 const char * UTF8 (std::string& str); 37 CFIndex GetLength() const; 38 static const char *UTF8 (CFStringRef cf_str, std::string& str); 39 static const char *FileSystemRepresentation (CFStringRef cf_str, std::string& str); 40 static const char* GlobPath(const char* path, std::string &expanded_path); 41 }; 42 43 #endif // #ifndef __CFString_h__ 44