Skip to content
Projeler
Gruplar
Parçacıklar
Yardım
Yükleniyor...
Oturum aç / Kaydol
Gezinmeyi değiştir
C
core
Proje
Proje
Ayrıntılar
Etkinlik
Cycle Analytics
Depo (repository)
Depo (repository)
Dosyalar
Kayıtlar (commit)
Dallar (branch)
Etiketler
Katkıda bulunanlar
Grafik
Karşılaştır
Grafikler
Konular (issue)
0
Konular (issue)
0
Liste
Pano
Etiketler
Kilometre Taşları
Birleştirme (merge) Talepleri
0
Birleştirme (merge) Talepleri
0
CI / CD
CI / CD
İş akışları (pipeline)
İşler
Zamanlamalar
Grafikler
Paketler
Paketler
Wiki
Wiki
Parçacıklar
Parçacıklar
Üyeler
Üyeler
Collapse sidebar
Close sidebar
Etkinlik
Grafik
Grafikler
Yeni bir konu (issue) oluştur
İşler
Kayıtlar (commit)
Konu (issue) Panoları
Kenar çubuğunu aç
LibreOffice
core
Commits
d85b7f15
Kaydet (Commit)
d85b7f15
authored
Nis 18, 2012
tarafından
Michael Stahl
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
move tools/table.hxx to binfilter
üst
a26c2ee3
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
0 additions
and
510 deletions
+0
-510
baside2.hxx
basctl/source/basicide/baside2.hxx
+0
-2
Library_tl.mk
tools/Library_tl.mk
+0
-1
Package_inc.mk
tools/Package_inc.mk
+0
-1
table.hxx
tools/inc/tools/table.hxx
+0
-148
table.cxx
tools/source/memtools/table.cxx
+0
-358
No files found.
basctl/source/basicide/baside2.hxx
Dosyayı görüntüle @
d85b7f15
...
...
@@ -57,8 +57,6 @@ class SvxSearchItem;
#include "objdlg.hxx"
#include <set>
#include <tools/table.hxx>
DBG_NAMEEX
(
ModulWindow
)
#define MARKER_NOMARKER 0xFFFF
...
...
tools/Library_tl.mk
Dosyayı görüntüle @
d85b7f15
...
...
@@ -88,7 +88,6 @@ $(eval $(call gb_Library_add_exception_objects,tl,\
tools/source/memtools/contnr \
tools/source/memtools/mempool \
tools/source/memtools/multisel \
tools/source/memtools/table \
tools/source/memtools/unqidx \
tools/source/misc/appendunixshellword \
tools/source/misc/extendapplicationenvironment \
...
...
tools/Package_inc.mk
Dosyayı görüntüle @
d85b7f15
...
...
@@ -83,7 +83,6 @@ $(eval $(call gb_Package_add_file,tools_inc,inc/tools/stream.hxx,tools/stream.hx
$(eval $(call gb_Package_add_file,tools_inc,inc/tools/string.hxx,tools/string.hxx))
$(eval $(call gb_Package_add_file,tools_inc,inc/tools/svborder.hxx,tools/svborder.hxx))
$(eval $(call gb_Package_add_file,tools_inc,inc/tools/svlibrary.hxx,tools/svlibrary.hxx))
$(eval $(call gb_Package_add_file,tools_inc,inc/tools/table.hxx,tools/table.hxx))
$(eval $(call gb_Package_add_file,tools_inc,inc/tools/tempfile.hxx,tools/tempfile.hxx))
$(eval $(call gb_Package_add_file,tools_inc,inc/tools/tenccvt.hxx,tools/tenccvt.hxx))
$(eval $(call gb_Package_add_file,tools_inc,inc/tools/time.hxx,tools/time.hxx))
...
...
tools/inc/tools/table.hxx
deleted
100644 → 0
Dosyayı görüntüle @
a26c2ee3
/* -*- 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 _TOOLS_TABLE_HXX
#define _TOOLS_TABLE_HXX
#include "tools/toolsdllapi.h"
#include <tools/solar.h>
#include <tools/contnr.hxx>
// ---------
// - Table -
// ---------
#define TABLE_ENTRY_NOTFOUND CONTAINER_ENTRY_NOTFOUND
class
TOOLS_DLLPUBLIC
Table
:
private
Container
{
private
:
sal_uIntPtr
nCount
;
TOOLS_DLLPRIVATE
sal_uIntPtr
ImplGetIndex
(
sal_uIntPtr
nKey
,
sal_uIntPtr
*
pIndex
=
NULL
)
const
;
public
:
Table
(
sal_uInt16
nInitSize
=
16
,
sal_uInt16
nReSize
=
16
);
Table
(
const
Table
&
rTable
)
:
Container
(
rTable
)
{
nCount
=
rTable
.
nCount
;
}
sal_Bool
Insert
(
sal_uIntPtr
nKey
,
void
*
p
);
void
*
Remove
(
sal_uIntPtr
nKey
);
void
*
Replace
(
sal_uIntPtr
nKey
,
void
*
p
);
void
*
Get
(
sal_uIntPtr
nKey
)
const
;
void
Clear
()
{
Container
::
Clear
();
nCount
=
0
;
}
sal_uIntPtr
Count
()
const
{
return
(
nCount
);
}
void
*
GetCurObject
()
const
;
sal_uIntPtr
GetCurKey
()
const
{
return
(
sal_uIntPtr
)
Container
::
GetCurObject
();
}
sal_uIntPtr
GetKey
(
const
void
*
p
)
const
;
sal_Bool
IsKeyValid
(
sal_uIntPtr
nKey
)
const
;
void
*
GetObject
(
sal_uIntPtr
nPos
)
const
{
return
Container
::
GetObject
(
(
nPos
*
2
)
+
1
);
}
sal_uIntPtr
GetObjectKey
(
sal_uIntPtr
nPos
)
const
{
return
(
sal_uIntPtr
)
Container
::
GetObject
(
nPos
*
2
);
}
sal_uIntPtr
SearchKey
(
sal_uIntPtr
nKey
,
sal_uIntPtr
*
pPos
=
NULL
)
const
;
void
*
Seek
(
sal_uIntPtr
nKey
);
void
*
First
();
void
*
Last
();
void
*
Next
();
void
*
Prev
();
Table
&
operator
=
(
const
Table
&
rTable
);
sal_Bool
operator
==
(
const
Table
&
rTable
)
const
{
return
Container
::
operator
==
(
rTable
);
}
sal_Bool
operator
!=
(
const
Table
&
rTable
)
const
{
return
Container
::
operator
!=
(
rTable
);
}
};
inline
Table
&
Table
::
operator
=
(
const
Table
&
r
)
{
Container
::
operator
=
(
r
);
nCount
=
r
.
nCount
;
return
*
this
;
}
// -----------------
// - DECLARE_TABLE -
// -----------------
#define DECLARE_TABLE( ClassName, Type ) \
class ClassName : private Table \
{ \
public: \
using Table::Clear; \
using Table::Count; \
using Table::GetCurKey; \
using Table::GetObjectKey; \
using Table::SearchKey; \
using Table::IsKeyValid; \
\
ClassName( sal_uInt16 _nInitSize = 16, \
sal_uInt16 _nReSize = 16 ) : \
Table( _nInitSize, _nReSize ) {} \
ClassName( const ClassName& rClassName ) : \
Table( rClassName ) {} \
\
sal_Bool Insert( sal_uIntPtr nKey, Type p ) \
{ return Table::Insert( nKey, (void*)p ); } \
Type Remove( sal_uIntPtr nKey ) \
{ return (Type)Table::Remove( nKey ); } \
Type Replace( sal_uIntPtr nKey, Type p ) \
{ return (Type)Table::Replace( nKey, (void*)p ); } \
Type Get( sal_uIntPtr nKey ) const \
{ return (Type)Table::Get( nKey ); } \
\
Type GetCurObject() const \
{ return (Type)Table::GetCurObject(); } \
sal_uIntPtr GetKey( const Type p ) const \
{ return Table::GetKey( (const void*)p ); } \
\
Type GetObject( sal_uIntPtr nPos ) const \
{ return (Type)Table::GetObject( nPos ); } \
\
Type Seek( sal_uIntPtr nKey ) \
{ return (Type)Table::Seek( nKey ); } \
Type First() { return (Type)Table::First(); } \
Type Last() { return (Type)Table::Last(); } \
Type Next() { return (Type)Table::Next(); } \
Type Prev() { return (Type)Table::Prev(); } \
\
ClassName& operator =( const ClassName& rClassName ) \
{ Table::operator =( rClassName ); \
return *this; } \
\
sal_Bool operator ==( const ClassName& rTable ) const \
{ return Table::operator ==( rTable ); } \
sal_Bool operator !=( const ClassName& rTable ) const \
{ return Table::operator !=( rTable ); } \
};
#endif // _TOOLS_TABLE_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
tools/source/memtools/table.cxx
deleted
100644 → 0
Dosyayı görüntüle @
a26c2ee3
/* -*- 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.
*
************************************************************************/
#define _TOOLS_TABLE_CXX
// -----------------------------------------------------------------------
#include <tools/debug.hxx>
#include <impcont.hxx>
#include <tools/table.hxx>
// =======================================================================
sal_uIntPtr
Table
::
ImplGetIndex
(
sal_uIntPtr
nKey
,
sal_uIntPtr
*
pIndex
)
const
{
// Abpruefen, ob der erste Key groesser als der Vergleichskey ist
if
(
!
nCount
||
(
nKey
<
(
sal_uIntPtr
)
Container
::
ImpGetObject
(
0
))
)
return
TABLE_ENTRY_NOTFOUND
;
sal_uIntPtr
nLow
;
sal_uIntPtr
nHigh
;
sal_uIntPtr
nMid
;
sal_uIntPtr
nCompareKey
;
void
**
pNodes
=
Container
::
ImpGetOnlyNodes
();
// Binaeres Suchen
nLow
=
0
;
nHigh
=
nCount
-
1
;
if
(
pNodes
)
{
do
{
nMid
=
(
nLow
+
nHigh
)
/
2
;
nCompareKey
=
(
sal_uIntPtr
)
pNodes
[
nMid
*
2
];
if
(
nKey
<
nCompareKey
)
nHigh
=
nMid
-
1
;
else
{
if
(
nKey
>
nCompareKey
)
nLow
=
nMid
+
1
;
else
return
nMid
*
2
;
}
}
while
(
nLow
<=
nHigh
);
}
else
{
do
{
nMid
=
(
nLow
+
nHigh
)
/
2
;
nCompareKey
=
(
sal_uIntPtr
)
Container
::
ImpGetObject
(
nMid
*
2
);
if
(
nKey
<
nCompareKey
)
nHigh
=
nMid
-
1
;
else
{
if
(
nKey
>
nCompareKey
)
nLow
=
nMid
+
1
;
else
return
nMid
*
2
;
}
}
while
(
nLow
<=
nHigh
);
}
if
(
pIndex
)
{
if
(
nKey
>
nCompareKey
)
*
pIndex
=
(
nMid
+
1
)
*
2
;
else
*
pIndex
=
nMid
*
2
;
}
return
TABLE_ENTRY_NOTFOUND
;
}
// =======================================================================
Table
::
Table
(
sal_uInt16
_nInitSize
,
sal_uInt16
_nReSize
)
:
Container
(
CONTAINER_MAXBLOCKSIZE
,
_nInitSize
*
2
,
_nReSize
*
2
)
{
DBG_ASSERT
(
_nInitSize
<=
32767
,
"Table::Table(): InitSize > 32767"
);
DBG_ASSERT
(
_nReSize
<=
32767
,
"Table::Table(): ReSize > 32767"
);
nCount
=
0
;
}
// -----------------------------------------------------------------------
sal_Bool
Table
::
Insert
(
sal_uIntPtr
nKey
,
void
*
p
)
{
// Tabellenelement einsortieren
sal_uIntPtr
i
;
if
(
nCount
)
{
if
(
nCount
<=
24
)
{
sal_uInt16
nTempCount
=
(
sal_uInt16
)
nCount
*
2
;
if
(
void
**
pNodes
=
Container
::
ImpGetOnlyNodes
()
)
{
sal_uInt16
n
=
0
;
sal_uIntPtr
nCompareKey
=
(
sal_uIntPtr
)(
*
pNodes
);
while
(
nKey
>
nCompareKey
)
{
n
+=
2
;
pNodes
+=
2
;
if
(
n
<
nTempCount
)
nCompareKey
=
(
sal_uIntPtr
)(
*
pNodes
);
else
{
nCompareKey
=
0
;
break
;
}
}
// Testen, ob sich der Key schon in der Tabelle befindet
if
(
nKey
==
nCompareKey
)
return
sal_False
;
i
=
n
;
}
else
{
i
=
0
;
if
(
ImplGetIndex
(
nKey
,
&
i
)
!=
TABLE_ENTRY_NOTFOUND
)
return
sal_False
;
}
}
else
{
i
=
0
;
if
(
ImplGetIndex
(
nKey
,
&
i
)
!=
TABLE_ENTRY_NOTFOUND
)
return
sal_False
;
}
}
else
i
=
0
;
// Eintrag einfuegen (Key vor Pointer)
Container
::
Insert
(
(
void
*
)
nKey
,
i
);
Container
::
Insert
(
p
,
i
+
1
);
// Ein neuer Eintrag
nCount
++
;
return
sal_True
;
}
// -----------------------------------------------------------------------
void
*
Table
::
Remove
(
sal_uIntPtr
nKey
)
{
// Index besorgen
sal_uIntPtr
nIndex
=
ImplGetIndex
(
nKey
);
// Testen, ob sich der Key in der Tabelle befindet
if
(
nIndex
==
TABLE_ENTRY_NOTFOUND
)
return
NULL
;
// Itemanzahl erniedrigen
nCount
--
;
// Key entfernen
Container
::
Remove
(
nIndex
);
// Pointer entfernen und zurueckgeben
return
Container
::
Remove
(
nIndex
);
}
// -----------------------------------------------------------------------
void
*
Table
::
Replace
(
sal_uIntPtr
nKey
,
void
*
p
)
{
// Index abfragen
sal_uIntPtr
nIndex
=
ImplGetIndex
(
nKey
);
// Existiert kein Eintrag mit dem Schluessel
if
(
nIndex
==
TABLE_ENTRY_NOTFOUND
)
return
NULL
;
else
return
Container
::
Replace
(
p
,
nIndex
+
1
);
}
// -----------------------------------------------------------------------
void
*
Table
::
Get
(
sal_uIntPtr
nKey
)
const
{
// Index besorgen
sal_uIntPtr
nIndex
=
ImplGetIndex
(
nKey
);
// Testen, ob sich der Key in der Tabelle befindet
if
(
nIndex
==
TABLE_ENTRY_NOTFOUND
)
return
NULL
;
else
return
Container
::
ImpGetObject
(
nIndex
+
1
);
}
// -----------------------------------------------------------------------
void
*
Table
::
GetCurObject
()
const
{
return
Container
::
ImpGetObject
(
Container
::
GetCurPos
()
+
1
);
}
// -----------------------------------------------------------------------
sal_uIntPtr
Table
::
GetKey
(
const
void
*
p
)
const
{
sal_uIntPtr
nIndex
=
0
;
// Solange noch Eintraege Vorhanden sind
while
(
nIndex
<
nCount
)
{
// Stimmt der Pointer ueberein, wird der Key zurueckgegeben
if
(
p
==
Container
::
ImpGetObject
(
(
nIndex
*
2
)
+
1
)
)
return
(
sal_uIntPtr
)
Container
::
ImpGetObject
(
nIndex
*
2
);
nIndex
++
;
}
return
TABLE_ENTRY_NOTFOUND
;
}
// -----------------------------------------------------------------------
sal_Bool
Table
::
IsKeyValid
(
sal_uIntPtr
nKey
)
const
{
return
(
ImplGetIndex
(
nKey
)
!=
TABLE_ENTRY_NOTFOUND
)
?
sal_True
:
sal_False
;
}
// -----------------------------------------------------------------------
sal_uIntPtr
Table
::
SearchKey
(
sal_uIntPtr
nKey
,
sal_uIntPtr
*
pPos
)
const
{
*
pPos
=
0
;
sal_uIntPtr
nPos
=
ImplGetIndex
(
nKey
,
pPos
);
if
(
nPos
!=
TABLE_ENTRY_NOTFOUND
)
{
nPos
/=
2
;
*
pPos
=
nPos
;
}
else
*
pPos
/=
2
;
return
nPos
;
}
// -----------------------------------------------------------------------
void
*
Table
::
Seek
(
sal_uIntPtr
nKey
)
{
// Testen, ob ein Eintrag vorhanden ist
if
(
nCount
)
{
sal_uIntPtr
nIndex
=
ImplGetIndex
(
nKey
);
// Ist Key nicht enthalten
if
(
nIndex
==
TABLE_ENTRY_NOTFOUND
)
return
NULL
;
else
{
// Index setzen
Container
::
Seek
(
nIndex
);
// Pointer zurueckgeben
return
Container
::
ImpGetObject
(
Container
::
GetCurPos
()
+
1
);
}
}
else
return
NULL
;
}
void
*
Table
::
First
()
{
// Testen, ob ein Eintrag vorhanden ist
if
(
nCount
)
{
// Auf ersten Eintag setzen
Container
::
First
();
// Pointer zurueckgeben
return
Container
::
ImpGetObject
(
1
);
}
else
return
NULL
;
}
// -----------------------------------------------------------------------
void
*
Table
::
Last
()
{
// Testen, ob ein Eintrag vorhanden ist
if
(
nCount
)
{
// Last auf letzten Eintrag setzen
void
*
p
=
Container
::
Last
();
Container
::
Prev
();
// Pointer zurueckgeben
return
p
;
}
else
return
NULL
;
}
// -----------------------------------------------------------------------
void
*
Table
::
Next
()
{
// Ueber den Pointer weiterschalten
Container
::
Next
();
// Nachsten Eintag
Container
::
Next
();
// Pointer vom naechsten Key zurueckgeben
return
Container
::
ImpGetObject
(
Container
::
GetCurPos
()
+
1
);
}
// -----------------------------------------------------------------------
void
*
Table
::
Prev
()
{
// Ueber den Pointer weiterschalten
void
*
p
=
Container
::
Prev
();
// Nachsten Eintag
Container
::
Prev
();
// Pointer vom vorherigen Key zurueckgeben
return
p
;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment