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
a5dece8c
Kaydet (Commit)
a5dece8c
authored
Eyl 25, 2013
tarafından
Miklos Vajna
Kaydeden (comit)
Miklos Vajna
Eyl 25, 2013
Dosyalara gözat
Seçenekler
Dosyalara Gözat
İndir
Eposta Yamaları
Sade Fark
writerfilter: remove dead WW8PieceTableImpl
Change-Id: Id100e3cc13b1d694af40b1b5d789cf90736593fa
üst
8b702a73
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
0 additions
and
528 deletions
+0
-528
Library_writerfilter.mk
writerfilter/Library_writerfilter.mk
+0
-1
WW8PieceTable.hxx
writerfilter/source/doctok/WW8PieceTable.hxx
+0
-169
WW8PieceTableImpl.cxx
writerfilter/source/doctok/WW8PieceTableImpl.cxx
+0
-291
WW8PieceTableImpl.hxx
writerfilter/source/doctok/WW8PieceTableImpl.hxx
+0
-67
No files found.
writerfilter/Library_writerfilter.mk
Dosyayı görüntüle @
a5dece8c
...
@@ -132,7 +132,6 @@ $(eval $(call gb_Library_add_exception_objects,writerfilter,\
...
@@ -132,7 +132,6 @@ $(eval $(call gb_Library_add_exception_objects,writerfilter,\
writerfilter/source/doctok/WW8ListTable \
writerfilter/source/doctok/WW8ListTable \
writerfilter/source/doctok/WW8OutputWithDepth \
writerfilter/source/doctok/WW8OutputWithDepth \
writerfilter/source/doctok/WW8Picture \
writerfilter/source/doctok/WW8Picture \
writerfilter/source/doctok/WW8PieceTableImpl \
writerfilter/source/doctok/WW8PropertySetImpl \
writerfilter/source/doctok/WW8PropertySetImpl \
writerfilter/source/doctok/WW8ResourceModelImpl \
writerfilter/source/doctok/WW8ResourceModelImpl \
writerfilter/source/doctok/WW8StructBase \
writerfilter/source/doctok/WW8StructBase \
...
...
writerfilter/source/doctok/WW8PieceTable.hxx
deleted
100644 → 0
Dosyayı görüntüle @
8b702a73
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#ifndef INCLUDED_WW8_PIECE_TABLE_HXX
#define INCLUDED_WW8_PIECE_TABLE_HXX
#include <sal/types.h>
#include <doctok/WW8Document.hxx>
#include <boost/shared_ptr.hpp>
#include <iostream>
namespace
writerfilter
{
namespace
doctok
{
using
namespace
::
std
;
struct
Cp
;
struct
Fc
;
class
CpAndFc
;
/**
The piece table of a Word document.
The piece table associates character positions (CP) and File
character positions (FC). In a FC based view the piece table
defines intervals of FCs that contain consecutive text.
CPs and FCs can be complex, i.e. the associated text is stored in
bytes. Otherwise the text encoding is UTF-16.
*/
class
WW8PieceTable
{
public
:
virtual
~
WW8PieceTable
()
{}
/**
Shared pointer to piece table
*/
typedef
boost
::
shared_ptr
<
WW8PieceTable
>
Pointer_t
;
/**
Convert CP to FC.
@param aCpIn CP to convert
@return FC associated with CP
*/
virtual
Fc
cp2fc
(
const
Cp
&
aCpIn
)
const
=
0
;
/**
Convert FC to CP.
@param aFcIn FC to convert
@return CP associated with FC
*/
virtual
Cp
fc2cp
(
const
Fc
&
aFcIn
)
const
=
0
;
/**
Check if CP is complex.
@param aCp CP to check
@retval true CP is complex
@retval false else
*/
virtual
bool
isComplex
(
const
Cp
&
aCp
)
const
=
0
;
/**
Check if FC is complex.
@param aFc FC to check
@retval true FC is complex
@retval false else
*/
virtual
bool
isComplex
(
const
Fc
&
aFc
)
const
=
0
;
/**
Return number of entries.
*/
virtual
sal_uInt32
getCount
()
const
=
0
;
/**
Return first CP.
*/
virtual
Cp
getFirstCp
()
const
=
0
;
/**
Return first FC.
*/
virtual
Fc
getFirstFc
()
const
=
0
;
/**
Return last CP.
*/
virtual
Cp
getLastCp
()
const
=
0
;
/**
Return last FC.
*/
virtual
Fc
getLastFc
()
const
=
0
;
/**
Return CP at index.
@param nIndex index of CP to return
*/
virtual
Cp
getCp
(
sal_uInt32
nIndex
)
const
=
0
;
/**
Return FC at index.
@param nIndex index of FC to return
*/
virtual
Fc
getFc
(
sal_uInt32
nIndex
)
const
=
0
;
/**
Create CpAndFc from Cp.
@param rCp the Cp
@return CpAndFc containing rCp and corresponding Fc
*/
virtual
CpAndFc
createCpAndFc
(
const
Cp
&
rCp
,
PropertyType
eType
)
const
=
0
;
/**
Create CpAndFc from Fc.
@param rFc the Fc
@return CpAndFc containing rFc and corresponding Cp
*/
virtual
CpAndFc
createCpAndFc
(
const
Fc
&
rFc
,
PropertyType
eType
)
const
=
0
;
/**
Dump piece table.
@param o stream to dump to
*/
virtual
void
dump
(
ostream
&
o
)
const
=
0
;
};
/**
Dump piece table.
@param o stream to dump to
@param rPieceTable piece table to dump
*/
ostream
&
operator
<<
(
ostream
&
o
,
const
WW8PieceTable
&
rPieceTable
);
}}
#endif // INCLUDED_WW8_PIECE_TABLE_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
writerfilter/source/doctok/WW8PieceTableImpl.cxx
deleted
100644 → 0
Dosyayı görüntüle @
8b702a73
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#include <algorithm>
#include <iterator>
#include <resourcemodel/exceptions.hxx>
#include <WW8PieceTableImpl.hxx>
#include <WW8Clx.hxx>
namespace
writerfilter
{
namespace
doctok
{
using
namespace
::
std
;
ostream
&
operator
<<
(
ostream
&
o
,
const
WW8PieceTable
&
rPieceTable
)
{
rPieceTable
.
dump
(
o
);
return
o
;
}
WW8PieceTableImpl
::
WW8PieceTableImpl
(
WW8Stream
&
rStream
,
sal_uInt32
nOffset
,
sal_uInt32
nCount
)
{
WW8Clx
aClx
(
rStream
,
nOffset
,
nCount
);
sal_uInt32
nPieceCount
=
aClx
.
getPieceCount
();
if
(
nPieceCount
>
0
)
{
for
(
sal_uInt32
n
=
0
;
n
<
nPieceCount
;
n
++
)
{
Cp
aCp
(
aClx
.
getCp
(
n
));
Fc
aFc
(
aClx
.
getFc
(
n
),
aClx
.
isComplexFc
(
n
));
CpAndFc
aCpAndFc
(
aCp
,
aFc
,
PROP_DOC
);
mEntries
.
push_back
(
aCpAndFc
);
}
CpAndFc
aBack
=
mEntries
.
back
();
Cp
aCp
(
aClx
.
getCp
(
aClx
.
getPieceCount
()));
Fc
aFc
(
aBack
.
getFc
()
+
(
aCp
-
aBack
.
getCp
()));
CpAndFc
aCpAndFc
(
aCp
,
aFc
,
PROP_DOC
);
mEntries
.
push_back
(
aCpAndFc
);
}
}
sal_uInt32
WW8PieceTableImpl
::
getCount
()
const
{
return
mEntries
.
size
();
}
WW8PieceTableImpl
::
tEntries
::
const_iterator
WW8PieceTableImpl
::
findCp
(
const
Cp
&
rCp
)
const
{
tEntries
::
const_iterator
aResult
=
mEntries
.
end
();
tEntries
::
const_iterator
aEnd
=
mEntries
.
end
();
for
(
tEntries
::
const_iterator
aIt
=
mEntries
.
begin
();
aIt
!=
aEnd
;
++
aIt
)
{
if
(
aIt
->
getCp
()
<=
rCp
)
{
aResult
=
aIt
;
//break;
}
}
return
aResult
;
}
WW8PieceTableImpl
::
tEntries
::
const_iterator
WW8PieceTableImpl
::
findFc
(
const
Fc
&
rFc
)
const
{
tEntries
::
const_iterator
aResult
=
mEntries
.
end
();
tEntries
::
const_iterator
aEnd
=
mEntries
.
end
();
if
(
mEntries
.
size
()
>
0
)
{
if
(
rFc
<
mEntries
.
begin
()
->
getFc
())
aResult
=
mEntries
.
begin
();
else
{
for
(
tEntries
::
const_iterator
aIt
=
mEntries
.
begin
();
aIt
!=
aEnd
;
++
aIt
)
{
if
(
aIt
->
getFc
()
<=
rFc
)
{
tEntries
::
const_iterator
aItNext
=
aIt
;
++
aItNext
;
if
(
aItNext
!=
aEnd
)
{
sal_uInt32
nOffset
=
rFc
.
get
()
-
aIt
->
getFc
().
get
();
sal_uInt32
nLength
=
aItNext
->
getCp
()
-
aIt
->
getCp
();
if
(
!
aIt
->
isComplex
())
nLength
*=
2
;
if
(
nOffset
<
nLength
)
{
aResult
=
aIt
;
break
;
}
}
}
}
}
}
return
aResult
;
}
Cp
WW8PieceTableImpl
::
getFirstCp
()
const
{
Cp
aResult
;
if
(
getCount
()
>
0
)
aResult
=
getCp
(
0
);
else
throw
ExceptionNotFound
(
"WW8PieceTableImpl::getFirstCp"
);
return
aResult
;
}
Fc
WW8PieceTableImpl
::
getFirstFc
()
const
{
Fc
aResult
;
if
(
getCount
()
>
0
)
aResult
=
getFc
(
0
);
else
throw
ExceptionNotFound
(
" WW8PieceTableImpl::getFirstFc"
);
return
aResult
;
}
Cp
WW8PieceTableImpl
::
getLastCp
()
const
{
Cp
aResult
;
if
(
getCount
()
>
0
)
aResult
=
getCp
(
getCount
()
-
1
);
else
throw
ExceptionNotFound
(
"WW8PieceTableImpl::getLastCp"
);
return
aResult
;
}
Fc
WW8PieceTableImpl
::
getLastFc
()
const
{
Fc
aResult
;
if
(
getCount
()
>
0
)
aResult
=
getFc
(
getCount
()
-
1
);
else
throw
ExceptionNotFound
(
"WW8PieceTableImpl::getLastFc"
);
return
aResult
;
}
Cp
WW8PieceTableImpl
::
getCp
(
sal_uInt32
nIndex
)
const
{
return
mEntries
[
nIndex
].
getCp
();
}
Fc
WW8PieceTableImpl
::
getFc
(
sal_uInt32
nIndex
)
const
{
return
mEntries
[
nIndex
].
getFc
();
}
Cp
WW8PieceTableImpl
::
fc2cp
(
const
Fc
&
rFc
)
const
{
Cp
cpResult
;
if
(
mEntries
.
size
()
>
0
)
{
Fc
aFc
;
if
(
rFc
<
mEntries
.
begin
()
->
getFc
())
aFc
=
mEntries
.
begin
()
->
getFc
();
else
aFc
=
rFc
;
tEntries
::
const_iterator
aIt
=
findFc
(
aFc
);
if
(
aIt
!=
mEntries
.
end
())
{
cpResult
=
aIt
->
getCp
()
+
(
aFc
-
aIt
->
getFc
());
}
else
throw
ExceptionNotFound
(
"WW8PieceTableImpl::fc2cp: "
+
aFc
.
toString
());
}
return
cpResult
;
}
Fc
WW8PieceTableImpl
::
cp2fc
(
const
Cp
&
rCp
)
const
{
Fc
aResult
;
Cp2FcHashMap_t
::
iterator
aItCp
=
mCp2FcCache
.
find
(
rCp
);
if
(
aItCp
==
mCp2FcCache
.
end
())
{
tEntries
::
const_iterator
aIt
=
findCp
(
rCp
);
if
(
aIt
!=
mEntries
.
end
())
{
aResult
=
aIt
->
getFc
()
+
(
rCp
-
aIt
->
getCp
());
mCp2FcCache
[
rCp
]
=
aResult
;
}
else
throw
ExceptionNotFound
(
"WW8PieceTableImpl::cp2fc: "
+
rCp
.
toString
());
}
else
aResult
=
mCp2FcCache
[
rCp
];
return
aResult
;
}
bool
WW8PieceTableImpl
::
isComplex
(
const
Cp
&
rCp
)
const
{
bool
bResult
=
false
;
tEntries
::
const_iterator
aIt
=
findCp
(
rCp
);
if
(
aIt
!=
mEntries
.
end
())
bResult
=
aIt
->
isComplex
();
return
bResult
;
}
bool
WW8PieceTableImpl
::
isComplex
(
const
Fc
&
rFc
)
const
{
bool
bResult
=
false
;
tEntries
::
const_iterator
aIt
=
findFc
(
rFc
);
if
(
aIt
!=
mEntries
.
end
())
bResult
=
aIt
->
isComplex
();
return
bResult
;
}
CpAndFc
WW8PieceTableImpl
::
createCpAndFc
(
const
Cp
&
rCp
,
PropertyType
eType
)
const
{
return
CpAndFc
(
rCp
,
cp2fc
(
rCp
),
eType
);
}
CpAndFc
WW8PieceTableImpl
::
createCpAndFc
(
const
Fc
&
rFc
,
PropertyType
eType
)
const
{
return
CpAndFc
(
fc2cp
(
rFc
),
rFc
,
eType
);
}
void
WW8PieceTableImpl
::
dump
(
ostream
&
o
)
const
{
o
<<
"<piecetable>"
<<
endl
;
copy
(
mEntries
.
begin
(),
mEntries
.
end
(),
ostream_iterator
<
CpAndFc
>
(
o
,
"
\n
"
));
o
<<
"</piecetable>"
<<
endl
;
}
}}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
writerfilter/source/doctok/WW8PieceTableImpl.hxx
deleted
100644 → 0
Dosyayı görüntüle @
8b702a73
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#ifndef INCLUDED_WW8_PIECE_TABLE_IMPL_HXX
#define INCLUDED_WW8_PIECE_TABLE_IMPL_HXX
#include <vector>
#include <WW8CpAndFc.hxx>
#include <WW8PieceTable.hxx>
namespace
writerfilter
{
namespace
doctok
{
using
namespace
::
std
;
class
WW8PieceTableImpl
:
public
WW8PieceTable
{
typedef
std
::
vector
<
CpAndFc
>
tEntries
;
tEntries
mEntries
;
tEntries
::
const_iterator
findCp
(
const
Cp
&
rCp
)
const
;
tEntries
::
const_iterator
findFc
(
const
Fc
&
rFc
)
const
;
mutable
Cp2FcHashMap_t
mCp2FcCache
;
public
:
WW8PieceTableImpl
(
WW8Stream
&
rStream
,
sal_uInt32
nOffset
,
sal_uInt32
nCount
);
virtual
Fc
cp2fc
(
const
Cp
&
aCpIn
)
const
;
virtual
Cp
fc2cp
(
const
Fc
&
aFcIn
)
const
;
virtual
bool
isComplex
(
const
Cp
&
aCp
)
const
;
virtual
bool
isComplex
(
const
Fc
&
aFc
)
const
;
virtual
sal_uInt32
getCount
()
const
;
virtual
Cp
getFirstCp
()
const
;
virtual
Fc
getFirstFc
()
const
;
virtual
Cp
getLastCp
()
const
;
virtual
Fc
getLastFc
()
const
;
virtual
Cp
getCp
(
sal_uInt32
nIndex
)
const
;
virtual
Fc
getFc
(
sal_uInt32
nIndex
)
const
;
virtual
CpAndFc
createCpAndFc
(
const
Cp
&
rCp
,
PropertyType
eType
)
const
;
virtual
CpAndFc
createCpAndFc
(
const
Fc
&
rFc
,
PropertyType
eType
)
const
;
virtual
void
dump
(
ostream
&
o
)
const
;
};
}}
#endif // INCLUDED_WW8_PIECE_TABLE_IMPL_HXX
/* 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