mirror of
https://github.com/DarkflameUniverse/DarkflameServer.git
synced 2024-11-23 14:07:20 +00:00
56f371216b
There is now an option to utilize shared memory for some CDClient tables by adding `CD_PROVIDER_MEMORY=1` to the CMakeVariables.txt file. Allows masterconfig.ini to specify another run command for the world server, to allow for easier debugging through `valgrind`.
42 lines
1.5 KiB
C++
42 lines
1.5 KiB
C++
#pragma once
|
|
|
|
#include "CDAbstractProvider.h"
|
|
|
|
/**
|
|
* Shared memory provider with CDAbstractSharedMemoryProvider<key, value>
|
|
*
|
|
* Depends on the boost::interprocess library — header only
|
|
*
|
|
* Requires that CD_PROVIDER_MEMORY is defined and CD_PROVIDER_SQLITE is not defined
|
|
*/
|
|
#if defined(CD_PROVIDER_MEMORY) && !defined(CD_PROVIDER_SQLITE)
|
|
|
|
#include "CDAbstractSharedMemoryProvider.h"
|
|
|
|
#define CD_PROVIDER(provider, key, value) CDAbstractSharedMemoryProvider<key, value>* provider; typedef key CD_KEY; typedef value CD_VALUE
|
|
#define NEW_CD_PROVIDER(provider, name, parser, size_calculator, cache) provider = new CDAbstractSharedMemoryProvider<CD_KEY, CD_VALUE>(name, parser, size_calculator, cache)
|
|
|
|
template<typename KeyType, typename MappedType>
|
|
using CDProvider = CDAbstractSharedMemoryProvider<KeyType, MappedType>;
|
|
|
|
#endif
|
|
|
|
/**
|
|
* SQLite provider with CDAbstractSqliteProvider<key, value>
|
|
*
|
|
* No extra dependencies
|
|
*
|
|
* Requires that CD_PROVIDER_SQLITE or CD_PROVIDER_MEMORY is not defined — the default option
|
|
*/
|
|
#if defined(CD_PROVIDER_SQLITE) || !defined(CD_PROVIDER_MEMORY)
|
|
|
|
#include "CDAbstractSqliteProvider.h"
|
|
|
|
#define CD_PROVIDER(provider, key, value) CDAbstractSqliteProvider<key, value>* provider; typedef key CD_KEY; typedef value CD_VALUE
|
|
#define NEW_CD_PROVIDER(provider, name, parser, size_calculator, cache) provider = new CDAbstractSqliteProvider<CD_KEY, CD_VALUE>(name, parser, cache)
|
|
|
|
template<typename KeyType, typename MappedType>
|
|
using CDProvider = CDAbstractSqliteProvider<KeyType, MappedType>;
|
|
|
|
#endif
|