Storage Engine API
storage_engine_metadata.h
Go to the documentation of this file.
1 
29 #pragma once
30 
31 #include <boost/optional.hpp>
32 #include <memory>
33 #include <string>
34 
35 #include "mongo/base/disallow_copying.h"
36 #include "mongo/base/status.h"
37 #include "mongo/db/jsobj.h"
38 
39 namespace mongo {
40 
49 
50 public:
55  static std::unique_ptr<StorageEngineMetadata> forPath(const std::string& dbpath);
56 
61  static boost::optional<std::string> getStorageEngineForPath(const std::string& dbpath);
62 
67  StorageEngineMetadata(const std::string& dbpath);
68 
69  virtual ~StorageEngineMetadata();
70 
74  const std::string& getStorageEngine() const;
75 
79  const BSONObj& getStorageEngineOptions() const;
80 
84  void setStorageEngine(const std::string& storageEngine);
85 
89  void setStorageEngineOptions(const BSONObj& storageEngineOptions);
90 
94  void reset();
95 
99  Status read();
100 
104  Status write() const;
105 
111  template <typename T>
112  Status validateStorageEngineOption(StringData fieldName,
113  T expectedValue,
114  boost::optional<T> defaultValue = boost::none) const;
115 
116 private:
117  std::string _dbpath;
118  std::string _storageEngine;
120 };
121 
122 } // namespace mongo
StorageEngineMetadata(const std::string &dbpath)
Sets fields to defaults.
Definition: storage_engine_metadata.cpp:110
void setStorageEngineOptions(const BSONObj &storageEngineOptions)
Sets storage engine options in metadata.
Definition: storage_engine_metadata.cpp:133
void setStorageEngine(const std::string &storageEngine)
Sets name of storage engine in metadata.
Definition: storage_engine_metadata.cpp:129
Copyright (C) 2014 MongoDB Inc.
Definition: bson_collection_catalog_entry.cpp:38
Status validateStorageEngineOption(StringData fieldName, T expectedValue, boost::optional< T > defaultValue=boost::none) const
Validates a single field in the storage engine options.
OperationContext Database StringData BSONObj CollectionOptions::ParseKind bool const BSONObj &idIndex Status
Definition: database_impl.cpp:956
Status write() const
Writes metadata to file.
Definition: storage_engine_metadata.cpp:224
std::string _dbpath
Definition: storage_engine_metadata.h:117
const std::string & getStorageEngine() const
Returns name of storage engine in metadata.
Definition: storage_engine_metadata.cpp:121
const BSONObj & getStorageEngineOptions() const
Returns storage engine options in metadata.
Definition: storage_engine_metadata.cpp:125
MONGO_DISALLOW_COPYING(StorageEngineMetadata)
This reads and write the storage engine metadata file &#39;storage.bson&#39; in the data directory (See –dbp...
Definition: storage_engine_metadata.h:47
static std::unique_ptr< StorageEngineMetadata > forPath(const std::string &dbpath)
Returns a metadata object describing the storage engine that backs the data files contained in &#39;dbpat...
Definition: storage_engine_metadata.cpp:82
void reset()
Resets fields to default values.
Definition: storage_engine_metadata.cpp:116
std::string _storageEngine
Definition: storage_engine_metadata.h:118
BSONObj _storageEngineOptions
Definition: storage_engine_metadata.h:119
static boost::optional< std::string > getStorageEngineForPath(const std::string &dbpath)
Returns the name of the storage engine that backs the data files contained in &#39;dbpath&#39;, and none otherwise.
Definition: storage_engine_metadata.cpp:96
Status read()
Reads metadata from &#39;storage.bson&#39; in &#39;dbpath&#39; directory.
Definition: storage_engine_metadata.cpp:137
virtual ~StorageEngineMetadata()
Definition: storage_engine_metadata.cpp:114