Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
YouDoItWrong
46 / 46 / 7
Регистрация: 29.10.2011
Сообщений: 154
#1

key-value база данных - C++

27.11.2013, 00:54. Просмотров 382. Ответов 4
Метки нет (Все метки)

Есть интерфейс к БД:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Database {
public:
    Database();
    ~Database();
 
    int open(const std::string path, 
        DatabaseOpenMode mode,
        uint64_t hashTableSize,
        uint64_t keySize,
        uint64_t valueSize);
 
    int get(const void * key, void * buffer);
    int put(const void * key, const void * value);
    void close();
private:
    void dbClose(DatabaseInfo * dbInfo);
    DatabaseInfo * m_dbInfo;
};
1) Чем можно заменить void*.
2) get принимает key и буфер, в который будет записано value. Но передавать буфер, это как-то криво, на мой взгляд, что можно с этим сделать (void* возвращать тоже не хочется).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2013, 00:54     key-value база данных
Посмотрите здесь:

База данных в С++. C++
база данных C++
база данных C++
C++ База данных
C++ База данных
C++ Использование псевдопеременных: bd (3,5) = s, где bd - база данных, s - элемент базы данных, тогда с 3 по 5 элементы базы данных заменить на элемент s.
база данных С++ C++
C++ Удалённая база данных - запрос и вывод данных
C++ База данных
база данных C++
ошибка: need 'typename' before 'Dictionary<Key, Value>::Node_key' because 'Dictionary<Key, Value C++
C++ База Данных

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gazlan
3130 / 1905 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
27.11.2013, 04:08     key-value база данных #2
Цитата Сообщение от YouDoItWrong Посмотреть сообщение
криво, на мой взгляд
Это у вас взгляд кривой. В интерфейсе все правильно.
Tulosba
:)
Эксперт С++
4390 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
27.11.2013, 10:55     key-value база данных #3
Цитата Сообщение от YouDoItWrong Посмотреть сообщение
1) Чем можно заменить void*.
Можно char*. Но главное - зачем? void* - это обобщенный указатель, который говорит, что тип данных неизвестен.
Цитата Сообщение от YouDoItWrong Посмотреть сообщение
передавать буфер, это как-то криво
А что бы Вы хотели передавать?
YouDoItWrong
46 / 46 / 7
Регистрация: 29.10.2011
Сообщений: 154
27.11.2013, 12:24  [ТС]     key-value база данных #4
Эм… Я думал, может быть, существует «более красивое решение», чем передавать голый указатель. Ну да ладно, спасибо за ваши ответы.
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
27.11.2013, 12:29     key-value база данных #5
YouDoItWrong, если тип ключа известен, то, как минимум, это убирает половину void*
какие типы данных планируется читать/писать в бд? может ли так получится, что для некоторого типа данных необходимо будет делать дополнительные действия?
всегда есть шаблоны, которые заменят void* на T*
в каком месте будет идти каст после вызова метода get?
Yandex
Объявления
27.11.2013, 12:29     key-value база данных
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru