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"
35 #include "common/Comparators.h"
36 #include "common/Config.h"
37 #include "common/Distance.h"
38 #include "common/Enums.h"
39 #include "common/Exception.h"
41 #include "common/Globals.h"
42 #include "common/LoggedException.h"
43 #include "core/logger/Logger.h"
44 #include "common/Module.h"
46 #include "common/PlatformUtils.h"
47 #include "common/Singleton.h"
48 #include "common/STLUtils.h"
49 #include "common/StringUtils.h"
50 #include "common/TerraLib.h"
52 #include "common/TreeItem.h"
53 #include "common/UnitOfMeasure.h"
55 #include "common/Visitor.h"
61 
62 /*!
63  \defgroup common Common
64 
65  \brief The common module contains the foundation classes and functions for all TerraLib modules.
66 
67  The TerraLib Common Module contains the foundation classes and functions that makes the basic support for other TerraLib modules.
68  It provides portable and cross platform code not focus exclusively in the geo-spatial domain.
69  On the contrary, the helper classes, utilitary functions, generic class templates and generic design pattern classes
70  are domain application neutral and can be used by any application.
71 
72  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
73  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,
74  message logging, shared library management, threading policies and much more.
75 
76  Besides the classes you will find useful routines for: byte swap, hex-encoding/decoding, platform specific routines, auxiliary functions for STL containers.
77 
78  The main classes/concepts in this module are listed here. The namespace associated to the Common module is te::common.
79  To know more about it, see the te::common namespace documentation.
80 */
81 
82 namespace te
83 {
84  /*!
85  \brief Namespace for the Common module of TerraLib.
86  */
87  namespace common
88  {
89  } // end namespace common
90 } // end namesp
91 
92 #endif // __TERRALIB_INTERNAL_COMMON_H
93 
A class that defines the interface of an abstract factory.
A class that defines the interface of an abstract progress viewer.
The root of all hierarchies that can be visited.
A general root class for a visitor hierarchy.
This file contains several utility functions for dealing with Boost containers and algorithms.
Utility functions to swap bytes: double, int and unsigned int.
Several functor types for comparing objects.
A progress viewer implementation for the console.
A given distance has a measurement and a unit-of-measure.
A dictionary for a Factory.
A class that automatically logs the exception message.
This class is designed to manage the log of information in TerraLib.
A class that defines the basic interface of an abstract factory that makes use of parameters to const...
This file is a wrapper around platform specific include files.
A singleton class used to manage tasks progresses and their viewers.
The ProgressTimer is a utility class that can be used to calculate the estimated time to finish a tas...
This file contains several utility functions for dealing with STL containers.
Template support for singleton pattern.
Utility functions for dealing with strings.
This class can be used to inform the progress of a task.
Threading policies that can be applied to TerraLib classes that need some synchronization schema.
A class for representing a unit of measure.
A singleton class for dealing with units-of-measure.
General enumerations.
This class is designed to declare objects to be thrown as exceptions by TerraLib.
An static class with global definitions.
This singleton defines an entry in the Platform for the TerraLib Common Runtime module.
An utility class to control the startup and cleanup of the TerraLib Platform and its resources.
A base class for data organized as a tree.
A generic class for visitors.
TerraLib.
Configuration flags for the TerraLib Common Runtime module.