亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? apr_dbm.h

?? Apache_2.0.59-Openssl_0.9 配置tomcat. Apache_2.0.59-Openssl_0.9 配置tomcat.
?? H
字號:
/* Copyright 2000-2005 The Apache Software Foundation or its licensors, as
 * applicable.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef APR_DBM_H
#define APR_DBM_H

#include "apu.h"
#include "apr.h"
#include "apr_errno.h"
#include "apr_pools.h"
#include "apr_file_info.h"

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @file apr_dbm.h
 * @brief APR-UTIL DBM library
 */
/** 
 * @defgroup APR_Util_DBM DBM routines
 * @ingroup APR_Util
 * @{
 */
/**
 * Structure for referencing a dbm
 */
typedef struct apr_dbm_t apr_dbm_t;

/**
 * Structure for referencing the datum record within a dbm
 */
typedef struct
{
    /** pointer to the 'data' to retrieve/store in the DBM */
    char *dptr;
    /** size of the 'data' to retrieve/store in the DBM */
    apr_size_t dsize;
} apr_datum_t;

/* modes to open the DB */
#define APR_DBM_READONLY        1       /**< open for read-only access */
#define APR_DBM_READWRITE       2       /**< open for read-write access */
#define APR_DBM_RWCREATE        3       /**< open for r/w, create if needed */
#define APR_DBM_RWTRUNC         4       /**< open for r/w, truncating an existing
                                          DB if present */
/**
 * Open a dbm file by file name and type of DBM
 * @param dbm The newly opened database
 * @param type The type of the DBM (not all may be available at run time)
 * <pre>
 *  GDBM for GDBM files
 *  SDBM for SDBM files
 *  DB   for berkeley DB files
 *  NDBM for NDBM files
 *  default for the default DBM type
 *  </pre>
 * @param name The dbm file name to open
 * @param mode The flag value
 * <PRE>
 *           APR_DBM_READONLY   open for read-only access
 *           APR_DBM_READWRITE  open for read-write access
 *           APR_DBM_RWCREATE   open for r/w, create if needed
 *           APR_DBM_RWTRUNC    open for r/w, truncate if already there
 * </PRE>
 * @param perm Permissions to apply to if created
 * @param cntxt The pool to use when creating the dbm
 * @remark The dbm name may not be a true file name, as many dbm packages
 * append suffixes for seperate data and index files.
 */

APU_DECLARE(apr_status_t) apr_dbm_open_ex(apr_dbm_t **dbm, const char* type, 
                                       const char *name, 
                                       apr_int32_t mode, apr_fileperms_t perm,
                                       apr_pool_t *cntxt);


/**
 * Open a dbm file by file name
 * @param dbm The newly opened database
 * @param name The dbm file name to open
 * @param mode The flag value
 * <PRE>
 *           APR_DBM_READONLY   open for read-only access
 *           APR_DBM_READWRITE  open for read-write access
 *           APR_DBM_RWCREATE   open for r/w, create if needed
 *           APR_DBM_RWTRUNC    open for r/w, truncate if already there
 * </PRE>
 * @param perm Permissions to apply to if created
 * @param cntxt The pool to use when creating the dbm
 * @remark The dbm name may not be a true file name, as many dbm packages
 * append suffixes for seperate data and index files.
 */
APU_DECLARE(apr_status_t) apr_dbm_open(apr_dbm_t **dbm, const char *name, 
                                       apr_int32_t mode, apr_fileperms_t perm,
                                       apr_pool_t *cntxt);

/**
 * Close a dbm file previously opened by apr_dbm_open
 * @param dbm The database to close
 */
APU_DECLARE(void) apr_dbm_close(apr_dbm_t *dbm);

/**
 * Fetch a dbm record value by key
 * @param dbm The database 
 * @param key The key datum to find this record
 * @param pvalue The value datum retrieved for this record
 */
APU_DECLARE(apr_status_t) apr_dbm_fetch(apr_dbm_t *dbm, apr_datum_t key,
                                        apr_datum_t *pvalue);
/**
 * Store a dbm record value by key
 * @param dbm The database 
 * @param key The key datum to store this record by
 * @param value The value datum to store in this record
 */
APU_DECLARE(apr_status_t) apr_dbm_store(apr_dbm_t *dbm, apr_datum_t key, 
                                        apr_datum_t value);

/**
 * Delete a dbm record value by key
 * @param dbm The database 
 * @param key The key datum of the record to delete
 * @remark It is not an error to delete a non-existent record.
 */
APU_DECLARE(apr_status_t) apr_dbm_delete(apr_dbm_t *dbm, apr_datum_t key);

/**
 * Search for a key within the dbm
 * @param dbm The database 
 * @param key The datum describing a key to test
 */
APU_DECLARE(int) apr_dbm_exists(apr_dbm_t *dbm, apr_datum_t key);

/**
 * Retrieve the first record key from a dbm
 * @param dbm The database 
 * @param pkey The key datum of the first record
 */
APU_DECLARE(apr_status_t) apr_dbm_firstkey(apr_dbm_t *dbm, apr_datum_t *pkey);

/**
 * Retrieve the next record key from a dbm
 * @param dbm The database 
 * @param pkey The key datum of the next record
 */
APU_DECLARE(apr_status_t) apr_dbm_nextkey(apr_dbm_t *dbm, apr_datum_t *pkey);

/**
 * Proactively toss any memory associated with the apr_datum_t.
 * @param dbm The database 
 * @param data The datum to free.
 */
APU_DECLARE(void) apr_dbm_freedatum(apr_dbm_t *dbm, apr_datum_t data);

/**
 * Report more information when an apr_dbm function fails.
 * @param dbm The database
 * @param errcode A DBM-specific value for the error (for logging). If this
 *                isn't needed, it may be NULL.
 * @param errbuf Location to store the error text
 * @param errbufsize The size of the provided buffer
 * @return The errbuf parameter, for convenience.
 */
APU_DECLARE(char *) apr_dbm_geterror(apr_dbm_t *dbm, int *errcode,
                                     char *errbuf, apr_size_t errbufsize);
/**
 * If the specified file/path were passed to apr_dbm_open(), return the
 * actual file/path names which would be (created and) used. At most, two
 * files may be used; used2 may be NULL if only one file is used.
 * @param pool The pool for allocating used1 and used2.
 * @param type The type of DBM you require info on
 * @param pathname The path name to generate used-names from.
 * @param used1 The first pathname used by the apr_dbm implementation.
 * @param used2 The second pathname used by apr_dbm. If only one file is
 *              used by the specific implementation, this will be set to NULL.
 * @return An error if the specified type is invalid.
 * @remark The dbm file(s) don't need to exist. This function only manipulates
 *      the pathnames.
 */
APU_DECLARE(apr_status_t) apr_dbm_get_usednames_ex(apr_pool_t *pool,
                                                   const char *type,
                                                   const char *pathname,
                                                   const char **used1,
                                                   const char **used2);

/**
 * If the specified file/path were passed to apr_dbm_open(), return the
 * actual file/path names which would be (created and) used. At most, two
 * files may be used; used2 may be NULL if only one file is used.
 * @param pool The pool for allocating used1 and used2.
 * @param pathname The path name to generate used-names from.
 * @param used1 The first pathname used by the apr_dbm implementation.
 * @param used2 The second pathname used by apr_dbm. If only one file is
 *              used by the specific implementation, this will be set to NULL.
 * @remark The dbm file(s) don't need to exist. This function only manipulates
 *      the pathnames.
 */
APU_DECLARE(void) apr_dbm_get_usednames(apr_pool_t *pool,
                                        const char *pathname,
                                        const char **used1,
                                        const char **used2);

/** @} */
#ifdef __cplusplus
}
#endif

#endif	/* !APR_DBM_H */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美系列在线观看| 欧美日韩视频在线观看一区二区三区 | 日本vs亚洲vs韩国一区三区二区| 中文字幕免费在线观看视频一区| 精品国偷自产国产一区| 日韩精品一区在线| 欧美一级视频精品观看| 欧美一区二区日韩一区二区| 欧美浪妇xxxx高跟鞋交| 欧美日韩一区小说| 制服丝袜国产精品| 91精品国产综合久久香蕉麻豆| 777午夜精品免费视频| 欧美一区二区视频在线观看2020 | 夜夜亚洲天天久久| 亚洲午夜日本在线观看| 午夜电影久久久| 精品在线一区二区| 97se亚洲国产综合在线| 91久久精品国产91性色tv| 欧美丰满嫩嫩电影| 久久精品这里都是精品| 国产精品精品国产色婷婷| 亚洲精品久久久蜜桃| 亚洲.国产.中文慕字在线| 午夜欧美视频在线观看| 黄色小说综合网站| 91欧美一区二区| 91久久线看在观草草青青| 欧美日本一区二区三区四区| 久久一夜天堂av一区二区三区| 国产日韩欧美高清| 亚洲午夜av在线| 国产丶欧美丶日本不卡视频| 在线观看日韩国产| 26uuu精品一区二区在线观看| 国产精品久久久久久久久搜平片| 亚洲一二三四在线| 国产精品一区二区在线观看不卡| 在线观看日产精品| 国产蜜臀av在线一区二区三区| 亚洲人妖av一区二区| 美女在线一区二区| 色婷婷国产精品久久包臀| 久久婷婷久久一区二区三区| 亚洲国产一区二区三区青草影视| 黄色资源网久久资源365| 欧美日韩一区二区三区免费看| 国产欧美一区二区三区鸳鸯浴| 石原莉奈在线亚洲二区| 成人性生交大片| 2024国产精品视频| 午夜日韩在线电影| 日本高清视频一区二区| 国产精品午夜电影| 国内精品伊人久久久久av影院| 在线观看日韩毛片| 日韩毛片高清在线播放| 国产成人av电影在线观看| 日韩午夜在线播放| 亚洲gay无套男同| 91丨porny丨在线| 国产精品久久福利| 成人综合在线观看| 国产日韩欧美在线一区| 精品一区二区在线免费观看| 欧美精品自拍偷拍| 亚洲与欧洲av电影| 欧美性欧美巨大黑白大战| 亚洲欧洲日韩在线| 91农村精品一区二区在线| 国产精品看片你懂得| 丁香婷婷综合网| 国产精品污www在线观看| 国产在线精品不卡| 欧美韩国日本不卡| 成人美女视频在线观看| 久久影院视频免费| 成人福利电影精品一区二区在线观看 | 亚洲精品视频一区| 日本韩国精品一区二区在线观看| 亚洲三级久久久| 欧美午夜电影网| 日韩和欧美的一区| 日韩精品一区国产麻豆| 韩国毛片一区二区三区| 国产喷白浆一区二区三区| 99麻豆久久久国产精品免费| 国产精品理论在线观看| 色一情一乱一乱一91av| 亚洲一区免费视频| 日韩欧美国产综合| 国产真实乱偷精品视频免| 国产精品毛片高清在线完整版| 99国产精品国产精品久久| 亚洲高清免费视频| 精品国产一区久久| av在线这里只有精品| 图片区日韩欧美亚洲| 精品免费国产一区二区三区四区| 国产成人精品三级麻豆| 一区二区三区不卡在线观看| 欧美性受xxxx| 国产精品一二三区| 亚洲激情五月婷婷| 精品美女一区二区| 色就色 综合激情| 极品少妇xxxx偷拍精品少妇| 国产精品视频免费看| 欧美美女直播网站| 国产成人免费网站| 日韩中文字幕91| 18成人在线观看| 精品国免费一区二区三区| 91色视频在线| 国产一区欧美一区| 亚洲国产日韩综合久久精品| 日韩欧美亚洲国产精品字幕久久久| 国产成人av电影在线| 亚洲成人动漫av| 亚洲欧美日韩国产中文在线| 欧美一二三区在线观看| 一本一本久久a久久精品综合麻豆| 久久精品国产久精国产| 亚洲一区二区三区中文字幕在线| 久久久蜜臀国产一区二区| 欧美精品久久久久久久久老牛影院 | 亚洲激情校园春色| 国产日韩精品一区| 91麻豆精品国产91久久久使用方法| 国产乱码字幕精品高清av| 亚洲不卡av一区二区三区| 亚洲少妇最新在线视频| 国产偷国产偷亚洲高清人白洁 | 免费成人在线视频观看| 亚洲综合一区二区精品导航| 国产清纯白嫩初高生在线观看91 | 日韩欧美国产麻豆| 91国模大尺度私拍在线视频| 国产不卡视频一区二区三区| 久久99蜜桃精品| 奇米色777欧美一区二区| 亚洲18女电影在线观看| 亚洲成a人在线观看| 亚洲影视资源网| 亚洲一区在线看| 一区二区三区在线视频观看| 国产精品美日韩| 亚洲国产成人一区二区三区| 久久综合给合久久狠狠狠97色69| 欧美人牲a欧美精品| 色综合久久久久综合体| 91香蕉视频黄| 欧美色国产精品| 欧美日韩国产首页| 欧美精品视频www在线观看| 欧美日韩在线观看一区二区| 欧美视频一区二区三区四区 | 国产在线精品一区二区| 精品一区二区国语对白| 国产精品一区一区| k8久久久一区二区三区 | 免费观看在线综合| 精品一区中文字幕| 国产成人av影院| 成人av手机在线观看| 91小视频在线免费看| 欧美亚洲丝袜传媒另类| 日韩午夜av电影| 中文字幕精品一区二区精品绿巨人| 国产欧美一二三区| 亚洲丝袜另类动漫二区| 亚洲成人tv网| 国产一区二区三区久久久 | 欧美美女喷水视频| 欧美成人综合网站| 国产精品国产精品国产专区不蜜| 亚洲免费观看高清在线观看| 丝袜诱惑亚洲看片| 国产麻豆9l精品三级站| 99久久精品国产观看| 欧美日韩视频第一区| 日韩精品一区二区三区视频在线观看 | 成人午夜电影小说| 日本韩国精品一区二区在线观看| 9191国产精品| 国产精品私房写真福利视频| 亚洲一区二区三区中文字幕在线| 久久国产乱子精品免费女| 成人av免费在线播放| 欧美日韩亚洲另类| 久久网站热最新地址| 亚洲综合在线五月| 国产suv精品一区二区三区 | 日韩电影在线一区| 成人app软件下载大全免费| 欧美日韩色综合| 亚洲日本免费电影| 精品在线观看免费| 欧美精品国产精品|