SequenceLoaderStrategy.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 Lesser 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 Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser 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 SequenceLoaderStrategy.h
22 
23  \brief This class implements the main functions necessary to
24  save and load the graph data and metadata information
25  using as strategy a "order by" to create a sequence
26  of objects.
27 */
28 
29 #ifndef __TERRALIB_GRAPH_INTERNAL_SEQUENCELOADERSTRATEGY_H
30 #define __TERRALIB_GRAPH_INTERNAL_SEQUENCELOADERSTRATEGY_H
31 
32 // Terralib Includes
33 #include "../Config.h"
34 #include "../Enums.h"
36 
37 // STL Includes
38 #include <string>
39 
40 namespace te
41 {
42  // Forward declarations
43  namespace da
44  {
45  class DataSet;
46  }
47 
48  namespace graph
49  {
50  //forward declarations
51  class AbstractGraph;
52  class GraphCache;
53  class GraphData;
54  class GraphMetadata;
55 
56  /*!
57  \class SequenceLoaderStrategy
58 
59  \brief This class implements the main functions necessary to
60  save and load the graph data and metadata information
61  using as strategy a "order by" to create a sequence
62  of objects.
63 
64  \sa AbstractGraphLoaderStrategy
65  */
66 
68  {
69  public:
70 
71  /*! \brief Default constructor. */
73 
74  /*! \brief Default destructor. */
75  virtual ~SequenceLoaderStrategy();
76 
77  /** @name Database Box Graph Loader Strategy Methods
78  * Method used to manager a graph data
79  */
80  //@{
81 
82  /*!
83  \brief Functio used to load a group of vertex elements given a base element
84 
85  \param vertexId Attribute used to identify the base element
86 
87  \param g Pointer to a graph, parent of this element
88 
89  \param gc This is a optional attribute, if present the cache will be check if the already been loaded
90 
91  */
92  virtual void loadDataByVertexId(int vertexId, te::graph::AbstractGraph* g, te::graph::GraphCache* gc = 0);
93 
94  /*!
95  \brief Functio used to load a group of edges elements given a base element
96 
97  \param edgeId Attribute used to identify the base element
98 
99  \param g Pointer to a graph, parent of this element
100 
101  \param gc This is a optional attribute, if present the cache will be check if the already been loaded
102 
103  */
104  virtual void loadDataByEdgeId(int edgeId, te::graph::AbstractGraph* g, te::graph::GraphCache* gc = 0);
105 
106  //@}
107  };
108  } // end namespace graph
109 } // end namespace te
110 
111 #endif // __TERRALIB_GRAPH_INTERNAL_SEQUENCELOADERSTRATEGY_H
#define TEGRAPHEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:178
Abstract class used to define the main functions of graph struct. All graph implementations must used...
Definition: AbstractGraph.h:55
URI C++ Library.
This class define the main functions necessary to save and load the graph data and metadata informati...
Class used to manager the graph data elements. This class uses a cache policy to control the elements...
Definition: GraphCache.h:60
This class implements the main functions necessary to save and load the graph data and metadata infor...
This class define the main functions necessary to save and load the graph data and metadata informati...
Class used to define the graph metadata informations.
Definition: GraphMetadata.h:56