Serializer.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 terralib/process/Serializer.h
22 
23  \brief This class serializes the common data structures from Process Module
24  */
25 
26 #ifndef __TERRALIB_PROCESS_INTERNAL_SERIALIZER_H
27 #define __TERRALIB_PROCESS_INTERNAL_SERIALIZER_H
28 
29  // TerraLib
30 #include "Config.h"
31 
32 // Boost
33 #include <boost/property_tree/ptree.hpp>
34 
35 //STL
36 #include <map>
37 #include <string>
38 
39 namespace te
40 {
41  namespace process
42  {
43  class Connector;
44  class ParameterDescriptor;
45  class ParameterValue;
46  class Process;
47  class Task;
48  class TaskCapabilities;
49  class TaskParameters;
50 
51  /*!
52  \class Serializer
53 
54  \brief This class serializes the common data structures from Process Module
55  */
57  {
58  public:
59 
60  /*!
61  \brief Constructor
62  */
64 
65  /*! \brief Virtual destructor. */
66  virtual ~Serializer();
67 
68  //!< Encodes the 'ParameterDescriptor' into a 'boost::property_tree::ptree' object
69  boost::property_tree::ptree encodeParameterDescriptor(const te::process::ParameterDescriptor& descriptor, bool addHeader) const;
70 
71  //!< Encodes a 'boost::property_tree::ptree' into a 'ParameterDescriptor' object
72  te::process::ParameterDescriptor decodeParameterDescriptor(const boost::property_tree::ptree& ptree) const;
73 
74  //!< Encodes the 'ParameterValue' into a 'boost::property_tree::ptree' object
75  boost::property_tree::ptree encodeParameterValue(const te::process::ParameterValue* descriptor, bool addHeader) const;
76 
77  //!< Encodes a 'boost::property_tree::ptree' into a 'ParameterValue' object
78  te::process::ParameterValue* decodeParameterValue(const boost::property_tree::ptree& ptree) const;
79 
80  //!< Encodes the 'TaskCapabilities' into a 'boost::property_tree::ptree' object
81  boost::property_tree::ptree encodeTaskCapabilities(const te::process::TaskCapabilities* capabilities) const;
82 
83  //!< Encodes a 'boost::property_tree::ptree' into a 'TaskCapabilities' object
84  te::process::TaskCapabilities* decodeTaskCapabilities(const boost::property_tree::ptree& ptree) const;
85 
86  //!< Encodes the 'TaskParameters' into a 'boost::property_tree::ptree' object
87  boost::property_tree::ptree encodeTaskParameters(const te::process::TaskParameters* taskParameters, bool addHeader) const;
88 
89  //!< Encodes a 'boost::property_tree::ptree' into a 'TaskParameters' object
90  te::process::TaskParameters* decodeTaskParameters(const boost::property_tree::ptree& ptree, const te::process::TaskCapabilities* capabilities) const;
91 
92  //!< Encodes the 'Task' into a 'boost::property_tree::ptree' object
93  boost::property_tree::ptree encodeTask(const te::process::Task* task, bool addHeader) const;
94 
95  //!< Encodes a 'boost::property_tree::ptree' into a 'Task' object
96  te::process::Task* decodeTask(const boost::property_tree::ptree& ptree) const;
97 
98  //!< Encodes the 'Connector' into a 'boost::property_tree::ptree' object
99  boost::property_tree::ptree encodeConnector(const te::process::Connector* connector, bool addHeader) const;
100 
101  //!< Encodes a 'boost::property_tree::ptree' into a 'Connector' object
102  te::process::Connector* decodeConnector(const boost::property_tree::ptree& ptree, const std::map<std::string, te::process::Task*>& mapTasks) const;
103 
104  //!< Encodes the 'Process' into a 'boost::property_tree::ptree' object
105  boost::property_tree::ptree encodeProcess(const te::process::Process* process) const;
106 
107  //!< Encodes a 'boost::property_tree::ptree' into a 'Process' object
108  te::process::Process* decodeProcess(const boost::property_tree::ptree& ptree) const;
109 
110  };
111 
112  } // end namespace process
113 } // end namespace te
114 
115 #endif // __TERRALIB_PROCESS_INTERNAL_SERIALIZER_H
te::da::DataSourceCapabilities capabilities
Abstraction that represents a Connector between parameters of a Task.
Definition: Connector.h:48
This class serializes the common data structures from Process Module.
Definition: Serializer.h:57
te::process::ParameterDescriptor decodeParameterDescriptor(const boost::property_tree::ptree &ptree) const
Encodes the 'ParameterValue' into a 'boost::property_tree::ptree' object.
boost::property_tree::ptree encodeTaskCapabilities(const te::process::TaskCapabilities *capabilities) const
Encodes a 'boost::property_tree::ptree' into a 'TaskCapabilities' object.
boost::property_tree::ptree encodeProcess(const te::process::Process *process) const
Encodes a 'boost::property_tree::ptree' into a 'Process' object.
boost::property_tree::ptree encodeParameterValue(const te::process::ParameterValue *descriptor, bool addHeader) const
Encodes a 'boost::property_tree::ptree' into a 'ParameterValue' object.
te::process::Connector * decodeConnector(const boost::property_tree::ptree &ptree, const std::map< std::string, te::process::Task * > &mapTasks) const
Encodes the 'Process' into a 'boost::property_tree::ptree' object.
te::process::TaskParameters * decodeTaskParameters(const boost::property_tree::ptree &ptree, const te::process::TaskCapabilities *capabilities) const
Encodes the 'Task' into a 'boost::property_tree::ptree' object.
Serializer()
Constructor.
boost::property_tree::ptree encodeTaskParameters(const te::process::TaskParameters *taskParameters, bool addHeader) const
Encodes a 'boost::property_tree::ptree' into a 'TaskParameters' object.
te::process::Process * decodeProcess(const boost::property_tree::ptree &ptree) const
te::process::TaskCapabilities * decodeTaskCapabilities(const boost::property_tree::ptree &ptree) const
Encodes the 'TaskParameters' into a 'boost::property_tree::ptree' object.
virtual ~Serializer()
Virtual destructor.
boost::property_tree::ptree encodeConnector(const te::process::Connector *connector, bool addHeader) const
Encodes a 'boost::property_tree::ptree' into a 'Connector' object.
boost::property_tree::ptree encodeParameterDescriptor(const te::process::ParameterDescriptor &descriptor, bool addHeader) const
Encodes a 'boost::property_tree::ptree' into a 'ParameterDescriptor' object.
te::process::Task * decodeTask(const boost::property_tree::ptree &ptree) const
Encodes the 'Connector' into a 'boost::property_tree::ptree' object.
boost::property_tree::ptree encodeTask(const te::process::Task *task, bool addHeader) const
Encodes a 'boost::property_tree::ptree' into a 'Task' object.
te::process::ParameterValue * decodeParameterValue(const boost::property_tree::ptree &ptree) const
Encodes the 'TaskCapabilities' into a 'boost::property_tree::ptree' object.
Represents the capabilities of a task.
This class represents the description of a parameter.
Definition: Task.h:54
TerraLib.
#define TEPROCESSEXPORT
Definition: Config.h:47
Proxy configuration file for TerraView (see terraview_config.h).