1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 24 #ifndef _CFSTRINGUTILITIES_HXX_ 25 #define _CFSTRINGUTILITIES_HXX_ 26 27 #include <premac.h> 28 #include <Carbon/Carbon.h> 29 #include <Cocoa/Cocoa.h> 30 #include <CoreFoundation/CoreFoundation.h> 31 #include <postmac.h> 32 #include <rtl/ustring.hxx> 33 #include <sal/types.h> 34 #include <osl/diagnose.h> 35 36 enum InfoType { 37 FULLPATH, 38 FILENAME, 39 PATHWITHOUTLASTCOMPONENT 40 }; 41 42 rtl::OUString CFStringToOUString(const CFStringRef sOrig); 43 rtl::OUString FSRefToOUString(FSRef fsRef, InfoType info = FULLPATH); 44 rtl::OUString CFURLRefToOUString(CFURLRef aUrlRef, InfoType info); 45 CFStringRef CFStringCreateWithOUString(const rtl::OUString& aString); 46 47 //debug utils 48 #define PARAMFILLER "\n " 49 50 inline void DBG_PRINT_ENTRY() { 51 OSL_TRACE(">>> %s", __func__); 52 } 53 54 inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname) { 55 OSL_TRACE(">>> %s::%s", classname, methodname); 56 } 57 58 inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const char* value1) { 59 OSL_TRACE(">>> %s::%s%s%s = %s", classname, methodname, PARAMFILLER, param1, value1); 60 } 61 62 inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const rtl::OUString& value1) { 63 OSL_TRACE(">>> %s::%s%s%s = %s", classname, methodname, PARAMFILLER, param1, OUStringToOString(value1, RTL_TEXTENCODING_UTF8).getStr()); 64 } 65 66 inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const CFStringRef value1) { 67 OSL_TRACE(">>> %s::%s%s%s =", classname, methodname, PARAMFILLER, param1); 68 #if OSL_DEBUG_LEVEL > 1 69 CFShow(value1); 70 #endif 71 } 72 73 inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const NSString* value1) { 74 OSL_TRACE(">>> %s::%s%s%s =", classname, methodname, PARAMFILLER, param1); 75 #if OSL_DEBUG_LEVEL > 1 76 NSLog( const_cast<NSString*>(value1)); 77 #endif 78 } 79 80 inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const int value1) { 81 OSL_TRACE(">>> %s::%s%s%s = %d", classname, methodname, PARAMFILLER, param1, value1); 82 } 83 84 inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const char* value1, const char* param2, const int value2) { 85 OSL_TRACE(">>> %s::%s%s%s = %s%s%s = %d", classname, methodname, PARAMFILLER, param1, value1, PARAMFILLER, param2, value2); 86 } 87 88 inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const char* value1, const char* param2, const char* value2) { 89 OSL_TRACE(">>> %s::%s%s%s = %s%s%s = %s", classname, methodname, PARAMFILLER, param1, value1, PARAMFILLER, param2, value2); 90 } 91 92 inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const int value1, const char* param2, const int value2) { 93 OSL_TRACE(">>> %s::%s%s%s = %d%s%s = %d", classname, methodname, PARAMFILLER, param1, value1, PARAMFILLER, param2, value2); 94 } 95 96 inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const int value1, const char* param2, const char* value2) { 97 OSL_TRACE(">>> %s::%s%s%s = %d%s%s = %s", classname, methodname, PARAMFILLER, param1, value1, PARAMFILLER, param2, value2); 98 } 99 100 inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const int value1, const char* param2, const CFStringRef value2) { 101 OSL_TRACE(">>> %s::%s%s%s = %d%s%s =", classname, methodname, PARAMFILLER, param1, value1, PARAMFILLER, param2, value2); 102 #if OSL_DEBUG_LEVEL > 1 103 CFShow(value2); 104 #endif 105 } 106 107 inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const int value1, const char* param2, const NSString* value2) { 108 OSL_TRACE(">>> %s::%s%s%s = %d%s%s =", classname, methodname, PARAMFILLER, param1, value1, PARAMFILLER, param2, value2); 109 #if OSL_DEBUG_LEVEL > 1 110 NSLog( const_cast<NSString*>(value2)); 111 #endif 112 } 113 114 inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const rtl::OUString& value1, const char* param2, const rtl::OUString& value2) { 115 OSL_TRACE(">>> %s::%s%s%s = %s%s%s = %s", classname, methodname, PARAMFILLER, param1, OUStringToOString(value1, RTL_TEXTENCODING_UTF8).getStr(), PARAMFILLER, param2, OUStringToOString(value2, RTL_TEXTENCODING_UTF8).getStr()); 116 } 117 118 inline void DBG_PRINT_ENTRY(const char * classname, const char * methodname, const char* param1, const rtl::OUString& value1, const char* param2, const int value2) { 119 OSL_TRACE(">>> %s::%s%s%s = %s%s%s = %d", classname, methodname, PARAMFILLER, param1, OUStringToOString(value1, RTL_TEXTENCODING_UTF8).getStr(), PARAMFILLER, param2, value2); 120 } 121 122 //exit method debugs 123 124 inline void DBG_PRINT_EXIT() { 125 OSL_TRACE("<<< %s", __func__); 126 } 127 128 inline void DBG_PRINT_EXIT(const char * classname, const char * methodname) { 129 OSL_TRACE("<<< %s::%s", classname, methodname); 130 } 131 132 inline void DBG_PRINT_EXIT(const char * classname, const char * methodname, const char* retVal) { 133 OSL_TRACE("<<< %s::%s%sreturnValue = %s", classname, methodname, PARAMFILLER, retVal); 134 } 135 136 inline void DBG_PRINT_EXIT(const char * classname, const char * methodname, int retVal) { 137 OSL_TRACE("<<< %s::%s%sreturnValue = %d", classname, methodname, PARAMFILLER, retVal); 138 } 139 140 inline void DBG_PRINT_EXIT(const char * classname, const char * methodname, const CFStringRef retVal) { 141 OSL_TRACE("<<< %s::%s%sreturnValue = ", classname, methodname, PARAMFILLER); 142 #if OSL_DEBUG_LEVEL > 1 143 CFShow(retVal); 144 #endif 145 } 146 147 inline void DBG_PRINT_EXIT(const char * classname, const char * methodname, const NSString* retVal) { 148 OSL_TRACE("<<< %s::%s%sreturnValue = ", classname, methodname, PARAMFILLER); 149 #if OSL_DEBUG_LEVEL > 1 150 NSLog( const_cast<NSString*>(retVal)); 151 #endif 152 } 153 154 inline void DBG_PRINT_EXIT(const char * classname, const char * methodname, const rtl::OUString& retVal) { 155 OSL_TRACE("<<< %s::%s%sreturnValue = %s", classname, methodname, PARAMFILLER, OUStringToOString(retVal, RTL_TEXTENCODING_UTF8).getStr()); 156 } 157 158 #endif //_CFSTRINGUTILITIES_HXX_ 159