common.h
Go to the documentation of this file.
1 /* Copyright (C) 2008 National Institute For Space Research (INPE) - Brazil.
2 
3  This file is part of the TerraLib - a Framework for building GIS enabled applications.
4 
5  TerraLib is free software: you can redistribute it and/or modify
6  it under the terms of the GNU General Public License as published by
7  the Free Software Foundation, either version 3 of the License,
8  or (at your option) any later version.
9 
10  TerraLib is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with TerraLib. See COPYING. If not, write to
17  TerraLib Team at <terralib-team@terralib.org>.
18  */
19 
20 /*!
21  \file common.h
22 
23  \brief This file contains include headers for the TerraLib Common Runtime module.
24  */
25 
26 #ifndef __TERRALIB_INTERNAL_COMMON_H
27 #define __TERRALIB_INTERNAL_COMMON_H
28 
29 // TerraLib
30 #include "common/AbstractFactory.h"
31 #include "common/BaseVisitable.h"
32 #include "common/BaseVisitor.h"
33 #include "common/BoostUtils.h"
34 #include "common/ByteSwapUtils.h"
36 #include "common/Comparators.h"
37 #include "common/Config.h"
38 #include "common/Distance.h"
39 #include "common/Enums.h"
40 #include "common/Exception.h"
42 #include "common/Globals.h"
43 #include "common/HexUtils.h"
44 #include "common/LoggedException.h"
45 #include "common/Logger.h"
46 #include "common/Module.h"
48 #include "common/PlatformUtils.h"
49 #include "common/Singleton.h"
50 #include "common/STLUtils.h"
51 #include "common/StringUtils.h"
52 #include "common/TerraLib.h"
54 #include "common/Translator.h"
55 #include "common/TreeItem.h"
56 #include "common/UnitOfMeasure.h"
58 #include "common/Visitor.h"
59 
60 /*!
61  \defgroup common Common
62 
63  \brief The common module contains the foundation classes and functions for all TerraLib modules.
64 
65  The TerraLib Common Module contains the foundation classes and functions that makes the basic support for other TerraLib modules.
66  It provides portable and cross platform code not focus exclusively in the geo-spatial domain.
67  On the contrary, the helper classes, utilitary functions, generic class templates and generic design pattern classes
68  are domain application neutral and can be used by any application.
69 
70  The TerraLib modules has made use of Boost libraries but some functionalities are not found in Boost, so the common runtime module fills this gap
71  and add some low-level code used by TerraLib applications. You will find in this module classes for: abstract factories, singletons, visitors, support for i18n,
72  message logging, shared library management, threading policies and much more.
73 
74  Besides the classes you will find useful routines for: byte swap, hex-encoding/decoding, platform specific routines, auxiliary functions for STL containers.
75 
76  The main classes/concepts in this module are listed here. The namespace associated to the Common module is te::common.
77  To know more about it, see the te::common namespace documentation.
78 */
79 
80 namespace te
81 {
82  /*!
83  \brief Namespace for the Common module of TerraLib.
84  */
85  namespace common
86  {
87  } // end namespace common
88 } // end namesp
89 
90 #endif // __TERRALIB_INTERNAL_COMMON_H
91 
A given distance has a measurement and a unit-of-measure.
An utility class to control the startup and cleanup of the TerraLib Platform and its resources...
Utility functions to swap bytes: double, int and unsigned int.
A general root class for a visitor hierarchy.
This file is a wrapper around platform specific include files.
A class that defines the basic interface of an abstract factory that makes use of parameters to const...
A singleton class for dealing with units-of-measure.
Configuration flags for the TerraLib Common Runtime module.
This singleton defines an entry in the Platform for the TerraLib Common Runtime module.
A base class for data organized as a tree.
The root of all hierarchies that can be visited.
An static class with global definitions.
A dictionary for a Factory.
Template support for singleton pattern.
URI C++ Library.
A class for representing a unit of measure.
A class that defines the interface of an abstract factory.
Several functor types for comparing objects.
General enumerations.
This file contains several utilities functions for dealing with HEX strings.
Threading policies that can be applied to TerraLib classes that need some synchronization schema...
This file contains several utility functions for dealing with Boost containers and algorithms...
A class that deals with character encoding/decoding.
This class is designed for dealing with multi-language text translation in TerraLib.
This class is designed to manage the log of information in TerraLib.
This class is designed to declare objects to be thrown as exceptions by TerraLib. ...
Utility functions for dealing with strings.
A generic class for visitors.
This file contains several utility functions for dealing with STL containers.
A class that automatically logs the exception message.