DataSourceInterface.h
1 //##################################################################################################
2 //
3 // Ceetron Desktop Components
4 // Component: UnstructGrid
5 //
6 // --------------------------------------------------------------------------------------------
7 // Copyright (C) 2011, Ceetron AS
8 // This is UNPUBLISHED PROPRIETARY SOURCE CODE of Ceetron AS. The contents of this file may
9 // not be disclosed to third parties, copied or duplicated in any form, in whole or in part,
10 // without the prior written permission of Ceetron AS.
11 //##################################################################################################
12 
13 #pragma once
14 
15 #include "CeeUnstructGrid/Base.h"
16 #include "CeeUnstructGrid/DataSource.h"
17 #include "CeeUnstructGrid/DataStateSpec.h"
18 #include "CeeUnstructGrid/Error.h"
19 #include "CeeUnstructGrid/ResultCalculatorParams.h"
20 
21 class VTDatabase;
22 class VTResultCalculatorRegistry;
23 
24 namespace cee {
25 namespace ug {
26 
27 class ResultCalculatorParams;
28 
29 //==================================================================================================
30 //
31 //
32 //
33 //==================================================================================================
34 class CEE_UG_EXPORT DataSourceInterface : public DataSource
35 {
36 public:
37  DataSourceInterface(int dataSourceId);
38  virtual ~DataSourceInterface();
39 
40  virtual bool open(const Str& filename, Error* error = NULL) = 0;
41  virtual void close() = 0;
42 
43  virtual bool loadState(int stateId, const DataStateSpec& stateSpec, Error* error);
44  virtual void discardState(int stateId);
45  virtual bool loadCustomResultBaseDependencies(int stateId, const DataStateSpec& stateSpec);
46 
47  static bool supportsResultCalculatorPlugins();
48  static bool loadResultCalculatorPlugin(const Str& baseFileName);
49 
50  bool createResultCalculator(const Str& calculatorId, const Str& resultIdString, const Str& initString, Str* errorMessage);
51  bool recreateResultCalculator(const Str& calculatorId, const Str& resultIdString, const Str& initString, Str* errorMessage);
52  bool deleteResultCalculator(const Str& calculatorId, const Str& resultIdString);
53 
54  bool setResultCalculatorParams(const Str& calculatorId, const Str& resultIdString, const ResultCalculatorParams& calcParams);
55  void getResultCalculatorParams(const Str& calculatorId, const Str& resultIdString, ResultCalculatorParams* calcParams) const;
56 
57  Str primaryFilename() const;
58  Str description() const;
59 
60  virtual bool scalarRange(int stateId, int resultId, double* min, double* max);
61  virtual bool vectorRange(int stateId, int resultId, double* min, double* max);
62  virtual bool displacementRange(int stateId, int resultId, double* min, double* max);
63 
64 protected:
65  void updateDirectoryFromDatabase();
66 
67  void internal_setDatabase(VTDatabase* database);
68  static VTResultCalculatorRegistry* internal_resultCalculatorRegistryInstance();
69 
70 private:
71  CEE_DISALLOW_COPY_AND_ASSIGN(DataSourceInterface);
72 };
73 
74 
75 } // namespace ug
76 } // namespace cee
The data source of the model. For instance a file interface or custom built by the user...
Definition: DataSource.h:35
Namespace cee contains all functionality and structures under the Core component. ...
Definition: AppComponent.cpp:26
A general unicode based string class.
Definition: Str.h:28
Parameters for a given result calculator.
Definition: ResultCalculatorParams.h:26
Specification of data to load for a state.
Definition: DataStateSpec.h:31
Error object for simple error management
Definition: Error.h:27
A parent class for interface data sources.
Definition: DataSourceInterface.h:34