diff options
author | Kohei Yoshida <kohei.yoshida@suse.com> | 2012-02-09 15:12:49 -0500 |
---|---|---|
committer | Kohei Yoshida <kohei.yoshida@suse.com> | 2012-02-09 15:25:09 -0500 |
commit | 2bf0fd735210b961d15f5bccede1bef926b5d824 (patch) | |
tree | 86b4a4db426dc7c7d6761a7e42aaa4929f21cea9 /sc/inc | |
parent | dc261fc0c4e7f4c29b142c53d4d4e65f8ff3a092 (diff) |
Moved ScDPItemData into own files.
Diffstat (limited to 'sc/inc')
-rw-r--r-- | sc/inc/dpglobal.hxx | 78 | ||||
-rw-r--r-- | sc/inc/dpitemdata.hxx | 123 | ||||
-rw-r--r-- | sc/inc/dptablecache.hxx | 1 |
3 files changed, 124 insertions, 78 deletions
diff --git a/sc/inc/dpglobal.hxx b/sc/inc/dpglobal.hxx index 992e17152bd2..c2cbc4507bd0 100644 --- a/sc/inc/dpglobal.hxx +++ b/sc/inc/dpglobal.hxx @@ -32,7 +32,6 @@ #include <algorithm> #include <list> -#include <vector> #include <tools/gen.hxx> #include <global.hxx> @@ -71,83 +70,6 @@ #define PIVOT_FUNC_STD_VARP 0x0400 #define PIVOT_FUNC_AUTO 0x1000 -class SC_DLLPUBLIC ScDPItemData -{ -public: - enum { - MK_VAL = 0x01, - MK_DATA = 0x02, - MK_ERR = 0x04, - MK_DATE = 0x08, - MK_DATEPART = 0x10 - }; - - static bool isDate( sal_uLong nNumType ); - -private: - union - { - sal_uLong mnNumFormat; - sal_Int32 mnDatePart; - }; - - String maString; - double mfValue; - sal_uInt8 mbFlag; - - friend class ScDPCache; -public: - ScDPItemData(); - ScDPItemData(sal_uLong nNF, const String & rS, double fV, sal_uInt8 bF); - ScDPItemData(const String& rS, double fV = 0.0, bool bHV = false, const sal_uLong nNumFormat = 0 , bool bData = true); - ScDPItemData(ScDocument* pDoc, SCCOL nCol, SCROW nRow, SCTAB nDocTab, bool bLabel); - - void SetString( const String& rS ); - bool IsCaseInsEqual(const ScDPItemData& r) const; - - size_t Hash() const; - - // exact equality - bool operator==( const ScDPItemData& r ) const; - // case insensitive equality - static sal_Int32 Compare( const ScDPItemData& rA, const ScDPItemData& rB ); - -public: - bool IsHasData() const ; - bool IsHasErr() const ; - bool IsValue() const; - String GetString() const ; - double GetValue() const ; - bool HasStringData() const ; - bool IsDate() const; - bool HasDatePart() const; - void SetDate( bool b ) ; - - sal_uInt8 GetType() const; -}; - -class SC_DLLPUBLIC ScDPItemDataPool -{ -public: - ScDPItemDataPool(); - ScDPItemDataPool(const ScDPItemDataPool& r); - - virtual ~ScDPItemDataPool(); - virtual const ScDPItemData* getData( sal_Int32 nId ); - virtual sal_Int32 getDataId( const ScDPItemData& aData ); - virtual sal_Int32 insertData( const ScDPItemData& aData ); -protected: - struct DataHashFunc : public std::unary_function< const ScDPItemData &, size_t > - { - size_t operator() (const ScDPItemData &rData) const { return rData.Hash(); } - }; - - typedef ::boost::unordered_multimap< ScDPItemData, sal_Int32, DataHashFunc > DataHash; - - ::std::vector< ScDPItemData > maItems; - DataHash maItemIds; -}; - namespace ScDPGlobal { // common operation diff --git a/sc/inc/dpitemdata.hxx b/sc/inc/dpitemdata.hxx new file mode 100644 index 000000000000..97a2fbb57806 --- /dev/null +++ b/sc/inc/dpitemdata.hxx @@ -0,0 +1,123 @@ +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * Version: MPL 1.1 / GPLv3+ / LGPLv3+ + * + * The contents of this file are subject to the Mozilla Public License Version + * 1.1 (the "License"); you may not use this file except in compliance with + * the License or as specified alternatively below. You may obtain a copy of + * the License at http://www.mozilla.org/MPL/ + * + * Software distributed under the License is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License + * for the specific language governing rights and limitations under the + * License. + * + * Major Contributor(s): + * Copyright (C) 2012 Kohei Yoshida <kohei.yoshida@suse.com> + * + * All Rights Reserved. + * + * For minor contributions see the git repository. + * + * Alternatively, the contents of this file may be used under the terms of + * either the GNU General Public License Version 3 or later (the "GPLv3+"), or + * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"), + * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable + * instead of those above. + */ + +#ifndef __SC_DPITEMDATA_HXX__ +#define __SC_DPITEMDATA_HXX__ + +#include "scdllapi.h" +#include "sal/types.h" +#include "tools/solar.h" +#include "tools/string.hxx" +#include "address.hxx" + +#include <vector> + +#include <boost/unordered_map.hpp> + +class ScDocument; + +class SC_DLLPUBLIC ScDPItemData +{ +public: + enum { + MK_VAL = 0x01, + MK_DATA = 0x02, + MK_ERR = 0x04, + MK_DATE = 0x08, + MK_DATEPART = 0x10 + }; + + static bool isDate( sal_uLong nNumType ); + +private: + union + { + sal_uLong mnNumFormat; + sal_Int32 mnDatePart; + }; + + String maString; + double mfValue; + sal_uInt8 mbFlag; + + friend class ScDPCache; +public: + ScDPItemData(); + ScDPItemData(sal_uLong nNF, const String & rS, double fV, sal_uInt8 bF); + ScDPItemData(const String& rS, double fV = 0.0, bool bHV = false, const sal_uLong nNumFormat = 0 , bool bData = true); + ScDPItemData(ScDocument* pDoc, SCCOL nCol, SCROW nRow, SCTAB nDocTab, bool bLabel); + + void SetString( const String& rS ); + bool IsCaseInsEqual(const ScDPItemData& r) const; + + size_t Hash() const; + + // exact equality + bool operator==( const ScDPItemData& r ) const; + // case insensitive equality + static sal_Int32 Compare( const ScDPItemData& rA, const ScDPItemData& rB ); + +public: + bool IsHasData() const ; + bool IsHasErr() const ; + bool IsValue() const; + String GetString() const ; + double GetValue() const ; + bool HasStringData() const ; + bool IsDate() const; + bool HasDatePart() const; + void SetDate( bool b ) ; + + sal_uInt8 GetType() const; +}; + +class SC_DLLPUBLIC ScDPItemDataPool +{ +public: + ScDPItemDataPool(); + ScDPItemDataPool(const ScDPItemDataPool& r); + + virtual ~ScDPItemDataPool(); + virtual const ScDPItemData* getData( sal_Int32 nId ); + virtual sal_Int32 getDataId( const ScDPItemData& aData ); + virtual sal_Int32 insertData( const ScDPItemData& aData ); +protected: + struct DataHashFunc : public std::unary_function< const ScDPItemData &, size_t > + { + size_t operator() (const ScDPItemData &rData) const { return rData.Hash(); } + }; + + typedef ::boost::unordered_multimap< ScDPItemData, sal_Int32, DataHashFunc > DataHash; + + ::std::vector< ScDPItemData > maItems; + DataHash maItemIds; +}; + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sc/inc/dptablecache.hxx b/sc/inc/dptablecache.hxx index 436aa915ea2c..3238405d012d 100644 --- a/sc/inc/dptablecache.hxx +++ b/sc/inc/dptablecache.hxx @@ -32,6 +32,7 @@ #include "global.hxx" #include <svl/zforlist.hxx> #include "dpglobal.hxx" +#include "dpitemdata.hxx" #include <com/sun/star/sdbc/DataType.hpp> #include <com/sun/star/sdbc/XRow.hpp> |