Kaydet (Commit) 9b706a5e authored tarafından Miklos Vajna's avatar Miklos Vajna Kaydeden (comit) Miklos Vajna

writerfilter: remove dead WW8BinTable

Change-Id: I3ecbcabd0b379ff520346a163e0eea7bc0d2f8f9
üst a5dece8c
...@@ -123,7 +123,6 @@ $(eval $(call gb_Library_add_exception_objects,writerfilter,\ ...@@ -123,7 +123,6 @@ $(eval $(call gb_Library_add_exception_objects,writerfilter,\
writerfilter/source/doctok/Dff \ writerfilter/source/doctok/Dff \
writerfilter/source/doctok/DffImpl \ writerfilter/source/doctok/DffImpl \
writerfilter/source/doctok/WW8Annotation \ writerfilter/source/doctok/WW8Annotation \
writerfilter/source/doctok/WW8BinTableImpl \
writerfilter/source/doctok/WW8Clx \ writerfilter/source/doctok/WW8Clx \
writerfilter/source/doctok/WW8CpAndFc \ writerfilter/source/doctok/WW8CpAndFc \
writerfilter/source/doctok/WW8FKPImpl \ writerfilter/source/doctok/WW8FKPImpl \
......
/* -*- 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_BIN_TABLE_HXX
#define INCLUDED_WW8_BIN_TABLE_HXX
#include <boost/shared_ptr.hpp>
#include <string>
#include <WW8FKP.hxx>
namespace writerfilter {
namespace doctok
{
/**
A bintable.
Word uses bintables to associate FC ranges with FKPs. A bintable
has a list of FCs. At each FC a range begins. The length of the
range is given by the distance of the according CPs.
*/
class WW8BinTable
{
public:
virtual ~WW8BinTable() {};
/**
Shared pointer to a bintable.
*/
typedef boost::shared_ptr<WW8BinTable> Pointer_t;
/**
Return count of entries.
*/
virtual sal_uInt32 getEntryCount() const = 0;
/**
Return FC from bintable.
@param nIndex index in bintable to return FC from
*/
virtual Fc getFc(sal_uInt32 nIndex) const = 0;
/**
Return page number.
@param nIndex index in bintable to return page number from
*/
virtual sal_uInt32 getPageNumber(sal_uInt32 nIndex) const = 0;
/**
Return page number associated with FC.
@param rFc FC to return page number for
*/
virtual sal_uInt32 getPageNumber(const Fc & rFc) const = 0;
/**
Return string representation of bintable.
*/
virtual string toString() const = 0;
};
}}
#endif // INCLUDED_WW8_BIN_TABLE_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- 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 "WW8BinTableImpl.hxx"
namespace writerfilter {
namespace doctok
{
using namespace ::std;
void PageNumber::dump(OutputWithDepth<string> & /*output*/) const
{
}
sal_uInt32 WW8BinTableImpl::getPageNumber(const Fc & rFc) const
{
sal_uInt32 nResult = 0;
if (mPageMap.find(rFc) == mPageMap.end())
{
sal_uInt32 left = 0;
sal_uInt32 right = getEntryCount();
while (right - left > 1)
{
sal_uInt32 middle = (right + left) / 2;
Fc aFc = getFc(middle);
if (rFc < aFc)
right = middle;
else
left = middle;
}
nResult = getPageNumber(left);
mPageMap[rFc] = nResult;
}
else
nResult = mPageMap[rFc];
return nResult;
}
string WW8BinTableImpl::toString() const
{
string aResult;
char sBuffer[255];
aResult += "(";
for (sal_uInt32 n = 0; n < getEntryCount(); n++)
{
if (n > 0)
aResult += ", ";
snprintf(sBuffer, 255, "%" SAL_PRIxUINT32, getFc(n).get());
aResult += sBuffer;
aResult += "->";
snprintf(sBuffer, 255, "%" SAL_PRIxUINT32, getPageNumber(n));
aResult += sBuffer;
}
aResult += ")";
return aResult;
}
}}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- 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_BIN_TABLE_IMPL_HXX
#define INCLUDED_WW8_BIN_TABLE_IMPL_HXX
#include <istream>
#include <WW8BinTable.hxx>
#include <PLCF.hxx>
#include <boost/unordered_map.hpp>
namespace writerfilter {
namespace doctok
{
using namespace ::std;
/**
A number of a FKP.
*/
class PageNumber
{
/// the page number
sal_uInt32 mnPageNumber;
public:
/// Pointer to a page number
typedef boost::shared_ptr<PageNumber> Pointer_t;
/// get size of a page number
static size_t getSize() { return 4; }
PageNumber(WW8StructBase::Sequence & rSeq, sal_uInt32 nOffset,
sal_uInt32 /*nCount*/)
: mnPageNumber(getU32(rSeq, nOffset))
{
}
virtual ~PageNumber()
{
}
/// Return the page number
sal_uInt32 get() const { return mnPageNumber; }
virtual void dump(OutputWithDepth<string> & out) const;
};
/**
Implementation class for a binary table
*/
class WW8BinTableImpl : public WW8BinTable
{
/// PLCF containing the numbers of the FKPs of the binary table
PLCF<PageNumber> mData;
mutable boost::unordered_map<Fc, sal_uInt32, FcHash> mPageMap;
public:
WW8BinTableImpl(WW8Stream & rStream, sal_uInt32 nOffset,
sal_uInt32 nCount)
: mData(rStream, nOffset, nCount)
{
}
virtual sal_uInt32 getEntryCount() const
{ return mData.getEntryCount(); }
virtual Fc getFc(sal_uInt32 nIndex) const
{ return mData.getFc(nIndex); }
virtual sal_uInt32 getPageNumber(sal_uInt32 nIndex) const
{ return mData.getEntry(nIndex)->get(); }
virtual sal_uInt32 getPageNumber(const Fc & rFc) const;
virtual string toString() const;
};
}}
#endif // INCLUDED_WW8_BIN_TABLE_IMPL_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment