Мне было интересно, что было бы лучшим решением для контейнера хранения, который не теряет свое содержимое в течение нескольких раз (запусков) без использования ввода-вывода в файловой системе или внешней базе данных.
Скажем, у меня есть класс foo (), который хранит целые числа. Из main () я хочу вызвать метод, который добавляет целое число, и класс не забывает о своем прежнем содержимом.
//
// Data storage accross different runs
// This should go into the daemon process
//
#include<iostream>
#include<list>
using namespace std;
class foo {
public:
foo(int add): add(add) {}
void store(int i) {
vec.push_back( i + add);
}
private:
list<int> vec;
int add;
};
Основная функция должна проверять уже запущенный демон - если не запускает его.
//
// Main program. Should check whether daemon runs already, if not starts it.
//
void main(int argc, char *argv[]) {
// if (daemon is not running)
// start daemon( some_number )
// call daemon::add( atoi(argv[1]) );
}
Как лучше всего это сделать с общими библиотеками или с процессом-демоном? Программа хранения и вызывающая программа находятся на одном хосте Linux.