radarlib 1.4.6
odimh5v21_factory.hpp
Go to the documentation of this file.
1/*
2 * Radar Library
3 *
4 * Copyright (C) 2009-2010 ARPA-SIM <urpsim@smr.arpa.emr.it>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License along
17 * with this program; if not, write to the Free Software Foundation, Inc.,
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 *
20 * Author: Guido Billi <guidobilli@gmail.com>
21 */
22
27#ifndef __RADAR_ODIMH5V21_FACTORY_HPP__
28#define __RADAR_ODIMH5V21_FACTORY_HPP__
29
30#include <radarlib/defs.h>
33
34namespace OdimH5v21 {
35
36 /*===========================================================================*/
37 /* ODIM FACTORY */
38 /*===========================================================================*/
39
51 class RADAR_API OdimFactory
52 {
53 public:
55 virtual ~OdimFactory();
56
75 virtual OdimObject* create(const std::string& path);
76
95 virtual OdimObject* open(const std::string& path);
96
117 virtual OdimObject* open(const std::string& path, int h5flags);
118
136 virtual PolarVolume* createPolarVolume(const std::string& path);
137
155 virtual ImageObject* createImageObject(const std::string& path);
156
174 virtual CompObject* createCompObject(const std::string& path);
175
193 virtual XsecObject* createXsecObject(const std::string& path);
194
213 virtual PolarVolume* openPolarVolume(const std::string& path);
214
234 virtual PolarVolume* openPolarVolume(const std::string& path, int h5flags);
235
254 virtual ImageObject* openImageObject(const std::string& path);
255
275 virtual ImageObject* openImageObject(const std::string& path, int h5flags);
276
295 virtual CompObject* openCompObject(const std::string& path);
296
316 virtual CompObject* openCompObject(const std::string& path, int h5flags);
317
336 virtual XsecObject* openXsecObject(const std::string& path);
337
357 virtual XsecObject* openXsecObject(const std::string& path, int h5flags);
358
370 virtual OdimObjectDumper* getDumper();
371
372 protected:
373 virtual H5::H5File* openOdimFile(const std::string& path, int h5flags, std::string& objtype);
374 virtual PolarVolume* createPolarVolume(H5::H5File* file);
375 virtual ImageObject* createImageObject(H5::H5File* file);
376 virtual CompObject* createCompObject (H5::H5File* file);
377 virtual XsecObject* createXsecObject (H5::H5File* file);
378
379 };
380
381 /*===========================================================================*/
382
383}
384
385#endif
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
OdimH5 v2.1 CompObject.
Definition: odimh5v21_classes.hpp:1799
OdimH5 v2.1 ImageObject.
Definition: odimh5v21_classes.hpp:1772
Definition: odimh5v21_factory.hpp:52
OdimH5 object dumper.
Definition: odimh5v21_dump.hpp:52
Generic OdimH5 v2.1 object.
Definition: odimh5v21_classes.hpp:96
OdimH5 v2.1 Polar Volume.
Definition: odimh5v21_classes.hpp:882
OdimH5 v2.1 XsecObject.
Definition: odimh5v21_classes.hpp:1826
Internal library macros.
Namespace related to ODIMH5 version 2.1.
Definition: odimh5v21.hpp:46
Main library classes (generic objects, polar volumes etc.)
OdimH5 classes to create OdimH5 objects dumps.