radarlib  1.4.6
odimh5v20_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_ODIMH5V20_FACTORY_HPP__
28 #define __RADAR_ODIMH5V20_FACTORY_HPP__
29 
30 #include <radarlib/defs.h>
33 
34 namespace OdimH5v20 {
35 
36  /*===========================================================================*/
37  /* ODIM FACTORY */
38  /*===========================================================================*/
39 
49  class RADAR_API OdimFactory
50  {
51  public:
52  OdimFactory();
53  virtual ~OdimFactory();
54 
73  virtual OdimObject* create(const std::string& path);
74 
93  virtual OdimObject* open(const std::string& path);
94 
115  virtual OdimObject* open(const std::string& path, int h5flags);
116 
134  virtual PolarVolume* createPolarVolume(const std::string& path);
135 
153  virtual ImageObject* createImageObject(const std::string& path);
154 
172  virtual CompObject* createCompObject(const std::string& path);
173 
191  virtual XsecObject* createXsecObject(const std::string& path);
192 
211  virtual PolarVolume* openPolarVolume(const std::string& path);
212 
232  virtual PolarVolume* openPolarVolume(const std::string& path, int h5flags);
233 
252  virtual ImageObject* openImageObject(const std::string& path);
253 
273  virtual ImageObject* openImageObject(const std::string& path, int h5flags);
274 
293  virtual CompObject* openCompObject(const std::string& path);
294 
314  virtual CompObject* openCompObject(const std::string& path, int h5flags);
315 
334  virtual XsecObject* openXsecObject(const std::string& path);
335 
355  virtual XsecObject* openXsecObject(const std::string& path, int h5flags);
356 
368  virtual OdimObjectDumper* getDumper();
369 
370  protected:
371  virtual H5::H5File* openOdimFile(const std::string& path, int h5flags, std::string& objtype);
372  virtual PolarVolume* createPolarVolume(H5::H5File* file);
373  virtual ImageObject* createImageObject(H5::H5File* file);
374  virtual CompObject* createCompObject (H5::H5File* file);
375  virtual XsecObject* createXsecObject (H5::H5File* file);
376 
377  };
378 
379  /*===========================================================================*/
380 
381 }
382 
383 #endif
384 
385 
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 
Generic OdimH5 v2.0 object.
Definition: odimh5v20_classes.hpp:94
OdimH5 v2.0 Polar Volume.
Definition: odimh5v20_classes.hpp:845
Internal library macros.
OdimH5 v2.0 XsecObject.
Definition: odimh5v20_classes.hpp:1724
Namespace related to ODIMH5 version 2.0.
Definition: odimh5v20.hpp:46
OdimH5 v2.0 CompObject.
Definition: odimh5v20_classes.hpp:1697
OdimH5 objects factory.
Definition: odimh5v20_factory.hpp:49
OdimH5 v2.0 ImageObject.
Definition: odimh5v20_classes.hpp:1670
Main library classes (generic objects, polar volumes etc.)
OdimH5 object dumper.
Definition: odimh5v20_dump.hpp:51
OdimH5 classes to create OdimH5 objects dumps.