2002-04-14 09:45:09 +00:00
/*
Unix SMB / CIFS implementation .
tdb utility functions
2006-07-11 18:01:26 +00:00
Copyright ( C ) Andrew Tridgell 1999
2002-04-14 09:45:09 +00: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 19:25:36 +00:00
the Free Software Foundation ; either version 3 of the License , or
2002-04-14 09:45:09 +00: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 00:52:41 +00:00
along with this program . If not , see < http : //www.gnu.org/licenses/>.
2002-04-14 09:45:09 +00:00
*/
# ifndef __TDBUTIL_H__
# define __TDBUTIL_H__
2015-03-12 14:40:16 +00:00
# include <tdb.h>
2002-04-14 09:45:09 +00:00
2011-04-14 11:43:31 +02:00
# include <talloc.h> /* for tdb_wrap_open() */
2008-10-23 15:35:21 +02:00
# include "../libcli/util/ntstatus.h" /* for map_nt_error_from_tdb() */
2009-01-28 10:35:17 +01:00
# include "../../lib/util/util_tdb.h"
2008-03-25 12:54:14 +01:00
2015-03-24 16:11:05 +01:00
/*
* The tdb_unpack ( ) and tdb_pack [ _append ] ( ) helpers are deprecated . Consider
* using idl / ndr for marshalling of complex data types instead .
*/
2015-05-13 17:26:01 -07: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 13:41:51 +01: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 09:45:09 +00:00
2008-03-25 12:54:14 +01:00
NTSTATUS map_nt_error_from_tdb ( enum TDB_ERROR err ) ;
2009-07-13 17:03:52 +02:00
int tdb_data_cmp ( TDB_DATA t1 , TDB_DATA t2 ) ;
2013-03-20 09:56:54 +01:00
char * tdb_data_string ( TALLOC_CTX * mem_ctx , TDB_DATA d ) ;
2023-01-04 09:40:06 +01:00
char * tdb_data_dbg ( TDB_DATA d ) ;
2013-03-20 09:56:54 +01:00
2014-09-14 11:15:34 +02: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 09:45:09 +00:00
# endif /* __TDBUTIL_H__ */