summaryrefslogtreecommitdiff
path: root/rsc/source/res/rscarray.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'rsc/source/res/rscarray.cxx')
-rw-r--r--rsc/source/res/rscarray.cxx652
1 files changed, 0 insertions, 652 deletions
diff --git a/rsc/source/res/rscarray.cxx b/rsc/source/res/rscarray.cxx
deleted file mode 100644
index 656bcfc7a1..0000000000
--- a/rsc/source/res/rscarray.cxx
+++ /dev/null
@@ -1,652 +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_rsc.hxx"
-/****************** I N C L U D E S **************************************/
-
-// C and C++ Includes.
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-// Programmabhaengige Includes.
-#include <rscconst.hxx>
-#include <rscarray.hxx>
-#include <rscdb.hxx>
-
-/****************** C O D E **********************************************/
-/****************** R s c I n s t N o d e ********************************/
-/*************************************************************************
-|*
-|* RscInstNode::RscInstNode()
-|*
-*************************************************************************/
-RscInstNode::RscInstNode( sal_uInt32 nId )
-{
- nTypeId = nId;
-}
-
-/*************************************************************************
-|*
-|* RscInstNode::~RscInstNode()
-|*
-*************************************************************************/
-RscInstNode::~RscInstNode()
-{
- if( aInst.IsInst() )
- {
- aInst.pClass->Destroy( aInst );
- rtl_freeMemory( aInst.pData );
- }
-}
-
-/*************************************************************************
-|*
-|* RscInstNode::GetId()
-|*
-*************************************************************************/
-sal_uInt32 RscInstNode::GetId() const
-{
- return nTypeId;
-}
-
-/****************** R s c A r r a y *************************************/
-/*************************************************************************
-|*
-|* RscArray::RscArray()
-|*
-*************************************************************************/
-RscArray::RscArray( Atom nId, sal_uInt32 nTypeId, RscTop * pSuper, RscEnum * pTypeCl )
- : RscTop( nId, nTypeId, pSuper )
-{
- pTypeClass = pTypeCl;
- nOffInstData = RscTop::Size();
- nSize = nOffInstData + ALIGNED_SIZE( sizeof( RscArrayInst ) );
-}
-
-/*************************************************************************
-|*
-|* RscArray::~RscArray()
-|*
-*************************************************************************/
-RscArray::~RscArray()
-{
-}
-
-/*************************************************************************
-|*
-|* RscArray::~RscArray()
-|*
-*************************************************************************/
-RSCCLASS_TYPE RscArray::GetClassType() const
-{
- return RSCCLASS_ENUMARRAY;
-}
-
-/*************************************************************************
-|*
-|* RscArray::GetIndexType()
-|*
-*************************************************************************/
-RscTop * RscArray::GetTypeClass() const
-{
- return pTypeClass;
-}
-
-/*************************************************************************
-|*
-|* RscArray::Create()
-|*
-*************************************************************************/
-static RscInstNode * Create( RscInstNode * pNode )
-{
- RscInstNode * pRetNode = NULL;
- RscInstNode * pTmpNode;
-
- if( pNode )
- {
- pRetNode = new RscInstNode( pNode->GetId() );
- pRetNode->aInst = pNode->aInst.pClass->Create( NULL, pNode->aInst );
- if( (pTmpNode = Create( pNode->Left() )) != NULL )
- pRetNode->Insert( pTmpNode );
- if( (pTmpNode = Create( pNode->Right() )) != NULL )
- pRetNode->Insert( pTmpNode );
- }
-
- return pRetNode;
-}
-
-RSCINST RscArray::Create( RSCINST * pInst, const RSCINST & rDflt,
- sal_Bool bOwnClass )
-{
- RSCINST aInst;
- RscArrayInst * pClassData;
-
- if( !pInst )
- {
- aInst.pClass = this;
- aInst.pData = (CLASS_DATA) rtl_allocateMemory( Size() );
- }
- else
- aInst = *pInst;
- if( !bOwnClass && rDflt.IsInst() )
- bOwnClass = rDflt.pClass->InHierarchy( this );
-
- RscTop::Create( &aInst, rDflt, bOwnClass );
-
- pClassData = (RscArrayInst *)(aInst.pData + nOffInstData);
- pClassData->pNode = NULL;
- if( bOwnClass )
- {
- RscArrayInst * pDfltClassData;
-
- pDfltClassData = (RscArrayInst *)(rDflt.pData + nOffInstData);
-
- pClassData->pNode = ::Create( pDfltClassData->pNode );
- }
- return( aInst );
-}
-
-/*************************************************************************
-|*
-|* RscArray::Destroy()
-|*
-|* Beschreibung
-|*
-*************************************************************************/
-static void Destroy( RscInstNode * pNode )
-{
- if( pNode )
- {
- Destroy( pNode->Left() );
- Destroy( pNode->Right() );
- delete pNode;
- }
-}
-
-void RscArray::Destroy( const RSCINST & rInst )
-{
- RscArrayInst * pClassData;
-
- RscTop::Destroy( rInst );
-
- pClassData = (RscArrayInst *)(rInst.pData + nOffInstData);
-
- //Baum rekursiv loeschen
- ::Destroy( pClassData->pNode );
-}
-
-/*************************************************************************
-|*
-|* RscArray::GetValueEle()
-|*
-|* Beschreibung
-|*
-*************************************************************************/
-ERRTYPE RscArray::GetValueEle
-(
- const RSCINST & rInst,
- sal_Int32 lValue,
- RscTop * pCreateClass,
- RSCINST * pGetInst
-)
-{
- RscArrayInst * pClassData;
- RscInstNode * pNode;
-
- pClassData = (RscArrayInst *)(rInst.pData + nOffInstData);
-
- ERRTYPE aError;
-
- Atom nId;
- if( !pTypeClass->GetValueConst( sal_uInt32(lValue), &nId ) )
- { // nicht gefunden
- return ERR_ARRAY_INVALIDINDEX;
- }
-
- if( pClassData->pNode )
- pNode = pClassData->pNode->Search( sal_uInt32(lValue) );
- else
- pNode = NULL;
-
-/*
- if( pNode )
- {
- if( pNode->aInst.pClass->IsDefault( pNode->aInst ) )
- {
- GetSuperClass()->Destroy( pNode->aInst );
- GetSuperClass()->Create( &pNode->aInst, rInst );
- pNode->aInst.pClass->SetToDefault( pNode->aInst );
- }
- }
- else
-*/
- if( !pNode )
- {
- pNode = new RscInstNode( sal_uInt32(lValue) );
- if( pCreateClass && GetSuperClass()->InHierarchy( pCreateClass ) )
- pNode->aInst = pCreateClass->Create( NULL, rInst );
- else
- pNode->aInst = GetSuperClass()->Create( NULL, rInst );
- pNode->aInst.pClass->SetToDefault( pNode->aInst );
- if( pClassData->pNode )
- pClassData->pNode->Insert( pNode );
- else
- pClassData->pNode = pNode;
- }
-
- *pGetInst = pNode->aInst;
- return aError;
-}
-
-/*************************************************************************
-|*
-|* RscArray::GetArrayEle()
-|*
-|* Beschreibung
-|*
-*************************************************************************/
-ERRTYPE RscArray::GetArrayEle
-(
- const RSCINST & rInst,
- Atom nId,
- RscTop * pCreateClass,
- RSCINST * pGetInst
-)
-{
- sal_Int32 lValue;
- if( !pTypeClass->GetConstValue( nId, &lValue ) )
- { // nicht gefunden
- return ERR_ARRAY_INVALIDINDEX;
- }
-
- return GetValueEle( rInst, lValue, pCreateClass, pGetInst );
-}
-
-/*************************************************************************
-|*
-|* RscArray::IsConsistent()
-|*
-*************************************************************************/
-static sal_Bool IsConsistent( RscInstNode * pNode )
-{
- sal_Bool bRet = sal_True;
-
- if( pNode )
- {
- bRet = pNode->aInst.pClass->IsConsistent( pNode->aInst );
- if( !IsConsistent( pNode->Left() ) )
- bRet = sal_False;
- if( !IsConsistent( pNode->Right() ) )
- bRet = sal_False;
- }
- return bRet;
-}
-
-sal_Bool RscArray::IsConsistent( const RSCINST & rInst )
-{
- RscArrayInst * pClassData;
- sal_Bool bRet;
-
- bRet = RscTop::IsConsistent( rInst );
-
- pClassData = (RscArrayInst *)(rInst.pData + nOffInstData);
- if( !::IsConsistent( pClassData->pNode ) )
- bRet = sal_False;
-
- return( bRet );
-}
-
-/*************************************************************************
-|*
-|* RscArray::SetToDefault()
-|*
-*************************************************************************/
-static void SetToDefault( RscInstNode * pNode )
-{
- if( pNode )
- {
- pNode->aInst.pClass->SetToDefault( pNode->aInst );
- SetToDefault( pNode->Left() );
- SetToDefault( pNode->Right() );
- }
-}
-
-void RscArray::SetToDefault( const RSCINST & rInst )
-{
- RscArrayInst * pClassData;
-
- pClassData = (RscArrayInst *)(rInst.pData + nOffInstData);
-
- ::SetToDefault( pClassData->pNode );
-
- RscTop::SetToDefault( rInst );
-}
-
-/*************************************************************************
-|*
-|* RscArray::IsDefault()
-|*
-*************************************************************************/
-static sal_Bool IsDefault( RscInstNode * pNode )
-{
- sal_Bool bRet = sal_True;
-
- if( pNode )
- {
- bRet = pNode->aInst.pClass->IsDefault( pNode->aInst );
- if( bRet )
- bRet = IsDefault( pNode->Left() );
- if( bRet )
- bRet = IsDefault( pNode->Right() );
- }
- return bRet;
-}
-
-sal_Bool RscArray::IsDefault( const RSCINST & rInst )
-{
- RscArrayInst * pClassData;
-
- pClassData = (RscArrayInst *)(rInst.pData + nOffInstData);
-
- sal_Bool bRet = ::IsDefault( pClassData->pNode );
-
- if( bRet )
- bRet = RscTop::IsDefault( rInst );
- return bRet;
-}
-
-/*************************************************************************
-|*
-|* RscArray::IsValueDefault()
-|*
-*************************************************************************/
-static sal_Bool IsValueDefault( RscInstNode * pNode, CLASS_DATA pDef )
-{
- sal_Bool bRet = sal_True;
-
- if( pNode )
- {
- bRet = pNode->aInst.pClass->IsValueDefault( pNode->aInst, pDef );
- if( bRet )
- bRet = IsValueDefault( pNode->Left(), pDef );
- if( bRet )
- bRet = IsValueDefault( pNode->Right(), pDef );
- }
- return bRet;
-}
-
-sal_Bool RscArray::IsValueDefault( const RSCINST & rInst, CLASS_DATA pDef )
-{
- RscArrayInst * pClassData;
- sal_Bool bRet;
-
- bRet = RscTop::IsValueDefault( rInst, pDef );
-
- if( bRet )
- {
- pClassData = (RscArrayInst *)(rInst.pData + nOffInstData);
-
- bRet = ::IsValueDefault( pClassData->pNode, pDef );
- }
- return bRet;
-}
-
-/*************************************************************************
-|* RscArray::WriteSrcHeader()
-|*
-|* Beschreibung
-*************************************************************************/
-void RscArray::WriteSrcHeader( const RSCINST & rInst, FILE * fOutput,
- RscTypCont * pTC, sal_uInt32 nTab,
- const RscId & aId, const char * pVarName )
-{
- RscArrayInst * pClassData;
-
- pClassData = (RscArrayInst *)(rInst.pData + nOffInstData);
-
- if( pTC->IsSrsDefault() )
- { // nur einen Wert schreiben
- RscInstNode * pNode = NULL;
- if( pClassData->pNode )
- {
- std::vector< sal_uInt32 >::const_iterator it;
- for( it = pTC->GetFallbacks().begin(); !pNode && it != pTC->GetFallbacks().end(); ++it )
- pNode = pClassData->pNode->Search( *it );
- }
-
- if( pNode )
- {
- if( pNode->aInst.pClass->IsDefault( pNode->aInst ) )
- fprintf( fOutput, "Default" );
- else
- pNode->aInst.pClass->WriteSrcHeader(
- pNode->aInst, fOutput,
- pTC, nTab, aId, pVarName );
- return;
- }
- }
-
- if( IsDefault( rInst ) )
- fprintf( fOutput, "Default" );
- else
- {
- RSCINST aSuper( GetSuperClass(), rInst.pData );
- aSuper.pClass->WriteSrcHeader( aSuper, fOutput, pTC,
- nTab, aId, pVarName );
- }
- if( !pTC->IsSrsDefault() )
- WriteSrc( rInst, fOutput, pTC, nTab, pVarName );
-}
-
-/*************************************************************************
-|* RscArray::WriteSrc()
-|*
-|* Beschreibung
-*************************************************************************/
-static void WriteSrc( RscInstNode * pNode, FILE * fOutput, RscTypCont * pTC,
- sal_uInt32 nTab, const char * pVarName,
- CLASS_DATA pDfltData, RscConst * pTypeClass )
-{
- if( pNode )
- {
- WriteSrc( pNode->Left(), fOutput, pTC, nTab, pVarName,
- pDfltData, pTypeClass );
- if( !pNode->aInst.pClass->IsValueDefault( pNode->aInst, pDfltData ) )
- {
- fprintf( fOutput, ";\n" );
- for( sal_uInt32 n = 0; n < nTab; n++ )
- fputc( '\t', fOutput );
-
- Atom nIdxId;
- pTypeClass->GetValueConst( pNode->GetId(), &nIdxId );
- fprintf( fOutput, "%s[ %s ] = ", pVarName, pHS->getString( nIdxId ).getStr() );
- pNode->aInst.pClass->WriteSrcHeader( pNode->aInst, fOutput, pTC,
- nTab, RscId(), pVarName );
- }
- WriteSrc( pNode->Right(), fOutput, pTC, nTab, pVarName,
- pDfltData, pTypeClass );
- }
-}
-
-void RscArray::WriteSrcArray( const RSCINST & rInst, FILE * fOutput,
- RscTypCont * pTC, sal_uInt32 nTab,
- const char * pVarName )
-{
- RscArrayInst * pClassData;
-
- pClassData = (RscArrayInst *)(rInst.pData + nOffInstData);
-
- ::WriteSrc( pClassData->pNode, fOutput, pTC, nTab, pVarName,
- rInst.pData, pTypeClass );
-};
-
-void RscArray::WriteSrc( const RSCINST & rInst, FILE * fOutput,
- RscTypCont * pTC, sal_uInt32 nTab,
- const char * pVarName )
-{
- WriteSrcArray( rInst, fOutput, pTC, nTab, pVarName );
-}
-
-/*************************************************************************
-|* RscArray::WriteRc()
-|*
-|* Beschreibung
-*************************************************************************/
-ERRTYPE RscArray::WriteRc( const RSCINST & rInst, RscWriteRc & rMem,
- RscTypCont * pTC, sal_uInt32 nDeep, sal_Bool bExtra )
-{
- ERRTYPE aError;
- RscArrayInst * pClassData;
- RscInstNode * pNode = NULL;
-
- pClassData = (RscArrayInst *)(rInst.pData + nOffInstData);
-
- if( pClassData->pNode )
- {
-#if OSL_DEBUG_LEVEL > 2
- fprintf( stderr, "RscArray::WriteRc: Fallback " );
-#endif
- std::vector< sal_uInt32 >::const_iterator it;
- for( it = pTC->GetFallbacks().begin(); !pNode && it != pTC->GetFallbacks().end(); ++it )
- {
- pNode = pClassData->pNode->Search( *it );
-#if OSL_DEBUG_LEVEL > 2
- fprintf( stderr, " 0x%hx", *it );
-#endif
- }
-#if OSL_DEBUG_LEVEL > 2
- fprintf( stderr, "\n" );
-#endif
- }
-
- if( pNode )
- aError = pNode->aInst.pClass->WriteRc( pNode->aInst, rMem, pTC,
- nDeep, bExtra );
- else
- aError = RscTop::WriteRc( rInst, rMem, pTC, nDeep, bExtra );
-
- return aError;
-}
-
-//========================================================================
-void RscArray::WriteRcAccess
-(
- FILE * fOutput,
- RscTypCont * pTC,
- const char * pName
-)
-{
- GetSuperClass()->WriteRcAccess( fOutput, pTC, pName );
-}
-
-/*************************************************************************
-|*
-|* RscClassArray::RscClassArray()
-|*
-*************************************************************************/
-RscClassArray::RscClassArray( Atom nId, sal_uInt32 nTypeId, RscTop * pSuper,
- RscEnum * pTypeCl )
- : RscArray( nId, nTypeId, pSuper, pTypeCl )
-{
-}
-
-/*************************************************************************
-|*
-|* RscClassArray::~RscClassArray()
-|*
-*************************************************************************/
-RscClassArray::~RscClassArray()
-{
-}
-
-/*************************************************************************
-|*
-|* RscClassArray::WriteSrcHeader()
-|*
-*************************************************************************/
-void RscClassArray::WriteSrcHeader( const RSCINST & rInst, FILE * fOutput,
- RscTypCont * pTC, sal_uInt32 nTab,
- const RscId & aId, const char * pName )
-{
- RscArray::WriteSrcHeader( rInst, fOutput, pTC, nTab, aId, pName );
-}
-
-/*************************************************************************
-|*
-|* RscClassArray::WriteSrc()
-|*
-*************************************************************************/
-void RscClassArray::WriteSrc( const RSCINST & rInst, FILE * fOutput,
- RscTypCont * pTC, sal_uInt32 nTab,
- const char * pVarName )
-{
- RscArray::WriteSrc( rInst, fOutput, pTC, nTab, pVarName );
-}
-
-/*************************************************************************
-|*
-|* RscClassArray::WriteRcHeader()
-|*
-*************************************************************************/
-ERRTYPE RscClassArray::WriteRcHeader( const RSCINST & rInst, RscWriteRc & aMem,
- RscTypCont * pTC, const RscId & aId,
- sal_uInt32 nDeep, sal_Bool bExtra )
-{
- // Eigenen Typ schreiben
- return GetSuperClass()->WriteRcHeader( rInst, aMem, pTC, aId,
- nDeep, bExtra );
-}
-
-/*************************************************************************
-|*
-|* RscLangArray::RscLangArray()
-|*
-*************************************************************************/
-RscLangArray::RscLangArray( Atom nId, sal_uInt32 nTypeId, RscTop * pSuper,
- RscEnum * pTypeCl )
- : RscArray( nId, nTypeId, pSuper, pTypeCl )
-{
-}
-
-/*************************************************************************
-|*
-|* RscLangArray::RscLangArray()
-|*
-*************************************************************************/
-RSCCLASS_TYPE RscLangArray::GetClassType() const
-{
- if( GetSuperClass() )
- return GetSuperClass()->GetClassType();
- else
- return RscArray::GetClassType();
-
-}
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */