brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · e8d6dad Raw
39 lines · c
1//===-- CFCString.h ---------------------------------------------*- C++ -*-===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef LLDB_SOURCE_HOST_MACOSX_CFCPP_CFCSTRING_H10#define LLDB_SOURCE_HOST_MACOSX_CFCPP_CFCSTRING_H11 12#include <iosfwd>13 14#include "CFCReleaser.h"15 16class CFCString : public CFCReleaser<CFStringRef> {17public:18  // Constructors and Destructors19  CFCString(CFStringRef cf_str = NULL);20  CFCString(const char *s, CFStringEncoding encoding = kCFStringEncodingUTF8);21  CFCString(const CFCString &rhs);22  CFCString &operator=(const CFCString &rhs);23  ~CFCString() override;24 25  const char *GetFileSystemRepresentation(std::string &str);26  CFStringRef SetFileSystemRepresentation(const char *path);27  CFStringRef SetFileSystemRepresentationFromCFType(CFTypeRef cf_type);28  CFStringRef SetFileSystemRepresentationAndExpandTilde(const char *path);29  const char *UTF8(std::string &str);30  CFIndex GetLength() const;31  static const char *UTF8(CFStringRef cf_str, std::string &str);32  static const char *FileSystemRepresentation(CFStringRef cf_str,33                                              std::string &str);34  static const char *ExpandTildeInPath(const char *path,35                                       std::string &expanded_path);36};37 38#endif // LLDB_SOURCE_HOST_MACOSX_CFCPP_CFCSTRING_H39