diff options
author | Caolán McNamara <caolanm@redhat.com> | 2013-10-22 09:20:52 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2013-10-22 12:50:48 +0100 |
commit | b37e2dd071c83454b3b06c0959a76b6012f53abb (patch) | |
tree | 91de7e6d0c01e7391276a1142d9d1b2f503ab35a /include/tools | |
parent | b9eaa646815bf9b400ecc0d5726de5241428cf34 (diff) |
Resolves: fdo#38838 remove UniString
hammer silver nails into coffin and bury in concrete
Change-Id: I3fda2ff47738bb33793adab97faba2d439ac9a28
Diffstat (limited to 'include/tools')
-rw-r--r-- | include/tools/solar.h | 1 | ||||
-rw-r--r-- | include/tools/string.hxx | 212 |
2 files changed, 0 insertions, 213 deletions
diff --git a/include/tools/solar.h b/include/tools/solar.h index b6d90e6c5c26..2bc9160bc5d7 100644 --- a/include/tools/solar.h +++ b/include/tools/solar.h @@ -118,7 +118,6 @@ inline void DoubleToSVBT64( double n, SVBT64 p ) { p[0] = ((sal_uInt8*)&n)[7 #pragma warning(error : 4002 4003) #endif -#define UniString String #define xub_StrLen sal_uInt16 #define STRING_CONCAT3( s1, s2, s3 ) \ diff --git a/include/tools/string.hxx b/include/tools/string.hxx index 9efa5d75b1b0..1757a64f96b6 100644 --- a/include/tools/string.hxx +++ b/include/tools/string.hxx @@ -21,230 +21,18 @@ #define _STRING_HXX #include <tools/solar.h> -#include <osl/thread.h> -#include <rtl/textenc.h> -#include <rtl/textcvt.h> -#include <rtl/ustrbuf.h> -#include <rtl/string.hxx> -#include <rtl/ustring.hxx> -#include "tools/toolsdllapi.h" -#include "tools/lineend.hxx" /******************************************************************************* - * * THIS CODE IS DEPRECATED. DO NOT USE IT IN ANY NEW CODE. - * - * Use the string classes in rtl/ustring.hxx and rtl/ustrbuf.hxx (and - * rtl/string.hxx and rtl/strbuf.hxx for byte-sized strings) instead. If you - * feel functionality missing from those string classes, please request - * improvements on discuss@openoffice.org. - * * There will not be any fixes to the code here. ******************************************************************************/ -class ResId; -class String; -class UniString; - -#define BYTESTRING_TO_UNISTRING_CVTFLAGS (RTL_TEXTTOUNICODE_FLAGS_UNDEFINED_MAPTOPRIVATE |\ - RTL_TEXTTOUNICODE_FLAGS_MBUNDEFINED_DEFAULT |\ - RTL_TEXTTOUNICODE_FLAGS_INVALID_DEFAULT) - -// String-Types - -#ifdef STRING32 -#define STRING_NOTFOUND ((xub_StrLen)0x7FFFFFFF) -#define STRING_LEN ((xub_StrLen)0x7FFFFFFF) -#define STRING_MAXLEN ((xub_StrLen)0x7FFFFFFF) -#else #define STRING_NOTFOUND ((xub_StrLen)0xFFFF) #define STRING_LEN ((xub_StrLen)0xFFFF) #define STRING_MAXLEN ((xub_StrLen)0xFFFF) -#endif enum StringCompare { COMPARE_LESS = -1, COMPARE_EQUAL = 0, COMPARE_GREATER = 1 }; -//Internal String data - -// Data used for the management of this String -// use only for debugging purposes (never assign to String directly!) - -#ifdef SAL_W32 -#pragma pack(push, 4) -#endif - -typedef struct _UniStringData -{ - sal_Int32 mnRefCount; // reference counter - sal_Int32 mnLen; // Length of the String - sal_Unicode maStr[1]; // CharArray (String) -} UniStringData; - -#ifdef SAL_W32 -#pragma pack(pop) -#endif - -// UniString - -class TOOLS_DLLPUBLIC SAL_WARN_UNUSED UniString -{ -private: - UniStringData* mpData; - - TOOLS_DLLPRIVATE inline void ImplCopyData(); - TOOLS_DLLPRIVATE inline sal_Unicode * ImplCopyStringData(sal_Unicode *); - - StringCompare CompareTo( const UniString& rStr, - xub_StrLen nLen = STRING_LEN ) const; - - UniString& Assign( const OUString& rStr ); - UniString& Append( const UniString& rStr ); -public: - UniString(); - UniString( const UniString& rStr ); - UniString( const OUString& rStr ); - ~UniString(); - - operator OUString () const - { - return OUString( rtl_uStringBuffer_refReturn( - reinterpret_cast<rtl_uString*>(mpData)), SAL_NO_ACQUIRE ); - } - -#ifdef RTL_FAST_STRING - template< typename T1, typename T2 > - UniString( const rtl::OUStringConcat< T1, T2 >& concat ) - : mpData(NULL) { Assign( OUString( concat )); } - template< typename T1, typename T2 > - UniString& operator =( const rtl::OUStringConcat< T1, T2 >& concat ) - { return Assign( OUString( concat )); } - template< typename T1, typename T2 > - UniString& operator +=( const rtl::OUStringConcat< T1, T2 >& concat ) - { return Append( UniString( concat ) ); } -#endif - - UniString& operator =( const OUString& rStr ) - { return Assign( rStr ); } - - UniString& operator +=( const OUString& rStr ) - { return Append( UniString(rStr) ); } - - xub_StrLen Len() const { return (xub_StrLen)mpData->mnLen; } - - const sal_Unicode* GetBuffer() const { return mpData->maStr; } - - friend sal_Bool operator == ( const UniString& rStr1, const UniString& rStr2 ); - friend sal_Bool operator != ( const UniString& rStr1, const UniString& rStr2 ) - { return !(operator == ( rStr1, rStr2 )); } - friend sal_Bool operator < ( const UniString& rStr1, const UniString& rStr2 ) - { return (rStr1.CompareTo( rStr2 ) == COMPARE_LESS); } - friend sal_Bool operator > ( const UniString& rStr1, const UniString& rStr2 ) - { return (rStr1.CompareTo( rStr2 ) == COMPARE_GREATER); } - friend sal_Bool operator <= ( const UniString& rStr1, const UniString& rStr2 ) - { return !(operator > ( rStr1, rStr2 )); } - friend sal_Bool operator >= ( const UniString& rStr1, const UniString& rStr2 ) - { return !(operator < ( rStr1, rStr2 )); } -}; - -template< typename charT, typename traits > std::basic_ostream<charT, traits> & -operator <<( - std::basic_ostream<charT, traits> & stream, UniString const & string) -{ - return stream << - OUStringToOString(string, RTL_TEXTENCODING_UTF8).getStr(); - // best effort; potentially loses data due to conversion failures - // (stray surrogate halves) and embedded null characters -} - -#ifdef RTL_FAST_STRING -namespace rtl -{ -template<> -struct ToStringHelper< UniString > - { - static int length( const UniString& s ) { return s.Len(); } - static sal_Unicode* addData( sal_Unicode* buffer, const UniString& s ) { return addDataHelper( buffer, s.GetBuffer(), s.Len()); } - static const bool allowOStringConcat = false; - static const bool allowOUStringConcat = true; - }; -} - -#endif - -// some compare operators, so that conversions from String to OUString don't -// have to insert conversions all over the place -inline bool operator==(UniString const& rLeft, OUString const& rRight) -{ - return OUString(rLeft) == rRight; -} - -inline bool operator==(OUString const& rLeft, UniString const& rRight) -{ - return rLeft == OUString(rRight); -} - -inline bool operator!=(UniString const& rLeft, OUString const& rRight) -{ - return OUString(rLeft) != rRight; -} - -inline bool operator!=(OUString const& rLeft, UniString const& rRight) -{ - return rLeft != OUString(rRight); -} - -#ifdef RTL_FAST_STRING -// The above operators make comparisons involving fast string concatenation ambiguous, so provide explicit overloads. -template< typename T1, typename T2 > -inline bool operator==( const rtl::OUStringConcat< T1, T2 >& concat, const OUString& str ) -{ - return OUString( concat ) == str; -} - -template< typename T1, typename T2 > -inline bool operator!=( const rtl::OUStringConcat< T1, T2 >& concat, const OUString& str ) -{ - return OUString( concat ) == str; -} - -template< typename T1, typename T2 > -inline bool operator==( const OUString& str, const rtl::OUStringConcat< T1, T2 >& concat ) -{ - return str == OUString( concat ); -} - -template< typename T1, typename T2 > -inline bool operator!=( const OUString& str, const rtl::OUStringConcat< T1, T2 >& concat ) -{ - return str != OUString( concat ); -} - -template< typename T1, typename T2 > -inline bool operator==( const rtl::OUStringConcat< T1, T2 >& concat, const UniString& str ) -{ - return UniString( concat ) == str; -} - -template< typename T1, typename T2 > -inline bool operator!=( const rtl::OUStringConcat< T1, T2 >& concat, const UniString& str ) -{ - return UniString( concat ) == str; -} - -template< typename T1, typename T2 > -inline bool operator==( const UniString& str, const rtl::OUStringConcat< T1, T2 >& concat ) -{ - return str == UniString( concat ); -} - -template< typename T1, typename T2 > -inline bool operator!=( const UniString& str, const rtl::OUStringConcat< T1, T2 >& concat ) -{ - return str != UniString( concat ); -} - -#endif - #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |