/* Copyright (C) 2015-2020, Dirk Krause SPDX-License-Identifier: BSD-3-Clause */ /* WARNING: This file was generated by the dkct program (see http://dktools.sourceforge.net/ for details). Changes you make here will be lost if dkct is run again! You should modify the original source and run dkct on it. Original source: dk4dbia.ctr */ /** @file dk4dbia.c The dk4dbia module. */ #line 155 "dk4dbia.ctr" #include "dk4conf.h" #if DK4_HAVE_ASSERT_H #ifndef ASSERT_H_INCLUDED #include #define ASSERT_H_INCLUDED 1 #endif #endif #include "dk4dbia.h" #include "dk4const.h" #line 171 "dk4dbia.ctr" /** Preference names we are using here. */ static const dkChar * const dk4dbi_pref_names[] = { /* 0 */ dkT("db.key.max-size"), /* 1 */ dkT("db.value.max-size"), NULL #line 181 "dk4dbia.ctr" }; /** Constant texts used by the module, not localized. */ static const dkChar * const dk4dbia_kwnl[] = { /* 0 */ dkT("dk4dbia.str"), NULL #line 194 "dk4dbia.ctr" }; /** Constant texts used by the module, localized texts are used if available. */ static const dkChar * const dk4dbia_kw_def[] = { /* 0 */ dkT("Failed to open database!"), /* 1 */ dkT("\nInvalid arguments were provided to the DB opening function."), /* 2 */ dkT("\nThe database type is not supported."), /* 3 */ dkT("\nMathematical overflow in size calculation."), /* 4 */ dkT("\nInsufficient memory available."), /* 5 */ dkT("\nSyntax error (database name, file type or file contents)."), /* 6 */ dkT("\nInsufficient permissions."), /* 7 */ dkT("\nFailed to open the file for read access."), /* 8 */ dkT("\nFailed to open the file for write access."), /* 9 */ dkT("\nFailed to close the file."), NULL #line 244 "dk4dbia.ctr" }; dk4_dbi_t * dk4dbi_open_sizes_app( const dkChar *fn, int wa, int tr, size_t km, size_t vm, dk4_er_t *erp, dk4_app_t *app ) { dk4_er_t er; /* Error report from dk4dbi_open */ const dkChar * parts[4]; /* Message parts array */ const dkChar * const *msg = NULL; /* Localized messages */ dk4_dbi_t *back = NULL; /* Result */ size_t szpts = 0; /* Number of elements in parts */ #if DK4_USE_ASSERT assert(NULL != fn); #endif dk4error_init(&er); back = dk4dbi_open(fn, wa, tr, km, vm, &er); if (NULL == back) { dk4error_copy(erp, &er); if (NULL != app) { msg = dk4app_string_table(app, dk4dbia_kwnl[0], dk4dbia_kw_def); parts[0] = msg[0]; parts[1] = NULL; szpts = 1; switch (er.ec) { case DK4_E_INVALID_ARGUMENTS : { parts[1] = msg[1]; parts[2] = NULL; szpts = 2; } break; case DK4_E_NOT_SUPPORTED : { parts[1] = msg[2]; parts[2] = NULL; szpts = 2; } break; case DK4_E_MATH_OVERFLOW : { parts[1] = msg[3]; parts[2] = NULL; szpts = 2; } break; case DK4_E_MEMORY_ALLOCATION_FAILED : { parts[1] = msg[4]; parts[2] = NULL; szpts = 2; } break; case DK4_E_SYNTAX : { parts[1] = msg[5]; parts[2] = NULL; szpts = 2; } break; case DK4_E_SEC_CHECK : { parts[1] = msg[6]; parts[2] = NULL; szpts = 2; } break; case DK4_E_OPEN_READ_FAILED : { parts[1] = msg[7]; parts[2] = NULL; szpts = 2; } break; case DK4_E_OPEN_WRITE_FAILED : { parts[1] = msg[8]; parts[2] = NULL; szpts = 2; } break; case DK4_E_CLOSE_FAILED : { parts[1] = msg[9]; parts[2] = NULL; szpts = 2; } break; } if (0 < szpts) { dk4app_log_msg(app, DK4_LL_ERROR, parts, szpts); } } } return back; } dk4_dbi_t * dk4dbi_open_app( const dkChar *fn, int wa, int tr, dk4_er_t *erp, dk4_app_t *app ) { size_t km = 0; size_t vm = 0; #if DK4_USE_ASSERT assert(NULL != fn); #endif if (0 == dk4app_pref_get_size(&km, app, dk4dbi_pref_names[0], 0)) { km = 0; } if (0 == dk4app_pref_get_size(&vm, app, dk4dbi_pref_names[1], 0)) { vm = 0; } return (dk4dbi_open_sizes_app(fn, wa, tr, km, vm, erp, app)); }