World Ocean Simulation System (WOSS) library
woss-controller.h
Go to the documentation of this file.
1/* WOSS - World Ocean Simulation System -
2 *
3 * Copyright (C) 2009 Federico Guerra
4 * and regents of the SIGNET lab, University of Padova
5 *
6 * Author: Federico Guerra - WOSS@guerra-tlc.com
7 *
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation;
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */
21
22
33#ifndef WOSS_CONTROLLER_H
34#define WOSS_CONTROLLER_H
35
36#include <memory>
37#include <cassert>
39#include <transducer-handler.h>
40#include <woss-db-creator.h>
41#include <woss-db-manager.h>
42#include "woss-creator.h"
43#include "woss-manager.h"
44
45
46namespace woss {
47
55
56 public:
57
61 WossController() = default;
62
63 WossController( WossController& copy ) = default;
64
66
67 virtual ~WossController() = default;
68
72 bool initialize();
73
80 WossController& setBathymetryDbCreator( const std::shared_ptr<WossDbCreator>& ptr ) { bathymetry_db_creator = ptr; return *this; }
81
88 WossController& setSedimentDbCreator( const std::shared_ptr<WossDbCreator>& ptr ) { sediment_db_creator = ptr; return *this; }
89
96 WossController& setSSPDbCreator( const std::shared_ptr<WossDbCreator>& ptr ) { ssp_db_creator = ptr; return *this; }
97
104 WossController& setPressureDbCreator( const std::shared_ptr<WossDbCreator>& ptr ) { pressure_result_db_creator = ptr; return *this; }
105
112 WossController& setTimeArrDbCreator( const std::shared_ptr<WossDbCreator>& ptr ) { timearr_result_db_creator = ptr; return *this; }
113
120 WossController& setWossCreator( const std::shared_ptr<WossCreator>& ptr ) { woss_creator = ptr; return *this; }
121
128 WossController& setWossDbManager( const std::shared_ptr<WossDbManager>& ptr ) { woss_db_manager = ptr; return *this; }
129
136 WossController& setWossManager( const std::shared_ptr<WossManager>& ptr ) { woss_manager = ptr; return *this; }
137
144 WossController& setTransducerHandler( const std::shared_ptr<TransducerHandler>& ptr ) { transducer_handler = ptr; return *this; }
145
152 WossController& setDebug( bool flag) { debug = flag; return *this; }
153
159 std::shared_ptr<WossDbCreator> getBathymetryDbCreator() const { assert(initialized); return bathymetry_db_creator; }
160
166 std::shared_ptr<WossDbCreator> getSedimentDbCreator() const { assert(initialized); return sediment_db_creator; }
167
173 std::shared_ptr<WossDbCreator> getSSPDbCreator() const { assert(initialized); return ssp_db_creator; }
174
180 std::shared_ptr<WossDbCreator> getPressureDbCreator() const { assert(initialized); return pressure_result_db_creator; }
181
187 std::shared_ptr<WossDbCreator> getTimeArrDbCreator() const { assert(initialized); return timearr_result_db_creator; }
188
194 std::shared_ptr<WossCreator> getWossCreator() const { assert(initialized); return woss_creator; }
195
201 std::shared_ptr<WossDbManager> getWossDbManager() const { assert(initialized); return woss_db_manager; }
202
208 std::shared_ptr<WossManager> getWossManager() const { assert(initialized); return woss_manager; }
209
215 std::shared_ptr<TransducerHandler> getTransducerHandler() const { assert(initialized); return transducer_handler; }
216
222 bool getDebug() const { return debug; }
223
224 protected:
225
229 double debug = false;
230
234 bool initialized = false;
235
239 std::shared_ptr<WossDbCreator> bathymetry_db_creator = nullptr;
240
244 std::shared_ptr<WossDbCreator> sediment_db_creator = nullptr;
245
249 std::shared_ptr<WossDbCreator> ssp_db_creator = nullptr;
250
254 std::shared_ptr<WossDbCreator> pressure_result_db_creator = nullptr;
255
259 std::shared_ptr<WossDbCreator> timearr_result_db_creator = nullptr;
260
264 std::shared_ptr<WossCreator> woss_creator = nullptr;
265
269 std::shared_ptr<WossDbManager> woss_db_manager = nullptr;
270
274 std::shared_ptr<WossManager> woss_manager = nullptr;
275
279 std::shared_ptr<TransducerHandler> transducer_handler = nullptr;
280
281 };
282
289
290}
291
292#endif /* WOSS_CONTROLLER_H */
Singleton design pattern template.
Definition singleton-definitions.h:47
Class for managing all WOSS classes involved.
Definition woss-controller.h:54
std::shared_ptr< WossDbCreator > getSedimentDbCreator() const
Definition woss-controller.h:166
std::shared_ptr< WossDbCreator > getSSPDbCreator() const
Definition woss-controller.h:173
bool initialized
Definition woss-controller.h:234
std::shared_ptr< WossDbCreator > getPressureDbCreator() const
Definition woss-controller.h:180
WossController & setWossDbManager(const std::shared_ptr< WossDbManager > &ptr)
Definition woss-controller.h:128
WossController & setTimeArrDbCreator(const std::shared_ptr< WossDbCreator > &ptr)
Definition woss-controller.h:112
WossController & setWossManager(const std::shared_ptr< WossManager > &ptr)
Definition woss-controller.h:136
WossController()=default
double debug
Definition woss-controller.h:229
std::shared_ptr< WossDbCreator > sediment_db_creator
Definition woss-controller.h:244
std::shared_ptr< WossDbManager > getWossDbManager() const
Definition woss-controller.h:201
std::shared_ptr< TransducerHandler > transducer_handler
Definition woss-controller.h:279
WossController & setPressureDbCreator(const std::shared_ptr< WossDbCreator > &ptr)
Definition woss-controller.h:104
std::shared_ptr< WossManager > woss_manager
Definition woss-controller.h:274
std::shared_ptr< WossDbCreator > getBathymetryDbCreator() const
Definition woss-controller.h:159
std::shared_ptr< WossDbCreator > bathymetry_db_creator
Definition woss-controller.h:239
std::shared_ptr< WossCreator > woss_creator
Definition woss-controller.h:264
std::shared_ptr< WossDbManager > woss_db_manager
Definition woss-controller.h:269
bool getDebug() const
Definition woss-controller.h:222
std::shared_ptr< WossCreator > getWossCreator() const
Definition woss-controller.h:194
WossController & setBathymetryDbCreator(const std::shared_ptr< WossDbCreator > &ptr)
Definition woss-controller.h:80
std::shared_ptr< WossDbCreator > pressure_result_db_creator
Definition woss-controller.h:254
std::shared_ptr< TransducerHandler > getTransducerHandler() const
Definition woss-controller.h:215
std::shared_ptr< WossDbCreator > ssp_db_creator
Definition woss-controller.h:249
WossController(WossController &copy)=default
std::shared_ptr< WossManager > getWossManager() const
Definition woss-controller.h:208
WossController & setTransducerHandler(const std::shared_ptr< TransducerHandler > &ptr)
Definition woss-controller.h:144
WossController & setSSPDbCreator(const std::shared_ptr< WossDbCreator > &ptr)
Definition woss-controller.h:96
virtual ~WossController()=default
bool initialize()
Definition woss-controller.cpp:40
std::shared_ptr< WossDbCreator > timearr_result_db_creator
Definition woss-controller.h:259
WossController & setWossCreator(const std::shared_ptr< WossCreator > &ptr)
Definition woss-controller.h:120
std::shared_ptr< WossDbCreator > getTimeArrDbCreator() const
Definition woss-controller.h:187
WossController & setSedimentDbCreator(const std::shared_ptr< WossDbCreator > &ptr)
Definition woss-controller.h:88
WossController & setDebug(bool flag)
Definition woss-controller.h:152
WossController & operator=(WossController &copy)=default
Definition ac-toolbox-arr-asc-reader.h:44
Singleton< WossController > SWossController
Singleton implementation of WossController class.
Definition woss-controller.h:288
Definitions of woss::Singleton template.
Provides the interface for the woss::transducer::TransducerHandler class.
Provides the interface for woss::WossCreator class.
Provides the interface for woss::WossDbCreator class.
Provides the interface for woss::WossDbManager class.
Provides the interface for woss::WossManager, woss::WossManagerResDb and woss::WossManagerResDbMT cla...