GEOS
ExternalDataSourceBase.hpp
Go to the documentation of this file.
1 /*
2  * ------------------------------------------------------------------------------------------------------------
3  * SPDX-License-Identifier: LGPL-2.1-only
4  *
5  * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC
6  * Copyright (c) 2018-2024 TotalEnergies
7  * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University
8  * Copyright (c) 2023-2024 Chevron
9  * Copyright (c) 2019- GEOS/GEOSX Contributors
10  * All rights reserved
11  *
12  * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details.
13  * ------------------------------------------------------------------------------------------------------------
14  */
15 
20 #ifndef GEOS_MESH_EXTERNALDATASOURCEBASE_HPP
21 #define GEOS_MESH_EXTERNALDATASOURCEBASE_HPP
22 
23 #include "dataRepository/Group.hpp"
25 #include "codingUtilities/Utilities.hpp"
26 #include "common/DataTypes.hpp"
27 
28 
29 namespace geos
30 {
31 
38 {
39 public:
40 
46  explicit ExternalDataSourceBase( string const & name,
47  Group * const parent );
48 
50  virtual void expandObjectCatalogs() override;
51 
54 
61  virtual Group * createChild( string const & childKey, string const & childName ) override;
62 
68 
73  virtual void open() = 0;
74 };
75 
76 }
77 
78 #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...