office-gobmx/sc/inc/typedstrdata.hxx
Noel Grandin cb53cc2a92 tdf#133603 reduce some ref-counting during XLSX save
Change-Id: I02ed854ba57c7f513205f65ec84cb4e08d3b068f
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131728
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2022-03-18 10:13:18 +01:00

86 lines
2.3 KiB
C++

/* -*- 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/.
*/
#pragma once
#include <rtl/ustring.hxx>
#include <set>
class ScTypedStrData
{
public:
enum StringType {
Value,
MRU,
Standard,
Name,
DbName,
Header
};
ScTypedStrData(
OUString&& rStr, double fVal = 0.0, double fRVal = 0.0, StringType nType = Standard, bool bDate = false ) :
maStrValue(std::move(rStr)),
mfValue(fVal),
mfRoundedValue(fRVal),
meStrType(nType),
mbIsDate( bDate ) {}
ScTypedStrData( const OUString& rStr, double fVal = 0.0, double fRVal = 0.0, StringType eType = Standard,
bool bDate = false );
bool IsDate() const { return mbIsDate;}
const OUString& GetString() const { return maStrValue;}
StringType GetStringType() const { return meStrType;}
double GetValue() const { return mfValue; }
double GetRoundedValue() const { return mfRoundedValue; }
struct LessCaseSensitive
{
bool operator() (const ScTypedStrData& left, const ScTypedStrData& right) const;
};
struct LessCaseInsensitive
{
bool operator() (const ScTypedStrData& left, const ScTypedStrData& right) const;
};
struct EqualCaseSensitive
{
bool operator() (const ScTypedStrData& left, const ScTypedStrData& right) const;
};
struct EqualCaseInsensitive
{
bool operator() (const ScTypedStrData& left, const ScTypedStrData& right) const;
};
bool operator< (const ScTypedStrData& r) const;
private:
OUString maStrValue;
double mfValue;
double mfRoundedValue; // rounded value by format code
StringType meStrType;
bool mbIsDate;
};
class FindTypedStrData
{
ScTypedStrData maVal;
bool mbCaseSens;
public:
FindTypedStrData(const ScTypedStrData& rVal, bool bCaseSens);
bool operator() (const ScTypedStrData& r) const;
};
typedef std::set<ScTypedStrData, ScTypedStrData::LessCaseSensitive> ScTypedCaseStrSet;
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */