GEOS
ExternalDataSourceBase.hpp
Go to the documentation of this file.
1 /*
2  * ------------------------------------------------------------------------------------------------------------
3  * SPDX-License-Identifier: LGPL-2.1-only
4  *
5  * Copyright (c) 2018-2020 Lawrence Livermore National Security LLC
6  * Copyright (c) 2018-2020 The Board of Trustees of the Leland Stanford Junior University
7  * Copyright (c) 2018-2020 TotalEnergies
8  * Copyright (c) 2019- GEOSX Contributors
9  * All rights reserved
10  *
11  * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details.
12  * ------------------------------------------------------------------------------------------------------------
13  */
14 
19 #ifndef GEOS_MESH_EXTERNALDATASOURCEBASE_HPP
20 #define GEOS_MESH_EXTERNALDATASOURCEBASE_HPP
21 
22 #include "dataRepository/Group.hpp"
24 #include "codingUtilities/Utilities.hpp"
25 #include "common/DataTypes.hpp"
26 
27 
28 namespace geos
29 {
30 
37 {
38 public:
39 
45  explicit ExternalDataSourceBase( string const & name,
46  Group * const parent );
47 
49  virtual void expandObjectCatalogs() override;
50 
53 
60  virtual Group * createChild( string const & childKey, string const & childName ) override;
61 
67 
72  virtual void open() = 0;
73 };
74 
75 }
76 
77 #endif /* GEOS_MESH_EXTERNALDATASOURCEBASE_HPP */
The ExternalDataSourceBase class provides an abstract base class implementation for different mesh ty...
virtual void expandObjectCatalogs() override
This function is used to expand any catalogs in the data structure.
static CatalogInterface::CatalogType & getCatalog()
Accessor for the singleton Catalog object.
virtual Group * createChild(string const &childKey, string const &childName) override
Create a new geometric object (box, plane, etc) as a child of this group.
ExternalDataSourceBase(string const &name, Group *const parent)
Main constructor for ExternalDataSourceBase base class.
virtual void open()=0
This function provides the capability to open an external data repository from another component what...
This class provides the base class/interface for the catalog value objects.
std::unordered_map< std::string, std::unique_ptr< CatalogInterface< BASETYPE, ARGS... > > > CatalogType
This is the type that will be used for the catalog. The catalog is actually instantiated in the BASET...