LMDBAL 0.6.0
LMDB (Lightning Memory-Mapped Database Manager) Abstraction Layer
|
Everything begins with a data base represented by the class LMDBAL::Base. It repesents a collection of key-value storages that are going to be stored in a sigle data base directory. To create a LMDBAL::Base you need to pick up a name of a directory that is going to be created on your machine.
LMDBAL::Base creates or opens existing directory with the given name in the location acquired with QStandardPaths::writableLocation(QStandardPaths::CacheLocation) so, the file system destination of your data depends on the QCoreApplication configuration of your app.
After you have created a LMDBAL::Base you probably want to obtain storage handlers. Now there are only two available types of them: LMDBAL::Storage and LMDBAL::Cache. The only difference between them is that LMDBAL::Cache additionally stores elements in a std::map to speed up the access.
You can obtain handlers by calling LMDBAL::Base::addStorage() or LMDBAL::Base::addCache(). Note that the handlers still belong to the LMDBAL::Base and it's his responsibility to destroy them. You are not obliged to save those handlers, you can obtain them at any time later using methods LMDBAL::Base::getStorage() or LMDBAL::Base::getCache() calling them with the same template types and names.
After you have added all the storages you wanted it's time to open the data base with LMDBAL::Base::open(). At this point you are not allowed to add any more storages, otherwise LMDBAL::Opened exception will be thrown. It's currently the limitation of this little library and I might solve it in the future. Database will throw no exception if you will try to close the closed LMDBAL::Base or open again already opened one. Also it will automatically close itself if you'll try to destoroy onpened LMDBAL::Base.
To discover how to store read and modify data take a look at LMDBAL::Storage and LMDBAL::Cache classes.