Ai
1 Star 0 Fork 0

hantaohuang/php-rocksdb

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
rocksdb_snapshot.cc 1.83 KB
一键复制 编辑 原始数据 按行查看 历史
哇咔咔 提交于 2020-04-29 18:32 +08:00 . improve: add zend_object_alloc
/* rocksdb extension for PHP */
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include "php_rocksdb.h"
#include "rocksdb/db.h"
#include "error.h"
using namespace rocksdb;
typedef struct
{
Snapshot *snapshot;
zend_object std;
} rocksdb_snapshot_t;
zend_class_entry *rocksdb_snapshot_ce;
static zend_object_handlers rocksdb_snapshot_handlers;
static inline rocksdb_snapshot_t *php_rocksdb_snapshot_fetch_object(zend_object *obj)
{
return (rocksdb_snapshot_t *) ((char *) obj - rocksdb_snapshot_handlers.offset);
}
static zend_object *php_rocksdb_snapshot_create_object(zend_class_entry *ce)
{
rocksdb_snapshot_t *rocksdb_snapshot = (rocksdb_snapshot_t *) zend_object_alloc(sizeof(rocksdb_snapshot_t), ce);
zend_object_std_init(&rocksdb_snapshot->std, ce);
object_properties_init(&rocksdb_snapshot->std, ce);
rocksdb_snapshot->std.handlers = &rocksdb_snapshot_handlers;
return &rocksdb_snapshot->std;
}
static void php_rocksdb_snapshot_free_object(zend_object *object)
{
rocksdb_snapshot_t *rocksdb_snapshot = (rocksdb_snapshot_t *) php_rocksdb_snapshot_fetch_object(object);
zend_object_std_dtor(&rocksdb_snapshot->std);
}
Snapshot *php_rocksdb_snapshot_get_ptr(zval *zobject)
{
return php_rocksdb_snapshot_fetch_object(Z_OBJ_P(zobject))->snapshot;
}
void php_rocksdb_snapshot_set_ptr(zval *zobject, const Snapshot *snapshot)
{
php_rocksdb_snapshot_fetch_object(Z_OBJ_P(zobject))->snapshot = (Snapshot *) snapshot;
}
static const zend_function_entry rocksdb_snapshot_methods[] =
{
PHP_FE_END
};
void php_rocksdb_snapshot_minit(int module_number)
{
ROCKSDB_INIT_CLASS_ENTRY(rocksdb_snapshot, "RocksDB\\Snapshot", NULL, NULL, rocksdb_snapshot_methods);
ROCKSDB_SET_CLASS_CUSTOM_OBJECT(rocksdb_snapshot, php_rocksdb_snapshot_create_object, php_rocksdb_snapshot_free_object, rocksdb_snapshot_t, std);
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/codinghuang/php-rocksdb.git
git@gitee.com:codinghuang/php-rocksdb.git
codinghuang
php-rocksdb
php-rocksdb
master

搜索帮助