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

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

Восстановить пароль Регистрация
 
YouDoItWrong
46 / 46 / 7
Регистрация: 29.10.2011
Сообщений: 154
27.11.2013, 00:54     key-value база данных #1
Есть интерфейс к БД:
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* возвращать тоже не хочется).
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gazlan
2861 / 1809 / 272
Регистрация: 27.08.2010
Сообщений: 4,896
Записей в блоге: 1
27.11.2013, 04:08     key-value база данных #2
Цитата Сообщение от YouDoItWrong Посмотреть сообщение
криво, на мой взгляд
Это у вас взгляд кривой. В интерфейсе все правильно.
Tulosba
:)
Эксперт С++
4378 / 3221 / 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.
 Аватар для 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 база данных
Ответ Создать тему
Опции темы

Текущее время: 01:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru