2002-04-14 13:45:09 +04:00
/*
Unix SMB / CIFS implementation .
tdb utility functions
2006-07-11 22:01:26 +04:00
Copyright ( C ) Andrew Tridgell 1999
2002-04-14 13:45:09 +04:00
This program is free software ; you can redistribute it and / or modify
it under the terms of the GNU General Public License as published by
2007-07-09 23:25:36 +04:00
the Free Software Foundation ; either version 3 of the License , or
2002-04-14 13:45:09 +04:00
( at your option ) any later version .
This program is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
GNU General Public License for more details .
You should have received a copy of the GNU General Public License
2007-07-10 04:52:41 +04:00
along with this program . If not , see < http : //www.gnu.org/licenses/>.
2002-04-14 13:45:09 +04:00
*/
# ifndef __TDBUTIL_H__
# define __TDBUTIL_H__
2015-03-12 17:40:16 +03:00
# include <tdb.h>
2002-04-14 13:45:09 +04:00
2011-04-14 13:43:31 +04:00
# include <talloc.h> /* for tdb_wrap_open() */
2008-10-23 17:35:21 +04:00
# include "../libcli/util/ntstatus.h" /* for map_nt_error_from_tdb() */
2009-01-28 12:35:17 +03:00
# include "../../lib/util/util_tdb.h"
2008-03-25 14:54:14 +03:00
2015-03-24 18:11:05 +03:00
/*
* The tdb_unpack ( ) and tdb_pack [ _append ] ( ) helpers are deprecated . Consider
* using idl / ndr for marshalling of complex data types instead .
*/
2015-05-14 03:26:01 +03:00
int tdb_unpack ( const uint8_t * buf , int bufsize , const char * fmt , . . . ) ;
size_t tdb_pack ( uint8_t * buf , int bufsize , const char * fmt , . . . ) ;
2008-03-25 15:41:51 +03:00
struct tdb_context * tdb_open_log ( const char * name , int hash_size ,
int tdb_flags , int open_flags , mode_t mode ) ;
2002-04-14 13:45:09 +04:00
2008-03-25 14:54:14 +03:00
NTSTATUS map_nt_error_from_tdb ( enum TDB_ERROR err ) ;
2009-07-13 19:03:52 +04:00
int tdb_data_cmp ( TDB_DATA t1 , TDB_DATA t2 ) ;
2013-03-20 12:56:54 +04:00
char * tdb_data_string ( TALLOC_CTX * mem_ctx , TDB_DATA d ) ;
2014-09-14 13:15:34 +04:00
/****************************************************************************
Lock a chain , with timeout .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
int tdb_chainlock_with_timeout ( struct tdb_context * tdb , TDB_DATA key ,
unsigned int timeout ) ;
/****************************************************************************
Lock a chain by string , with timeout Return non - zero if lock failed .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
int tdb_lock_bystring_with_timeout ( struct tdb_context * tdb , const char * keyval ,
int timeout ) ;
/****************************************************************************
Readlock a chain by string , with timeout Return non - zero if lock failed .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
int tdb_read_lock_bystring_with_timeout ( TDB_CONTEXT * tdb , const char * keyval ,
unsigned int timeout ) ;
2002-04-14 13:45:09 +04:00
# endif /* __TDBUTIL_H__ */