1*30fdc8d8SChris Lattner //===-- CFCString.h ---------------------------------------------*- C++ -*-===// 2*30fdc8d8SChris Lattner // 3*30fdc8d8SChris Lattner // The LLVM Compiler Infrastructure 4*30fdc8d8SChris Lattner // 5*30fdc8d8SChris Lattner // This file is distributed under the University of Illinois Open Source 6*30fdc8d8SChris Lattner // License. See LICENSE.TXT for details. 7*30fdc8d8SChris Lattner // 8*30fdc8d8SChris Lattner //===----------------------------------------------------------------------===// 9*30fdc8d8SChris Lattner 10*30fdc8d8SChris Lattner #ifndef CoreFoundationCPP_CFString_h_ 11*30fdc8d8SChris Lattner #define CoreFoundationCPP_CFString_h_ 12*30fdc8d8SChris Lattner 13*30fdc8d8SChris Lattner #include <iosfwd> 14*30fdc8d8SChris Lattner 15*30fdc8d8SChris Lattner #include "CFCReleaser.h" 16*30fdc8d8SChris Lattner 17*30fdc8d8SChris Lattner class CFCString : public CFCReleaser<CFStringRef> 18*30fdc8d8SChris Lattner { 19*30fdc8d8SChris Lattner public: 20*30fdc8d8SChris Lattner //------------------------------------------------------------------ 21*30fdc8d8SChris Lattner // Constructors and Destructors 22*30fdc8d8SChris Lattner //------------------------------------------------------------------ 23*30fdc8d8SChris Lattner CFCString (CFStringRef cf_str = NULL); 24*30fdc8d8SChris Lattner CFCString (const char *s, CFStringEncoding encoding); 25*30fdc8d8SChris Lattner CFCString (const CFCString& rhs); 26*30fdc8d8SChris Lattner CFCString& operator= (const CFCString& rhs); 27*30fdc8d8SChris Lattner virtual ~CFCString (); 28*30fdc8d8SChris Lattner 29*30fdc8d8SChris Lattner const char * GetFileSystemRepresentation (std::string& str); 30*30fdc8d8SChris Lattner CFStringRef SetFileSystemRepresentation (const char *path); 31*30fdc8d8SChris Lattner CFStringRef SetFileSystemRepresentationFromCFType (CFTypeRef cf_type); 32*30fdc8d8SChris Lattner CFStringRef SetFileSystemRepresentationAndExpandTilde (const char *path); 33*30fdc8d8SChris Lattner const char * UTF8 (std::string& str); 34*30fdc8d8SChris Lattner CFIndex GetLength() const; 35*30fdc8d8SChris Lattner static const char *UTF8 (CFStringRef cf_str, std::string& str); 36*30fdc8d8SChris Lattner static const char *FileSystemRepresentation (CFStringRef cf_str, std::string& str); 37*30fdc8d8SChris Lattner static const char *ExpandTildeInPath(const char* path, std::string &expanded_path); 38*30fdc8d8SChris Lattner 39*30fdc8d8SChris Lattner }; 40*30fdc8d8SChris Lattner 41*30fdc8d8SChris Lattner #endif // #ifndef CoreFoundationCPP_CFString_h_ 42