strus  0.17
storageInterface.hpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2014 Patrick P. Frey
3  *
4  * This Source Code Form is subject to the terms of the Mozilla Public
5  * License, v. 2.0. If a copy of the MPL was not distributed with this
6  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
7  */
10 #ifndef _STRUS_STORAGE_INTERFACE_HPP_INCLUDED
11 #define _STRUS_STORAGE_INTERFACE_HPP_INCLUDED
12 #include <string>
13 
14 namespace strus {
15 
17 class DatabaseInterface;
19 class StorageClientInterface;
21 class StorageAlterMetaDataTableInterface;
23 class StatisticsProcessorInterface;
25 class StorageDumpInterface;
26 
27 
30 {
31 public:
33  virtual ~StorageInterface(){}
34 
40  const std::string& configsource,
41  const DatabaseInterface* database,
42  const StatisticsProcessorInterface* statisticsProc=0) const=0;
43 
49  virtual bool createStorage(
50  const std::string& configsource,
51  const DatabaseInterface* database) const=0;
52 
58  const std::string& configsource,
59  const DatabaseInterface* database) const=0;
60 
64  {
67  };
68 
72  virtual const char* getConfigDescription( const ConfigType& type) const=0;
73 
76  virtual const char** getConfigParameters( const ConfigType& type) const=0;
77 
84  const std::string& configsource,
85  const DatabaseInterface* database,
86  const std::string& keyprefix) const=0;
87 };
88 
89 }//namespace
90 #endif
91 
Interface of a strus IR storage.
Definition: storageClientInterface.hpp:52
Interface for fetching the dump of a strus IR storage.
Definition: storageDumpInterface.hpp:20
virtual const char ** getConfigParameters(const ConfigType &type) const =0
Get the list of known configuration parameter keys for verification of the configuration by programs ...
Interface to declare changes in the meta data table structure of the storage.
Definition: storageAlterMetaDataTableInterface.hpp:19
Interface to the create and alter a storage for strus.
Definition: storageInterface.hpp:29
virtual StorageDumpInterface * createDump(const std::string &configsource, const DatabaseInterface *database, const std::string &keyprefix) const =0
Create a dump of a storage.
virtual StorageClientInterface * createClient(const std::string &configsource, const DatabaseInterface *database, const StatisticsProcessorInterface *statisticsProc=0) const =0
Creates an client instance of the storage using a defined key value store database.
ConfigType
Enumeration of different type of configurations Needed for getting the correct description of the con...
Definition: storageInterface.hpp:63
virtual StorageAlterMetaDataTableInterface * createAlterMetaDataTable(const std::string &configsource, const DatabaseInterface *database) const =0
Create an interface to alter the meta data table structure.
virtual bool createStorage(const std::string &configsource, const DatabaseInterface *database) const =0
Creates a new storage described with configsource using a defined key value store database...
virtual ~StorageInterface()
Destructor.
Definition: storageInterface.hpp:33
Interface to the create,destroy the key value store database.
Definition: databaseInterface.hpp:22
virtual const char * getConfigDescription(const ConfigType &type) const =0
Gets a configuration description (source string as used by the functions here) createStorage(const st...
Interface for packing/unpacking messages with statistics used for query evaluation.
Definition: statisticsProcessorInterface.hpp:24
Config description for the creation of an instance accessing the repository.
Definition: storageInterface.hpp:65
Config description for the creation of a repository that does not exist yet.
Definition: storageInterface.hpp:66