IInfo.hpp
1 #pragma once
2 
3 #include <opals/IModuleBase.hpp>
4 #include <opals/Path.hpp>
5 #include <opals/Vector.hpp>
6 #include <opals/String.hpp>
7 #include <opals/HeaderFeature.hpp>
8 #include <opals/DataSetStats.hpp>
9 
10 #if defined(_MSC_VER) && !defined(OPALS_NO_AUTOLINK)
11  #if defined _DEBUG && !defined OPALS_NO_DEBUG
12  #pragma comment(lib, "opalsInfo_d.lib")
13  #else
14  #pragma comment(lib, "opalsInfo.lib")
15  #endif
16 #endif
17 
18 namespace opals {
19 
20  namespace opts
21  {
22  /// Options of \ref ModuleInfo
23  namespace Info
24  {
25  /// Options of \ref ModuleInfo
26  using Options =
27  IGroup< Names::_, false,
34  >;
35  }
36  }
37 
38  /// Extracts and reports header information of a vector or raster file (ODM, GDAL).
39  /** opalsInfo extracts statistic information (number of points/lines/polygons, the bounding box, attribute information, spatial index details, etc..) from a data set input file. Currently, only ODMs are supported. However, the support of vector files, grid and tin file formats is planned for the future. In general, all information provided in the header of the file format is made available through a generic file statistics object. */
40  /// \see \ref ModuleInfo
41  class OPALS_API IInfo : virtual public IModuleBase
42  {
43 
44  public:
45  static IInfo* New();
46  static IInfo* New( IControlObject &controlObject );
47  static IInfo* New( const IModuleBase &parent );
48  static IInfo* New( const IModuleBase &parent, IControlObject &controlObject );
49 
50  virtual ~IInfo() {}
51 
52  /// \name Access to module-specific options.
53  ///@{
55  virtual Options& opts() = 0;
56  virtual const Options& opts() const = 0;
57  ///@}
58 
59  };
60 
61 };
Leaf that holds a read-only value.
Definition: IOption.hpp:63
Contains the public interface of OPALS.
Definition: AbsValueOrQuantile.hpp:8
Extracts and reports header information of a vector or raster file (ODM, GDAL).
Definition: IInfo.hpp:41
Abstract base class of all opals modules.
Definition: IModuleBase.hpp:13
Interface for retrieving status and progress information from a module run.
Definition: c++_api/inc/opals/IControlObject.hpp:30
IGroup< Names::_, false, ILeaf< Names::inFile, false, Path >, ILeaf< Names::exactComputation, false, bool >, ILeaf< Names::valueFrequency, false, Vector< String > >, ILeaf< Names::statistic, true, DataSetStats >, ILeaf< Names::exportOverview, false, Vector< HeaderFeature > >, ILeaf< Names::multiBand, false, bool > > Options
Options of Module Info.
Definition: IInfo.hpp:34
A group of options.
Definition: IOption.hpp:108