📄 typemap
字号:
# typemap for Perl 5 interface to Berkeley DB version 2 & 3## SCCS: %I%, %G% ## written by Paul Marquess <pmqs@cpan.org>##################################### DB SECTION## SVnull* T_SV_NULLvoid * T_PVu_int T_U_INTu_int32_t T_U_INTdb_timeout_t T_U_INTconst char * T_PV_NULLPV_or_NULL T_PV_NULLIO_or_NULL T_IO_NULLAV * T_AVBerkeleyDB T_PTROBJBerkeleyDB::Common T_PTROBJ_AVBerkeleyDB::Hash T_PTROBJ_AVBerkeleyDB::Btree T_PTROBJ_AVBerkeleyDB::Recno T_PTROBJ_AVBerkeleyDB::Queue T_PTROBJ_AVBerkeleyDB::Cursor T_PTROBJ_AVBerkeleyDB::TxnMgr T_PTROBJ_AVBerkeleyDB::Txn T_PTROBJ_AVBerkeleyDB::Log T_PTROBJ_AVBerkeleyDB::Lock T_PTROBJ_AVBerkeleyDB::Env T_PTROBJ_AVBerkeleyDB::Raw T_RAWBerkeleyDB::Common::Raw T_RAWBerkeleyDB::Hash::Raw T_RAWBerkeleyDB::Btree::Raw T_RAWBerkeleyDB::Recno::Raw T_RAWBerkeleyDB::Queue::Raw T_RAWBerkeleyDB::Cursor::Raw T_RAWBerkeleyDB::TxnMgr::Raw T_RAWBerkeleyDB::Txn::Raw T_RAWBerkeleyDB::Log::Raw T_RAWBerkeleyDB::Lock::Raw T_RAWBerkeleyDB::Env::Raw T_RAWBerkeleyDB::Env::Inner T_INNERBerkeleyDB::Common::Inner T_INNERBerkeleyDB::Txn::Inner T_INNERBerkeleyDB::TxnMgr::Inner T_INNER# BerkeleyDB__Env T_PTRDBT T_dbtdatumDBT_OPT T_dbtdatum_optDBT_B T_dbtdatum_btreeDBTKEY T_dbtkeydatumDBTKEY_B T_dbtkeydatum_btreeDBTKEY_Br T_dbtkeydatum_btree_rDBTKEY_Bpr T_dbtkeydatum_btree_prDBTYPE T_U_INTDualType T_DUALBerkeleyDB_type * T_IVBerkeleyDB_ENV_type * T_IVBerkeleyDB_TxnMgr_type * T_IVBerkeleyDB_Txn_type * T_IVBerkeleyDB__Cursor_type * T_IVDB * T_IVDB_ENV * T_IVINPUTT_AV if (SvROK($arg) && SvTYPE(SvRV($arg)) == SVt_PVAV) /* if (sv_isa($arg, \"${ntype}\")) */ $var = (AV*)SvRV($arg); else croak(\"$var is not an array reference\")T_RAW $var = INT2PTR($type,SvIV($arg)T_U_INT $var = SvUV($arg)T_SV_REF_NULL if ($arg == &PL_sv_undef) $var = NULL ; else if (sv_derived_from($arg, \"${ntype}\")) { IV tmp = SvIV((SV *)GetInternalObject($arg)); $var = INT2PTR($type, tmp); } else croak(\"$var is not of type ${ntype}\")T_SV_NULL if ($arg == NULL || $arg == &PL_sv_undef) $var = NULL ; else $var = $arg ;T_HV_REF_NULL if ($arg == &PL_sv_undef) $var = NULL ; else if (sv_derived_from($arg, \"${ntype}\")) { HV * hv = (HV *)GetInternalObject($arg); SV ** svp = hv_fetch(hv, \"db\", 2, FALSE); IV tmp = SvIV(*svp); $var = INT2PTR($type, tmp); } else croak(\"$var is not of type ${ntype}\")T_HV_REF if (sv_derived_from($arg, \"${ntype}\")) { HV * hv = (HV *)GetInternalObject($arg); SV ** svp = hv_fetch(hv, \"db\", 2, FALSE); IV tmp = SvIV(*svp); $var = INT2PTR($type, tmp); } else croak(\"$var is not of type ${ntype}\")T_P_REF if (sv_derived_from($arg, \"${ntype}\")) { IV tmp = SvIV((SV*)SvRV($arg)); $var = INT2PTR($type, tmp); } else croak(\"$var is not of type ${ntype}\")T_INNER { HV * hv = (HV *)SvRV($arg); SV ** svp = hv_fetch(hv, \"db\", 2, FALSE); IV tmp = SvIV(*svp); $var = INT2PTR($type, tmp); }T_PV_NULL if ($arg == &PL_sv_undef) $var = NULL ; else { $var = ($type)SvPV($arg,PL_na) ; if (PL_na == 0) $var = NULL ; }T_IO_NULL if ($arg == &PL_sv_undef) $var = NULL ; else $var = IoOFP(sv_2io($arg))T_PTROBJ_NULL if ($arg == &PL_sv_undef) $var = NULL ; else if (sv_derived_from($arg, \"${ntype}\")) { IV tmp = SvIV((SV*)SvRV($arg)); $var = INT2PTR($type, tmp); } else croak(\"$var is not of type ${ntype}\")T_PTROBJ_SELF if ($arg == &PL_sv_undef) $var = NULL ; else if (sv_derived_from($arg, \"${ntype}\")) { IV tmp = SvIV((SV*)SvRV($arg)); $var = INT2PTR($type, tmp); } else croak(\"$var is not of type ${ntype}\")T_PTROBJ_AV if ($arg == &PL_sv_undef || $arg == NULL) $var = NULL ; else if (sv_derived_from($arg, \"${ntype}\")) { IV tmp = SvIV(getInnerObject($arg)) ; $var = INT2PTR($type, tmp); } else croak(\"$var is not of type ${ntype}\")T_dbtkeydatum { SV* my_sv = $arg ; DBM_ckFilter(my_sv, filter_store_key, \"filter_store_key\"); DBT_clear($var) ; SvGETMAGIC($arg) ; if (db->recno_or_queue) { Value = GetRecnoKey(db, SvIV(my_sv)) ; $var.data = & Value; $var.size = (int)sizeof(db_recno_t); } else { $var.data = SvPV(my_sv, PL_na); $var.size = (int)PL_na; } }T_dbtkeydatum_btree { SV* my_sv = $arg ; DBM_ckFilter(my_sv, filter_store_key, \"filter_store_key\"); DBT_clear($var) ; SvGETMAGIC($arg) ; if (db->recno_or_queue || (db->type == DB_BTREE && flagSet(DB_SET_RECNO))) { Value = GetRecnoKey(db, SvIV(my_sv)) ; $var.data = & Value; $var.size = (int)sizeof(db_recno_t); } else { $var.data = SvPV(my_sv, PL_na); $var.size = (int)PL_na; } }T_dbtkeydatum_btree_r { SV* my_sv = $arg ; DBM_ckFilter(my_sv, filter_store_key, \"filter_store_key\"); DBT_clear($var) ; SvGETMAGIC($arg) ; if (db->recno_or_queue || (db->type == DB_BTREE && flagSet(DB_SET_RECNO))) { Value = GetRecnoKey(db, SvIV(my_sv)) ; $var.data = & Value; $var.size = (int)sizeof(db_recno_t); } else { $var.data = SvPV(my_sv, PL_na); $var.size = (int)PL_na; } }T_dbtkeydatum_btree_pr { SV* my_sv = $arg ; DBM_ckFilter(my_sv, filter_store_key, \"filter_store_key\"); DBT_clear($var) ; SvGETMAGIC($arg) ; if (db->recno_or_queue || (db->type == DB_BTREE && flagSet(DB_SET_RECNO))) { Value = GetRecnoKey(db, SvIV(my_sv)) ; $var.data = & Value; $var.size = (int)sizeof(db_recno_t); } else { $var.data = SvPV(my_sv, PL_na); $var.size = (int)PL_na; } }T_dbtdatum { SV* my_sv = $arg ; DBM_ckFilter(my_sv, filter_store_value, \"filter_store_value\"); DBT_clear($var) ; SvGETMAGIC($arg) ; $var.data = SvPV(my_sv, PL_na); $var.size = (int)PL_na; $var.flags = db->partial ; $var.dlen = db->dlen ; $var.doff = db->doff ; } T_dbtdatum_opt DBT_clear($var) ; if (flagSet(DB_GET_BOTH)|| flagSet(DB_GET_BOTH)) { SV* my_sv = $arg ; DBM_ckFilter(my_sv, filter_store_value, \"filter_store_value\"); SvGETMAGIC($arg) ; $var.data = SvPV(my_sv, PL_na); $var.size = (int)PL_na; $var.flags = db->partial ; $var.dlen = db->dlen ; $var.doff = db->doff ; } T_dbtdatum_btree DBT_clear($var) ; if (flagSet(DB_GET_BOTH)|| flagSet(DB_GET_BOTH)) { SV* my_sv = $arg ; DBM_ckFilter(my_sv, filter_store_value, \"filter_store_value\"); SvGETMAGIC($arg) ; $var.data = SvPV(my_sv, PL_na); $var.size = (int)PL_na; $var.flags = db->partial ; $var.dlen = db->dlen ; $var.doff = db->doff ; } OUTPUTT_SV_NULL $arg = $var;T_RAW sv_setiv($arg, PTR2IV($var));T_SV_REF_NULL sv_setiv($arg, PTR2IV($var));T_HV_REF_NULL sv_setiv($arg, PTR2IV($var));T_HV_REF sv_setiv($arg, PTR2IV($var));T_P_REF sv_setiv($arg, PTR2IV($var));T_DUAL setDUALerrno($arg, $var) ;T_U_INT sv_setuv($arg, (UV)$var);T_PV_NULL sv_setpv((SV*)$arg, $var);T_dbtkeydatum_btree OutputKey_B($arg, $var)T_dbtkeydatum_btree_r OutputKey_Br($arg, $var)T_dbtkeydatum_btree_pr OutputKey_Bpr($arg, $var)T_dbtkeydatum OutputKey($arg, $var)T_dbtdatum OutputValue($arg, $var)T_dbtdatum_opt OutputValue($arg, $var)T_dbtdatum_btree OutputValue_B($arg, $var)T_PTROBJ_NULL sv_setref_pv($arg, \"${ntype}\", (void*)$var);T_PTROBJ_SELF sv_setref_pv($arg, self, (void*)$var);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -