summaryrefslogtreecommitdiff
path: root/sc/source/filter/inc/namebuff.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/source/filter/inc/namebuff.hxx')
-rw-r--r--sc/source/filter/inc/namebuff.hxx351
1 files changed, 0 insertions, 351 deletions
diff --git a/sc/source/filter/inc/namebuff.hxx b/sc/source/filter/inc/namebuff.hxx
deleted file mode 100644
index fd3968265..000000000
--- a/sc/source/filter/inc/namebuff.hxx
+++ /dev/null
@@ -1,351 +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.
- *
- ************************************************************************/
-
-#ifndef SC_NAMEBUFF_HXX
-#define SC_NAMEBUFF_HXX
-
-#include <tools/string.hxx>
-#include "compiler.hxx"
-#include "root.hxx"
-#include "xiroot.hxx"
-
-#include "rangenam.hxx"
-#include <boost/unordered_map.hpp>
-#include <list>
-
-class ScDocument;
-class ScTokenArray;
-class NameBuffer;
-
-
-
-
-class StringHashEntry
-{
-private:
- friend class NameBuffer;
- String aString;
- sal_uInt32 nHash;
-
- static sal_uInt32 MakeHashCode( const String& );
-public:
- inline StringHashEntry( const String& );
- inline StringHashEntry( void );
- inline void operator =( const sal_Char* );
- inline void operator =( const String& );
- inline void operator =( const StringHashEntry& );
- inline sal_Bool operator ==( const StringHashEntry& ) const;
-};
-
-
-inline StringHashEntry::StringHashEntry( void )
-{
-}
-
-
-inline StringHashEntry::StringHashEntry( const String& r ) : aString( r )
-{
- nHash = MakeHashCode( r );
-}
-
-
-inline void StringHashEntry::operator =( const sal_Char* p )
-{
- aString.AssignAscii( p );
- nHash = MakeHashCode( aString );
-}
-
-
-inline void StringHashEntry::operator =( const String& r )
-{
- aString = r;
- nHash = MakeHashCode( r );
-}
-
-
-inline void StringHashEntry::operator =( const StringHashEntry& r )
-{
- nHash = r.nHash;
- aString = r.aString;
-}
-
-
-inline sal_Bool StringHashEntry::operator ==( const StringHashEntry& r ) const
-{
- return ( nHash == r.nHash && aString == r.aString );
-}
-
-
-
-class NameBuffer : public ExcRoot
-{
-private:
- sal_uInt16 nBase; // Index-Basis
- std::vector<StringHashEntry*> maHashes;
-
-public:
-
- inline NameBuffer( RootData* );
- inline NameBuffer( RootData*, sal_uInt16 nNewBase );
-
- virtual ~NameBuffer();
- inline const String* Get( sal_uInt16 nIndex ) const;
- inline sal_uInt16 GetLastIndex() const;
- inline void SetBase( sal_uInt16 nNewBase = 0 );
- void operator <<( const String& rNewString );
-};
-
-inline NameBuffer::NameBuffer( RootData* p ) : ExcRoot( p )
-{
- nBase = 0;
-}
-
-
-inline NameBuffer::NameBuffer( RootData* p, sal_uInt16 nNewBase ) : ExcRoot( p )
-{
- nBase = nNewBase;
-}
-
-
-inline const String* NameBuffer::Get ( sal_uInt16 n ) const
-{
- if( n < nBase || n >= maHashes.size() )
- return NULL;
-
- return &(maHashes[n]->aString);
-}
-
-
-inline sal_uInt16 NameBuffer::GetLastIndex () const
-{
- int size = maHashes.size() + nBase;
-
- OSL_ENSURE( size <= 0xFFFF, "*NameBuffer::GetLastIndex(): Ich hab' die Nase voll!" );
-
- return static_cast<sal_uInt16>( size );
-}
-
-
-inline void NameBuffer::SetBase( sal_uInt16 nNewBase )
-{
- nBase = nNewBase;
-}
-
-
-
-
-class ShrfmlaBuffer : public ExcRoot
-{
- struct ScAddressHashFunc : public std::unary_function< const ScAddress &, size_t >
- {
- size_t operator() (const ScAddress &addr) const;
- };
- typedef boost::unordered_map <ScAddress, sal_uInt16, ScAddressHashFunc> ShrfmlaHash;
- typedef std::list <ScRange> ShrfmlaList;
-
- ShrfmlaHash index_hash;
- ShrfmlaList index_list;
- size_t mnCurrIdx;
-
-public:
- ShrfmlaBuffer( RootData* pRD );
- virtual ~ShrfmlaBuffer();
- void Clear();
- void Store( const ScRange& rRange, const ScTokenArray& );
- sal_uInt16 Find (const ScAddress & rAddress ) const;
-
- static String CreateName( const ScRange& );
- };
-
-
-
-
-class RangeNameBufferWK3
-{
-private:
- struct Entry
- {
- StringHashEntry aStrHashEntry;
- ScComplexRefData aScComplexRefDataRel;
- String aScAbsName;
- sal_uInt16 nAbsInd; // == 0 -> noch keine Abs-Name!
- sal_uInt16 nRelInd;
- sal_Bool bSingleRef;
- Entry( const String& rName, const String& rScName, const ScComplexRefData& rCRD ) :
- aStrHashEntry( rName ),
- aScComplexRefDataRel( rCRD ),
- aScAbsName( rScName )
- {
- nAbsInd = 0;
- aScAbsName.AppendAscii( RTL_CONSTASCII_STRINGPARAM( "_ABS" ) );
- }
- };
-
- ScTokenArray* pScTokenArray;
- sal_uInt16 nIntCount;
- std::vector<Entry> maEntries;
-
-public:
- RangeNameBufferWK3( void );
- virtual ~RangeNameBufferWK3();
- void Add( const String& rName, const ScComplexRefData& rCRD );
- inline void Add( const String& rName, const ScRange& aScRange );
- sal_Bool FindRel( const String& rRef, sal_uInt16& rIndex );
- sal_Bool FindAbs( const String& rRef, sal_uInt16& rIndex );
-};
-
-
-inline void RangeNameBufferWK3::Add( const String& rName, const ScRange& aScRange )
-{
- ScComplexRefData aCRD;
- ScSingleRefData* pSRD;
- const ScAddress* pScAddr;
-
- pSRD = &aCRD.Ref1;
- pScAddr = &aScRange.aStart;
- pSRD->SetFlag3D( sal_True );
- pSRD->nCol = pScAddr->Col();
- pSRD->nRow = pScAddr->Row();
- pSRD->nTab = pScAddr->Tab();
-
- // zunaechst ALLE Refs nur absolut
- pSRD->SetColRel( false );
- pSRD->SetRowRel( false );
- pSRD->SetTabRel( false );
-
- pSRD = &aCRD.Ref2;
- pScAddr = &aScRange.aEnd;
- pSRD->SetFlag3D( sal_True );
- pSRD->nCol = pScAddr->Col();
- pSRD->nRow = pScAddr->Row();
- pSRD->nTab = pScAddr->Tab();
-
- // zunaechst ALLE Refs nur absolut
- pSRD->SetColRel( false );
- pSRD->SetRowRel( false );
- pSRD->SetTabRel( false );
-
- Add( rName, aCRD );
-}
-
-
-
-
-class ExtSheetBuffer : public ExcRoot
-{
-private:
- struct Cont
- {
- String aFile;
- String aTab;
- sal_uInt16 nTabNum; // 0xFFFF -> noch nicht angelegt
- // 0xFFFE -> versucht anzulegen, ging aber schief
- // 0xFFFD -> soll im selben Workbook sein, findet's aber nicht
- sal_Bool bSWB;
- sal_Bool bLink;
- Cont( const String& rFilePathAndName, const String& rTabName ) :
- aFile( rFilePathAndName ),
- aTab( rTabName )
- {
- nTabNum = 0xFFFF; // -> Tabelle noch nicht erzeugt
- bSWB = bLink = false;
- }
- Cont( const String& rFilePathAndName, const String& rTabName,
- const sal_Bool bSameWB ) :
- aFile( rFilePathAndName ),
- aTab( rTabName )
- {
- nTabNum = 0xFFFF; // -> Tabelle noch nicht erzeugt
- bSWB = bSameWB;
- bLink = false;
- }
- };
-
- std::vector<Cont> maEntries;
-
-public:
- inline ExtSheetBuffer( RootData* );
-
- sal_Int16 Add( const String& rFilePathAndName,
- const String& rTabName, const sal_Bool bSameWorkbook = false );
-
- sal_Bool GetScTabIndex( sal_uInt16 nExcSheetIndex, sal_uInt16& rIn_LastTab_Out_ScIndex );
- sal_Bool IsLink( const sal_uInt16 nExcSheetIndex ) const;
- sal_Bool GetLink( const sal_uInt16 nExcSheetIndex, String &rAppl, String &rDoc ) const;
-
- void Reset( void );
-};
-
-
-inline ExtSheetBuffer::ExtSheetBuffer( RootData* p ) : ExcRoot( p )
-{
-}
-
-
-
-
-struct ExtName
-{
- String aName;
- sal_uInt32 nStorageId;
- sal_uInt16 nFlags;
-
- inline ExtName( const String& r, sal_uInt16 n ) : aName( r ), nStorageId( 0 ), nFlags( n ) {}
-
- sal_Bool IsDDE( void ) const;
- sal_Bool IsOLE( void ) const;
-};
-
-
-
-
-class ExtNameBuff : protected XclImpRoot
-{
-public:
- explicit ExtNameBuff( const XclImpRoot& rRoot );
-
- void AddDDE( const String& rName, sal_Int16 nRefIdx );
- void AddOLE( const String& rName, sal_Int16 nRefIdx, sal_uInt32 nStorageId );
- void AddName( const String& rName, sal_Int16 nRefIdx );
-
- const ExtName* GetNameByIndex( sal_Int16 nRefIdx, sal_uInt16 nNameIdx ) const;
-
- void Reset();
-
-private:
- typedef ::std::vector< ExtName > ExtNameVec;
- typedef ::std::map< sal_Int16, ExtNameVec > ExtNameMap;
-
- ExtNameMap maExtNames;
-};
-
-
-#endif
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */