Unit
Biblioteca utilitária para facilitar o tratamento de unidades
Loading...
Searching...
No Matches
unitManager.h
Go to the documentation of this file.
1/************************************************************************
2**
3** Copyright (C) 2012 K2FS Sistemas e Projetos Ltd.
4** All rights reserved.
5**
6** This file is part of the "Pdm version 2" library and should not
7** be included in other softwares without written permission of K2
8** Sistemas. It is provided AS IS, with NO WARRANTY OF ANY KIND,
9** INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR
10** A PARTICULAR PURPOSE.
11**
12** Contact information: www.k2sistemas.com.br
13**
14************************************************************************/
15
26#ifndef _UNIT_MANAGER_H_
27#define _UNIT_MANAGER_H_
28
29#include <QStringList>
30#include <QMap>
31#include <QPair>
32#include <QMutex>
33#include <udunits2.h>
34
35#include "unitConfig.h"
36#include "unitConverter.h"
37
39class UNIT_API_EXPORT UnitManager
40{
41public:
43
44 static UnitManager* instance();
45
46 bool init(QString configPath, QString unitsDatabase, QString unitsConfigScript,
47 bool checkUnitDatabase, QString& err);
48
49 const Unit& getUnit(QString name, bool normalize);
50 const UnitConverter& getConverter(const Unit& srcUnit, const Unit& destUnit);
51
52 int numCategories() const;
53 QString categoryName (int category) const;
54 QStringList categorySymbols(int category) const;
55
56private:
58
59 bool initUnitDatabase(QString configPath, QString unitsDatabase, QString& err);
60 bool initCategories (QString configPath, QString unitsConfigScript, QString& err);
61 bool initCategorySiMapping(bool checkDatabase, QString& err);
62
63 void printCategoryList() const;
64 void printCategoryMapping() const;
65
66 ut_system* _unitSystem;
68
71
72#ifdef UNIT_USE_THREADS
74 QMutex _unitSystemMutex;
75#endif
76
81
84};
85
86
87#endif
Classe responsável pela conversão de unidades entre valores numéricos.
Definition unitConverter.h:33
Classe responsável por identificar e agrupar tipos de unidades.
Definition unit.h:42
Classe singleton responsável por gerenciar os tipos de unidades e categorias disponíveis.
Definition unitManager.h:40
QMap< QString, Unit > _unitCache
Cache de unidades já processadas.
Definition unitManager.h:67
ut_system * _unitSystem
Sistema de unidades utilizado.
Definition unitManager.h:66
QList< QPair< QString, QStringList > > _categoryData
Lista armazenando para cada categoria uma tupla contendo seu nome e uma lista de unidades padrão asso...
Definition unitManager.h:80
QMap< QString, int > _categorySiTypes
Mapa associando unidades Si básicas com as categorias cadastradas.
Definition unitManager.h:83
QMap< QPair< QString, QString >, UnitConverter > _convCache
Cache de conversores de unidade.
Definition unitManager.h:70
Declaration of useful configuration definitions.
Definicao da classe UnitConverter.