/* * Copyright (c) 2005 Sendmail, Inc. and its suppliers. * All rights reserved. * * By using this file, you agree to the terms and conditions set * forth in the LICENSE file which can be found at the top level of * the sendmail distribution. * * $Id: ibdb.h,v 1.5 2007/06/18 04:42:31 ca Exp $ */ #ifndef IDB_H #define IDB_H 1 #include "sm/generic.h" #include "sm/str.h" #include "sm/reccom.h" #include "sm/ibdb.h" /* ** Create full path from directory, basename, and sequence number. ** Here things like directory hashing or subdirectories can be ** introduced, as well as changes like decimal -> hexadecimal for ** more hashing. ** Note: instead of storing "dir" we may want to store "flags" ** as they are used below in IBDB_DIR(dir, flags) to generate the ** directory. In this case we can switch from directory based ** distinction to some other scheme, e.g., prefix. */ #define IBDB_WR_DIR "ibdb/ibdb" /* normal write directory */ #define IBDB_REC_DIR "ibdb/ibdbr" /* recovery directory */ #define IBDB_CL_DIR "ibdb/ibdbc" /* cleanup directory */ #define IBDB_DIR_LEN 16 /* maximum length of directory names listed above */ /* should format be 'X' instead of 'd'?? */ #define crt_ibdb_path(path, dir, name, seq) \ sm_strprintf((path), "%s/%s%0" SM_XSTR(UINT32_LEN) "d", \ (dir), (name), (seq)) #define IBDB_DIR(dir, base_dir, flags) ibdb_dir_crt(base_dir, flags, &dir) sm_ret_T ibdb_dir_crt(const char *_base_dir, uint _flags, char **_pdir); #endif /* IDB_H */