summaryrefslogtreecommitdiff
path: root/connectivity/source/commontools/dbcharset.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'connectivity/source/commontools/dbcharset.cxx')
-rw-r--r--connectivity/source/commontools/dbcharset.cxx234
1 files changed, 0 insertions, 234 deletions
diff --git a/connectivity/source/commontools/dbcharset.cxx b/connectivity/source/commontools/dbcharset.cxx
deleted file mode 100644
index bee593f447..0000000000
--- a/connectivity/source/commontools/dbcharset.cxx
+++ /dev/null
@@ -1,234 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-// MARKER(update_precomp.py): autogen include statement, do not remove
-#include "precompiled_connectivity.hxx"
-#include <connectivity/dbcharset.hxx>
-#include "diagnose_ex.h"
-#include <osl/diagnose.h>
-#include <rtl/tencinfo.h>
-
-//.........................................................................
-namespace dbtools
-{
-//.........................................................................
-
- //=========================================================================
- //= OCharsetMap
- //=========================================================================
- //-------------------------------------------------------------------------
- OCharsetMap::OCharsetMap()
- {
- }
-
- //-------------------------------------------------------------------------
- void OCharsetMap::lateConstruct()
- {
- const rtl_TextEncoding eFirstEncoding = RTL_TEXTENCODING_DONTKNOW;
- const rtl_TextEncoding eLastEncoding = 100; // TODO: a define in rtl/textenc.h would be fine here ...
- OSL_ENSURE( 0 == eFirstEncoding, "OCharsetMap::OCharsetMap: somebody changed the numbers!" );
-
- rtl_TextEncodingInfo aInfo; aInfo.StructSize = sizeof( rtl_TextEncodingInfo );
- for ( rtl_TextEncoding eEncoding = eFirstEncoding; eEncoding < eLastEncoding; ++eEncoding )
- {
- if ( ( RTL_TEXTENCODING_DONTKNOW == eEncoding ) // this is always allowed - it has the special meaning "system encoding"
- || ( rtl_getTextEncodingInfo( eEncoding, &aInfo )
- && approveEncoding( eEncoding, aInfo )
- )
- )
- {
- m_aEncodings.insert( eEncoding );
- }
- }
-
- OSL_ENSURE( find( RTL_TEXTENCODING_MS_1252 ) != end(), "OCharsetMap::lateConstruct: missing compatibility encoding ANSI!" );
- OSL_ENSURE( find( RTL_TEXTENCODING_APPLE_ROMAN ) != end(), "OCharsetMap::lateConstruct: missing compatibility encoding macintosh!" );
- OSL_ENSURE( find( RTL_TEXTENCODING_IBM_437 ) != end(), "OCharsetMap::lateConstruct: missing compatibility encoding IBM437!" );
- OSL_ENSURE( find( RTL_TEXTENCODING_IBM_850) != end(), "OCharsetMap::lateConstruct: missing compatibility encoding IBM850!" );
- OSL_ENSURE( find( RTL_TEXTENCODING_IBM_860 ) != end(), "OCharsetMap::lateConstruct: missing compatibility encoding IBM860!" );
- OSL_ENSURE( find( RTL_TEXTENCODING_IBM_861 ) != end(), "OCharsetMap::lateConstruct: missing compatibility encoding IBM861!" );
- OSL_ENSURE( find( RTL_TEXTENCODING_IBM_863 ) != end(), "OCharsetMap::lateConstruct: missing compatibility encoding IBM863!" );
- OSL_ENSURE( find( RTL_TEXTENCODING_IBM_865 ) != end(), "OCharsetMap::lateConstruct: missing compatibility encoding IBM865!" );
- OSL_ENSURE( find( RTL_TEXTENCODING_IBM_866 ) != end(), "OCharsetMap::lateConstruct: missing compatibility encoding IBM866!" );
- OSL_ENSURE( find( RTL_TEXTENCODING_DONTKNOW ) != end(), "OCharsetMap::lateConstruct: missing compatibility encoding SYSTEM!" );
- OSL_ENSURE( find( RTL_TEXTENCODING_UTF8 ) != end(), "OCharsetMap::lateConstruct: missing compatibility encoding UTF-8!" );
- OSL_ENSURE( find( RTL_TEXTENCODING_BIG5_HKSCS ) != end(), "OCharsetMap::lateConstruct: missing compatibility encoding Big5-HKSCS!" );
- }
-
- //-------------------------------------------------------------------------
- sal_Bool OCharsetMap::approveEncoding( const rtl_TextEncoding _eEncoding, const rtl_TextEncodingInfo& _rInfo ) const
- {
- sal_Bool bIsMimeEncoding = 0 != ( _rInfo.Flags & RTL_TEXTENCODING_INFO_MIME );
- OSL_ENSURE( !bIsMimeEncoding || rtl_getMimeCharsetFromTextEncoding( _eEncoding ),
- "OCharsetMap::OCharsetMap: inconsistence in rtl!" );
- OSL_UNUSED( _eEncoding );
- return bIsMimeEncoding;
- }
-
- //-------------------------------------------------------------------------
- OCharsetMap::~OCharsetMap()
- {
- }
-
- //-------------------------------------------------------------------------
- OCharsetMap::CharsetIterator OCharsetMap::begin() const
- {
- ensureConstructed( );
- return CharsetIterator(this, m_aEncodings.begin() );
- }
-
- //-------------------------------------------------------------------------
- OCharsetMap::CharsetIterator OCharsetMap::find(const rtl_TextEncoding _eEncoding) const
- {
- ensureConstructed( );
- return CharsetIterator( this, m_aEncodings.find( _eEncoding ) );
- }
-
- //-------------------------------------------------------------------------
- OCharsetMap::CharsetIterator OCharsetMap::find(const ::rtl::OUString& _rIanaName, const IANA&) const
- {
- ensureConstructed( );
-
- rtl_TextEncoding eEncoding = RTL_TEXTENCODING_DONTKNOW;
- if ( _rIanaName.getLength() )
- {
- // byte string conversion
- ::rtl::OString sMimeByteString( _rIanaName.getStr(), _rIanaName.getLength(), RTL_TEXTENCODING_ASCII_US );
- // look up
- eEncoding = rtl_getTextEncodingFromMimeCharset( sMimeByteString.getStr() );
-
- if ( RTL_TEXTENCODING_DONTKNOW == eEncoding )
- { // if we're here, the name is not empty, but unknown -> this is an invalid name
- return end();
- }
- }
-
- return find( eEncoding );
- }
-
- //-------------------------------------------------------------------------
- OCharsetMap::CharsetIterator OCharsetMap::end() const
- {
- ensureConstructed( );
-
- return CharsetIterator( this, m_aEncodings.end() );
- }
-
- //=========================================================================
- //= CharsetIteratorDerefHelper
- //=========================================================================
- //-------------------------------------------------------------------------
- CharsetIteratorDerefHelper::CharsetIteratorDerefHelper( const CharsetIteratorDerefHelper& _rSource )
- :m_eEncoding( _rSource.m_eEncoding )
- ,m_aIanaName( _rSource.m_aIanaName )
- {
- }
-
- //-------------------------------------------------------------------------
- CharsetIteratorDerefHelper:: CharsetIteratorDerefHelper(const rtl_TextEncoding _eEncoding, const ::rtl::OUString& _rIanaName )
- :m_eEncoding( _eEncoding )
- ,m_aIanaName( _rIanaName )
- {
- }
-
- //-------------------------------------------------------------------------
- CharsetIteratorDerefHelper::CharsetIteratorDerefHelper()
- :m_eEncoding(RTL_TEXTENCODING_DONTKNOW)
- {
- }
-
- //=========================================================================
- //= OCharsetMap::CharsetIterator
- //=========================================================================
- //-------------------------------------------------------------------------
- OCharsetMap::CharsetIterator::CharsetIterator(const OCharsetMap* _pContainer, OCharsetMap::TextEncBag::const_iterator _aPos )
- :m_pContainer( _pContainer )
- ,m_aPos( _aPos )
- {
- OSL_ENSURE( m_pContainer, "OCharsetMap::CharsetIterator::CharsetIterator : invalid container!" );
- }
-
- //-------------------------------------------------------------------------
- OCharsetMap::CharsetIterator::CharsetIterator(const CharsetIterator& _rSource)
- :m_pContainer( _rSource.m_pContainer )
- ,m_aPos( _rSource.m_aPos )
- {
- }
-
- //-------------------------------------------------------------------------
- OCharsetMap::CharsetIterator::~CharsetIterator()
- {
- }
-
- //-------------------------------------------------------------------------
- CharsetIteratorDerefHelper OCharsetMap::CharsetIterator::operator*() const
- {
- OSL_ENSURE( m_aPos != m_pContainer->m_aEncodings.end(), "OCharsetMap::CharsetIterator::operator*: invalid position!");
-
- rtl_TextEncoding eEncoding = *m_aPos;
- ::rtl::OUString sIanaName;
-
- if ( RTL_TEXTENCODING_DONTKNOW != eEncoding )
- { // it's not the virtual "system charset"
- const char* pIanaName = rtl_getMimeCharsetFromTextEncoding( eEncoding );
- OSL_ENSURE( pIanaName, "OCharsetMap::CharsetIterator: invalid mime name!" );
- if ( pIanaName )
- sIanaName = ::rtl::OUString::createFromAscii( pIanaName );
- }
- return CharsetIteratorDerefHelper( eEncoding, sIanaName );
- }
-
- //-------------------------------------------------------------------------
- const OCharsetMap::CharsetIterator& OCharsetMap::CharsetIterator::operator++()
- {
- OSL_ENSURE( m_aPos != m_pContainer->m_aEncodings.end(), "OCharsetMap::CharsetIterator::operator++ : invalid position!" );
- if ( m_aPos != m_pContainer->m_aEncodings.end())
- ++m_aPos;
- return *this;
- }
-
- //-------------------------------------------------------------------------
- const OCharsetMap::CharsetIterator& OCharsetMap::CharsetIterator::operator--()
- {
- OSL_ENSURE( m_aPos != m_pContainer->m_aEncodings.begin(), "OCharsetMap::CharsetIterator::operator-- : invalid position!" );
- if ( m_aPos != m_pContainer->m_aEncodings.begin() )
- --m_aPos;
- return *this;
- }
-
- //-------------------------------------------------------------------------
- bool operator==(const OCharsetMap::CharsetIterator& lhs, const OCharsetMap::CharsetIterator& rhs)
- {
- return ( lhs.m_pContainer == rhs.m_pContainer ) && ( lhs.m_aPos == rhs.m_aPos );
- }
-
-//.........................................................................
-} // namespace dbtools
-//.........................................................................
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */