1/* ---------------------------------------------------------------------------- 2 * This file was automatically generated by SWIG (http://www.swig.org). 3 * Version 1.3.38 4 * 5 * Do not make changes to this file unless you know what you are doing--modify 6 * the SWIG interface file instead. 7 * ----------------------------------------------------------------------------- */ 8 9namespace BerkeleyDB.Internal { 10using System; 11using System.Runtime.InteropServices; 12using System.Collections.Generic; 13internal class DB_ENV : IDisposable { 14 private HandleRef swigCPtr; 15 protected bool swigCMemOwn; 16 17 internal DB_ENV(IntPtr cPtr, bool cMemoryOwn) { 18 swigCMemOwn = cMemoryOwn; 19 swigCPtr = new HandleRef(this, cPtr); 20 } 21 22 internal static HandleRef getCPtr(DB_ENV obj) { 23 return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr; 24 } 25 26 public virtual void Dispose() { 27 lock(this) { 28 if(swigCPtr.Handle != IntPtr.Zero && swigCMemOwn) { 29 swigCMemOwn = false; 30 } 31 swigCPtr = new HandleRef(null, IntPtr.Zero); 32 GC.SuppressFinalize(this); 33 } 34} 35 36 internal DB_TXN cdsgroup_begin() { 37 int err = 0; 38 DB_TXN ret = cdsgroup_begin(ref err); 39 DatabaseException.ThrowException(err); 40 return ret; 41 } 42 internal List<string> get_data_dirs() { 43 int err = 0; 44 int cnt = 0; 45 List<string> ret = get_data_dirs(ref err, ref cnt); 46 DatabaseException.ThrowException(err); 47 return ret; 48 } 49 internal DB_LOCK lock_get(uint locker, uint flags, DBT arg2, db_lockmode_t mode) { 50 int err = 0; 51 DB_LOCK ret = lock_get(locker, flags, DatabaseEntry.fromDBT(arg2), mode, ref err); 52 DatabaseException.ThrowException(err); 53 return ret; 54 } 55 internal LockStatStruct lock_stat(uint flags) { 56 int err = 0; 57 IntPtr ptr = lock_stat(flags, ref err); 58 DatabaseException.ThrowException(err); 59 LockStatStruct ret = (LockStatStruct)Marshal.PtrToStructure(ptr, typeof(LockStatStruct)); 60 libdb_csharp.__os_ufree(null, ptr); 61 return ret; 62 } 63 internal List<string> log_archive(uint flags) { 64 int err = 0; 65 int cnt = 0; 66 List<string> ret = log_archive(flags, ref err, ref cnt); 67 DatabaseException.ThrowException(err); 68 return ret; 69 } 70 internal string log_file(DB_LSN dblsn) { 71 int err = 0; 72 int len = 100; 73 IntPtr namep; 74 while (true) { 75 namep = Marshal.AllocHGlobal(len); 76 err = log_file(dblsn, namep, (uint)len); 77 if (err != DbConstants.DB_BUFFER_SMALL) 78 break; 79 Marshal.FreeHGlobal(namep); 80 len *= 2; 81 } 82 DatabaseException.ThrowException(err); 83 string ret = Marshal.PtrToStringAnsi(namep); 84 Marshal.FreeHGlobal(namep); 85 return ret; 86 } 87 internal LogStatStruct log_stat(uint flags) { 88 int err = 0; 89 IntPtr ptr = log_stat(flags, ref err); 90 DatabaseException.ThrowException(err); 91 LogStatStruct ret = (LogStatStruct)Marshal.PtrToStructure(ptr, typeof(LogStatStruct)); 92 libdb_csharp.__os_ufree(null, ptr); 93 return ret; 94 } 95 internal MempStatStruct memp_stat(uint flags) { 96 int err = 0; 97 int cnt = 0; 98 IntPtr mpf = new IntPtr(); 99 IntPtr ptr = memp_stat(ref mpf, flags, ref err, ref cnt); 100 DatabaseException.ThrowException(err); 101 IntPtr[] files = new IntPtr[cnt]; 102 if (cnt > 0) 103 Marshal.Copy(mpf, files, 0, cnt); 104 105 MempStatStruct ret = new MempStatStruct(); 106 ret.st = (MPoolStatStruct)Marshal.PtrToStructure(ptr, typeof(MPoolStatStruct)); 107 ret.files = new MPoolFileStatStruct[cnt]; 108 for (int i = 0; i < cnt; i++) 109 ret.files[i] = (MPoolFileStatStruct)Marshal.PtrToStructure(files[i], typeof(MPoolFileStatStruct)); 110 111 libdb_csharp.__os_ufree(null, ptr); 112 libdb_csharp.__os_ufree(null, mpf); 113 return ret; 114 } 115 internal MutexStatStruct mutex_stat(uint flags) { 116 int err = 0; 117 IntPtr ptr = mutex_stat(flags, ref err); 118 DatabaseException.ThrowException(err); 119 MutexStatStruct ret = (MutexStatStruct)Marshal.PtrToStructure(ptr, typeof(MutexStatStruct)); 120 libdb_csharp.__os_ufree(null, ptr); 121 return ret; 122 } 123 internal RepMgrSite[] repmgr_site_list() { 124 uint count = 0; 125 int err = 0; 126 uint size = 0; 127 RepMgrSite[] ret = repmgr_site_list(ref count, ref size, ref err); 128 DatabaseException.ThrowException(err); 129 return ret; 130 } 131 internal RepMgrStatStruct repmgr_stat(uint flags) { 132 int err = 0; 133 IntPtr ptr = repmgr_stat(flags, ref err); 134 DatabaseException.ThrowException(err); 135 RepMgrStatStruct ret = (RepMgrStatStruct)Marshal.PtrToStructure(ptr, typeof(RepMgrStatStruct)); 136 libdb_csharp.__os_ufree(null, ptr); 137 return ret; 138 } 139 internal ReplicationStatStruct rep_stat(uint flags) { 140 int err = 0; 141 IntPtr ptr = rep_stat(flags, ref err); 142 DatabaseException.ThrowException(err); 143 ReplicationStatStruct ret = (ReplicationStatStruct)Marshal.PtrToStructure(ptr, typeof(ReplicationStatStruct)); 144 libdb_csharp.__os_ufree(null, ptr); 145 return ret; 146 } 147 internal DB_TXN txn_begin(DB_TXN parent, uint flags) { 148 int err = 0; 149 DB_TXN ret = txn_begin(parent, flags, ref err); 150 DatabaseException.ThrowException(err); 151 return ret; 152 } 153 internal PreparedTransaction[] txn_recover(uint count, uint flags) { 154 int err = 0; 155 IntPtr prepp = Marshal.AllocHGlobal((int)(count * (IntPtr.Size + DbConstants.DB_GID_SIZE))); 156 uint sz = 0; 157 err = txn_recover(prepp, count, ref sz, flags); 158 DatabaseException.ThrowException(err); 159 PreparedTransaction[] ret = new PreparedTransaction[sz]; 160 for (int i = 0; i < sz; i++) { 161 IntPtr cPtr = new IntPtr((IntPtr.Size == 4 ? prepp.ToInt32() : prepp.ToInt64()) + i * (IntPtr.Size + DbConstants.DB_GID_SIZE)); 162 DB_PREPLIST prep = new DB_PREPLIST(cPtr, false); 163 ret[i] = new PreparedTransaction(prep); 164 } 165 Marshal.FreeHGlobal(prepp); 166 return ret; 167 } 168 internal TxnStatStruct txn_stat(uint flags) { 169 int err = 0; 170 uint size = 0; 171 int offset = Marshal.SizeOf(typeof(DB_TXN_ACTIVE)); 172 IntPtr ptr = txn_stat(flags, ref size, ref err); 173 DatabaseException.ThrowException(err); 174 TxnStatStruct ret = new TxnStatStruct(); 175 ret.st = (TransactionStatStruct)Marshal.PtrToStructure(ptr, typeof(TransactionStatStruct)); 176 ret.st_txnarray = new DB_TXN_ACTIVE[ret.st.st_nactive]; 177 ret.st_txngids = new byte[ret.st.st_nactive][]; 178 ret.st_txnnames = new string[ret.st.st_nactive]; 179 180 for (int i = 0; i < ret.st.st_nactive; i++) { 181 IntPtr activep = new IntPtr((IntPtr.Size == 4 ? ret.st.st_txnarray.ToInt32() : ret.st.st_txnarray.ToInt64()) + i * size); 182 ret.st_txnarray[i] = (DB_TXN_ACTIVE)Marshal.PtrToStructure(activep, typeof(DB_TXN_ACTIVE)); 183 ret.st_txngids[i] = new byte[DbConstants.DB_GID_SIZE]; 184 IntPtr gidp = new IntPtr((IntPtr.Size == 4 ? activep.ToInt32() : activep.ToInt64()) + offset); 185 Marshal.Copy(gidp, ret.st_txngids[i], 0, (int)DbConstants.DB_GID_SIZE); 186 IntPtr namep = new IntPtr((IntPtr.Size == 4 ? gidp.ToInt32() : gidp.ToInt64()) + DbConstants.DB_GID_SIZE); 187 ret.st_txnnames[i] = Marshal.PtrToStringAnsi(namep); 188 } 189 libdb_csharp.__os_ufree(null, ptr); 190 191 return ret; 192 } 193 194 195 internal DatabaseEnvironment api2_internal { 196 set { 197 libdb_csharpPINVOKE.DB_ENV_api2_internal_set(swigCPtr, value); 198 } 199 get { return libdb_csharpPINVOKE.DB_ENV_api2_internal_get(swigCPtr); } 200 201 } 202 203 internal int set_usercopy(DBTCopyDelegate dbt_usercopy) { 204 int ret; 205 ret = libdb_csharpPINVOKE.DB_ENV_set_usercopy(swigCPtr, dbt_usercopy); 206 DatabaseException.ThrowException(ret); 207 return ret; 208} 209 210 internal DB_ENV(uint flags) : this(libdb_csharpPINVOKE.new_DB_ENV(flags), true) { 211 } 212 213 private DB_TXN cdsgroup_begin(ref int err) { 214 IntPtr cPtr = libdb_csharpPINVOKE.DB_ENV_cdsgroup_begin(swigCPtr, ref err); 215 DB_TXN ret = (cPtr == IntPtr.Zero) ? null : new DB_TXN(cPtr, false); 216 return ret; 217 } 218 219 internal int close(uint flags) { 220 int ret = libdb_csharpPINVOKE.DB_ENV_close(swigCPtr, flags); 221 if (ret == 0) 222 /* Close is a db handle destructor. Reflect that in the wrapper class. */ 223 swigCPtr = new HandleRef(null, IntPtr.Zero); 224 else 225 DatabaseException.ThrowException(ret); 226 return ret; 227} 228 229 internal int dbremove(DB_TXN txn, string file, string database, uint flags) { 230 int ret; 231 ret = libdb_csharpPINVOKE.DB_ENV_dbremove(swigCPtr, DB_TXN.getCPtr(txn), file, database, flags); 232 DatabaseException.ThrowException(ret); 233 return ret; 234} 235 236 internal int dbrename(DB_TXN txn, string file, string database, string newname, uint flags) { 237 int ret; 238 ret = libdb_csharpPINVOKE.DB_ENV_dbrename(swigCPtr, DB_TXN.getCPtr(txn), file, database, newname, flags); 239 DatabaseException.ThrowException(ret); 240 return ret; 241} 242 243 internal int failchk(uint flags) { 244 int ret; 245 ret = libdb_csharpPINVOKE.DB_ENV_failchk(swigCPtr, flags); 246 DatabaseException.ThrowException(ret); 247 return ret; 248} 249 250 internal int fileid_reset(string file, uint flags) { 251 int ret; 252 ret = libdb_csharpPINVOKE.DB_ENV_fileid_reset(swigCPtr, file, flags); 253 DatabaseException.ThrowException(ret); 254 return ret; 255} 256 257 internal int get_home(ref string file) { 258 int ret; 259 ret = libdb_csharpPINVOKE.DB_ENV_get_home(swigCPtr, ref file); 260 DatabaseException.ThrowException(ret); 261 return ret; 262} 263 264 internal int lock_detect(uint flags, uint atype, ref uint rejected) { 265 int ret; 266 ret = libdb_csharpPINVOKE.DB_ENV_lock_detect(swigCPtr, flags, atype, ref rejected); 267 DatabaseException.ThrowException(ret); 268 return ret; 269} 270 271 private DB_LOCK lock_get(uint locker, uint flags, DatabaseEntry arg2, db_lockmode_t mode, ref int err) { 272 try { 273 DB_LOCK ret = new DB_LOCK(libdb_csharpPINVOKE.DB_ENV_lock_get(swigCPtr, locker, flags, DBT.getCPtr(DatabaseEntry.getDBT(arg2)), (int)mode, ref err), true); 274 return ret; 275 } finally { 276 GC.KeepAlive(arg2); 277 } 278 } 279 280 internal int lock_id(ref uint id) { 281 int ret; 282 ret = libdb_csharpPINVOKE.DB_ENV_lock_id(swigCPtr, ref id); 283 DatabaseException.ThrowException(ret); 284 return ret; 285} 286 287 internal int lock_id_free(uint id) { 288 int ret; 289 ret = libdb_csharpPINVOKE.DB_ENV_lock_id_free(swigCPtr, id); 290 DatabaseException.ThrowException(ret); 291 return ret; 292} 293 294 internal int lock_put(DB_LOCK lck) { 295 int ret; 296 ret = libdb_csharpPINVOKE.DB_ENV_lock_put(swigCPtr, DB_LOCK.getCPtr(lck)); 297 DatabaseException.ThrowException(ret); 298 return ret; 299} 300 301 private IntPtr lock_stat(uint flags, ref int err) { 302 return libdb_csharpPINVOKE.DB_ENV_lock_stat(swigCPtr, flags, ref err); 303} 304 305 internal int lock_stat_print(uint flags) { 306 int ret; 307 ret = libdb_csharpPINVOKE.DB_ENV_lock_stat_print(swigCPtr, flags); 308 DatabaseException.ThrowException(ret); 309 return ret; 310} 311 312 internal int lock_vec(uint locker, uint flags, IntPtr[] list, int nlist, DB_LOCKREQ elistp) { 313 int ret; 314 ret = libdb_csharpPINVOKE.DB_ENV_lock_vec(swigCPtr, locker, flags, list, nlist, DB_LOCKREQ.getCPtr(elistp)); 315 DatabaseException.ThrowException(ret); 316 return ret; 317} 318 319 internal List<string> log_archive(uint flags, ref int err, ref int cntp) { 320 IntPtr cPtr = libdb_csharpPINVOKE.DB_ENV_log_archive(swigCPtr, flags, ref err, ref cntp); 321 List<string> ret = new List<string>(); 322 if (cPtr == IntPtr.Zero) 323 return ret; 324 325 IntPtr[] strs = new IntPtr[cntp]; 326 Marshal.Copy(cPtr, strs, 0, cntp); 327 328 for (int i =0; i < cntp; i++) 329 ret.Add(Marshal.PtrToStringAnsi(strs[i])); 330 libdb_csharp.__os_ufree(this, cPtr); 331 return ret; 332} 333 334 private int log_file(DB_LSN lsn, IntPtr namep, uint len) { 335 return libdb_csharpPINVOKE.DB_ENV_log_file(swigCPtr, DB_LSN.getCPtr(lsn), namep, len); 336} 337 338 internal int log_flush(DB_LSN lsn) { 339 int ret; 340 ret = libdb_csharpPINVOKE.DB_ENV_log_flush(swigCPtr, DB_LSN.getCPtr(lsn)); 341 DatabaseException.ThrowException(ret); 342 return ret; 343} 344 345 internal int log_put(DB_LSN lsn, DatabaseEntry data, uint flags) { 346 try { 347 int ret; 348 ret = libdb_csharpPINVOKE.DB_ENV_log_put(swigCPtr, DB_LSN.getCPtr(lsn), DBT.getCPtr(DatabaseEntry.getDBT(data)), flags); 349 DatabaseException.ThrowException(ret); 350 return ret; 351} finally { 352 GC.KeepAlive(data); 353 } 354 } 355 356 internal int log_get_config(uint which, ref int onoff) { 357 int ret; 358 ret = libdb_csharpPINVOKE.DB_ENV_log_get_config(swigCPtr, which, ref onoff); 359 DatabaseException.ThrowException(ret); 360 return ret; 361} 362 363 internal int log_set_config(uint which, int onoff) { 364 int ret; 365 ret = libdb_csharpPINVOKE.DB_ENV_log_set_config(swigCPtr, which, onoff); 366 DatabaseException.ThrowException(ret); 367 return ret; 368} 369 370 internal int log_printf(DB_TXN txn, string str) { 371 int ret; 372 ret = libdb_csharpPINVOKE.DB_ENV_log_printf(swigCPtr, DB_TXN.getCPtr(txn), str); 373 DatabaseException.ThrowException(ret); 374 return ret; 375} 376 377 private IntPtr log_stat(uint flags, ref int err) { 378 return libdb_csharpPINVOKE.DB_ENV_log_stat(swigCPtr, flags, ref err); 379} 380 381 internal int log_stat_print(uint flags) { 382 int ret; 383 ret = libdb_csharpPINVOKE.DB_ENV_log_stat_print(swigCPtr, flags); 384 DatabaseException.ThrowException(ret); 385 return ret; 386} 387 388 internal int lsn_reset(string file, uint flags) { 389 int ret; 390 ret = libdb_csharpPINVOKE.DB_ENV_lsn_reset(swigCPtr, file, flags); 391 DatabaseException.ThrowException(ret); 392 return ret; 393} 394 395 private IntPtr memp_stat(ref IntPtr fstatp, uint flags, ref int err, ref int cntp) { 396 return libdb_csharpPINVOKE.DB_ENV_memp_stat(swigCPtr, ref fstatp, flags, ref err, ref cntp); 397} 398 399 internal int memp_stat_print(uint flags) { 400 int ret; 401 ret = libdb_csharpPINVOKE.DB_ENV_memp_stat_print(swigCPtr, flags); 402 DatabaseException.ThrowException(ret); 403 return ret; 404} 405 406 internal int memp_sync(DB_LSN lsn) { 407 int ret; 408 ret = libdb_csharpPINVOKE.DB_ENV_memp_sync(swigCPtr, DB_LSN.getCPtr(lsn)); 409 DatabaseException.ThrowException(ret); 410 return ret; 411} 412 413 internal int memp_trickle(int percent, ref int nwrotep) { 414 int ret; 415 ret = libdb_csharpPINVOKE.DB_ENV_memp_trickle(swigCPtr, percent, ref nwrotep); 416 DatabaseException.ThrowException(ret); 417 return ret; 418} 419 420 internal int mutex_alloc(uint flags, ref uint mutexp) { 421 int ret; 422 ret = libdb_csharpPINVOKE.DB_ENV_mutex_alloc(swigCPtr, flags, ref mutexp); 423 DatabaseException.ThrowException(ret); 424 return ret; 425} 426 427 internal int mutex_free(uint mutex) { 428 int ret; 429 ret = libdb_csharpPINVOKE.DB_ENV_mutex_free(swigCPtr, mutex); 430 DatabaseException.ThrowException(ret); 431 return ret; 432} 433 434 internal int mutex_lock(uint mutex) { 435 int ret; 436 ret = libdb_csharpPINVOKE.DB_ENV_mutex_lock(swigCPtr, mutex); 437 DatabaseException.ThrowException(ret); 438 return ret; 439} 440 441 private IntPtr mutex_stat(uint flags, ref int err) { 442 return libdb_csharpPINVOKE.DB_ENV_mutex_stat(swigCPtr, flags, ref err); 443} 444 445 internal int mutex_stat_print(uint flags) { 446 int ret; 447 ret = libdb_csharpPINVOKE.DB_ENV_mutex_stat_print(swigCPtr, flags); 448 DatabaseException.ThrowException(ret); 449 return ret; 450} 451 452 internal int mutex_unlock(uint mutex) { 453 int ret; 454 ret = libdb_csharpPINVOKE.DB_ENV_mutex_unlock(swigCPtr, mutex); 455 DatabaseException.ThrowException(ret); 456 return ret; 457} 458 459 internal int mutex_get_align(ref uint align) { 460 int ret; 461 ret = libdb_csharpPINVOKE.DB_ENV_mutex_get_align(swigCPtr, ref align); 462 DatabaseException.ThrowException(ret); 463 return ret; 464} 465 466 internal int mutex_set_align(uint align) { 467 int ret; 468 ret = libdb_csharpPINVOKE.DB_ENV_mutex_set_align(swigCPtr, align); 469 DatabaseException.ThrowException(ret); 470 return ret; 471} 472 473 internal int mutex_get_increment(ref uint increment) { 474 int ret; 475 ret = libdb_csharpPINVOKE.DB_ENV_mutex_get_increment(swigCPtr, ref increment); 476 DatabaseException.ThrowException(ret); 477 return ret; 478} 479 480 internal int mutex_set_increment(uint increment) { 481 int ret; 482 ret = libdb_csharpPINVOKE.DB_ENV_mutex_set_increment(swigCPtr, increment); 483 DatabaseException.ThrowException(ret); 484 return ret; 485} 486 487 internal int mutex_get_max(ref uint max) { 488 int ret; 489 ret = libdb_csharpPINVOKE.DB_ENV_mutex_get_max(swigCPtr, ref max); 490 DatabaseException.ThrowException(ret); 491 return ret; 492} 493 494 internal int mutex_set_max(uint max) { 495 int ret; 496 ret = libdb_csharpPINVOKE.DB_ENV_mutex_set_max(swigCPtr, max); 497 DatabaseException.ThrowException(ret); 498 return ret; 499} 500 501 internal int mutex_get_tas_spins(ref uint tas_spins) { 502 int ret; 503 ret = libdb_csharpPINVOKE.DB_ENV_mutex_get_tas_spins(swigCPtr, ref tas_spins); 504 DatabaseException.ThrowException(ret); 505 return ret; 506} 507 508 internal int mutex_set_tas_spins(uint tas_spins) { 509 int ret; 510 ret = libdb_csharpPINVOKE.DB_ENV_mutex_set_tas_spins(swigCPtr, tas_spins); 511 DatabaseException.ThrowException(ret); 512 return ret; 513} 514 515 internal int open(string home, uint flags, int mode) { 516 int ret; 517 ret = libdb_csharpPINVOKE.DB_ENV_open(swigCPtr, home, flags, mode); 518 if (ret != 0) 519 close(0); 520 DatabaseException.ThrowException(ret); 521 return ret; 522} 523 524 internal int get_open_flags(ref uint flags) { 525 int ret; 526 ret = libdb_csharpPINVOKE.DB_ENV_get_open_flags(swigCPtr, ref flags); 527 DatabaseException.ThrowException(ret); 528 return ret; 529} 530 531 internal int remove(string db_home, uint flags) { 532 int ret; 533 ret = libdb_csharpPINVOKE.DB_ENV_remove(swigCPtr, db_home, flags); 534 /* 535 * remove is a handle destructor, regardless of whether the remove 536 * succeeds. Reflect that in the wrapper class. 537 */ 538 swigCPtr = new HandleRef(null, IntPtr.Zero); 539 DatabaseException.ThrowException(ret); 540 return ret; 541} 542 543 internal int repmgr_add_remote_site(string host, uint port, ref int eidp, uint flags) { 544 int ret; 545 ret = libdb_csharpPINVOKE.DB_ENV_repmgr_add_remote_site(swigCPtr, host, port, ref eidp, flags); 546 DatabaseException.ThrowException(ret); 547 return ret; 548} 549 550 internal int repmgr_set_ack_policy(int ack_policy) { 551 int ret; 552 ret = libdb_csharpPINVOKE.DB_ENV_repmgr_set_ack_policy(swigCPtr, ack_policy); 553 DatabaseException.ThrowException(ret); 554 return ret; 555} 556 557 internal int repmgr_get_ack_policy(ref int ack_policy) { 558 int ret; 559 ret = libdb_csharpPINVOKE.DB_ENV_repmgr_get_ack_policy(swigCPtr, ref ack_policy); 560 DatabaseException.ThrowException(ret); 561 return ret; 562} 563 564 internal int repmgr_set_local_site(string host, uint port, uint flags) { 565 int ret; 566 ret = libdb_csharpPINVOKE.DB_ENV_repmgr_set_local_site(swigCPtr, host, port, flags); 567 DatabaseException.ThrowException(ret); 568 return ret; 569} 570 571 private RepMgrSite[] repmgr_site_list(ref uint countp, ref uint sizep, ref int err) { 572 IntPtr cPtr = libdb_csharpPINVOKE.DB_ENV_repmgr_site_list(swigCPtr, ref countp, ref sizep, ref err); 573 if (cPtr == IntPtr.Zero) 574 return new RepMgrSite[] { null }; 575 /* 576 * This is a big kludgy, but we need to free the memory that 577 * repmgr_site_list mallocs. The RepMgrSite constructors will copy all 578 * the data out of that malloc'd area and we can free it right away. 579 * This is easier than trying to construct a SWIG generated object that 580 * will copy everything in it's constructor, because SWIG generated 581 * classes come with a lot of baggage. 582 */ 583 RepMgrSite[] ret = new RepMgrSite[countp]; 584 for (int i = 0; i < countp; i++) { 585 /* 586 * We're copying data out of an array of countp DB_REPMGR_SITE 587 * structures, whose size varies between 32- and 64-bit 588 * platforms. 589 */ 590 IntPtr val = new IntPtr((IntPtr.Size == 4 ? cPtr.ToInt32() : cPtr.ToInt64()) + i * sizep); 591 ret[i] = new RepMgrSite(new DB_REPMGR_SITE(val, false)); 592 } 593 libdb_csharp.__os_ufree(this, cPtr); 594 return ret; 595} 596 597 internal int repmgr_start(int nthreads, uint flags) { 598 int ret; 599 ret = libdb_csharpPINVOKE.DB_ENV_repmgr_start(swigCPtr, nthreads, flags); 600 DatabaseException.ThrowException(ret); 601 return ret; 602} 603 604 private IntPtr repmgr_stat(uint flags, ref int err) { 605 return libdb_csharpPINVOKE.DB_ENV_repmgr_stat(swigCPtr, flags, ref err); 606} 607 608 internal int repmgr_stat_print(uint flags) { 609 int ret; 610 ret = libdb_csharpPINVOKE.DB_ENV_repmgr_stat_print(swigCPtr, flags); 611 DatabaseException.ThrowException(ret); 612 return ret; 613} 614 615 internal int rep_elect(uint nsites, uint nvotes, uint flags) { 616 int ret; 617 ret = libdb_csharpPINVOKE.DB_ENV_rep_elect(swigCPtr, nsites, nvotes, flags); 618 DatabaseException.ThrowException(ret); 619 return ret; 620} 621 622 internal int rep_process_message(DatabaseEntry control, DatabaseEntry rec, int envid, DB_LSN ret_lsnp) { 623 try { 624 int ret; 625 ret = libdb_csharpPINVOKE.DB_ENV_rep_process_message(swigCPtr, DBT.getCPtr(DatabaseEntry.getDBT(control)), DBT.getCPtr(DatabaseEntry.getDBT(rec)), envid, DB_LSN.getCPtr(ret_lsnp)); 626 DatabaseException.ThrowException(ret); 627 return ret; 628} finally { 629 GC.KeepAlive(control); 630 GC.KeepAlive(rec); 631 } 632 } 633 634 internal int rep_start(DatabaseEntry cdata, uint flags) { 635 try { 636 int ret; 637 ret = libdb_csharpPINVOKE.DB_ENV_rep_start(swigCPtr, DBT.getCPtr(DatabaseEntry.getDBT(cdata)), flags); 638 DatabaseException.ThrowException(ret); 639 return ret; 640} finally { 641 GC.KeepAlive(cdata); 642 } 643 } 644 645 private IntPtr rep_stat(uint flags, ref int err) { 646 return libdb_csharpPINVOKE.DB_ENV_rep_stat(swigCPtr, flags, ref err); 647} 648 649 internal int rep_stat_print(uint flags) { 650 int ret; 651 ret = libdb_csharpPINVOKE.DB_ENV_rep_stat_print(swigCPtr, flags); 652 DatabaseException.ThrowException(ret); 653 return ret; 654} 655 656 internal int rep_sync(uint flags) { 657 int ret; 658 ret = libdb_csharpPINVOKE.DB_ENV_rep_sync(swigCPtr, flags); 659 DatabaseException.ThrowException(ret); 660 return ret; 661} 662 663 internal int rep_set_config(uint which, int onoff) { 664 int ret; 665 ret = libdb_csharpPINVOKE.DB_ENV_rep_set_config(swigCPtr, which, onoff); 666 DatabaseException.ThrowException(ret); 667 return ret; 668} 669 670 internal int rep_get_config(uint which, ref int onoffp) { 671 int ret; 672 ret = libdb_csharpPINVOKE.DB_ENV_rep_get_config(swigCPtr, which, ref onoffp); 673 DatabaseException.ThrowException(ret); 674 return ret; 675} 676 677 internal int rep_set_clockskew(uint fast_clock, uint slow_clock) { 678 int ret; 679 ret = libdb_csharpPINVOKE.DB_ENV_rep_set_clockskew(swigCPtr, fast_clock, slow_clock); 680 DatabaseException.ThrowException(ret); 681 return ret; 682} 683 684 internal int rep_get_clockskew(ref uint fast_clockp, ref uint slow_clockp) { 685 int ret; 686 ret = libdb_csharpPINVOKE.DB_ENV_rep_get_clockskew(swigCPtr, ref fast_clockp, ref slow_clockp); 687 DatabaseException.ThrowException(ret); 688 return ret; 689} 690 691 internal int rep_set_limit(uint gbytes, uint bytes) { 692 int ret; 693 ret = libdb_csharpPINVOKE.DB_ENV_rep_set_limit(swigCPtr, gbytes, bytes); 694 DatabaseException.ThrowException(ret); 695 return ret; 696} 697 698 internal int rep_get_limit(ref uint gbytesp, ref uint bytesp) { 699 int ret; 700 ret = libdb_csharpPINVOKE.DB_ENV_rep_get_limit(swigCPtr, ref gbytesp, ref bytesp); 701 DatabaseException.ThrowException(ret); 702 return ret; 703} 704 705 internal int rep_set_nsites(uint nsites) { 706 int ret; 707 ret = libdb_csharpPINVOKE.DB_ENV_rep_set_nsites(swigCPtr, nsites); 708 DatabaseException.ThrowException(ret); 709 return ret; 710} 711 712 internal int rep_get_nsites(ref uint nsitesp) { 713 int ret; 714 ret = libdb_csharpPINVOKE.DB_ENV_rep_get_nsites(swigCPtr, ref nsitesp); 715 DatabaseException.ThrowException(ret); 716 return ret; 717} 718 719 internal int rep_set_priority(uint priority) { 720 int ret; 721 ret = libdb_csharpPINVOKE.DB_ENV_rep_set_priority(swigCPtr, priority); 722 DatabaseException.ThrowException(ret); 723 return ret; 724} 725 726 internal int rep_get_priority(ref uint priorityp) { 727 int ret; 728 ret = libdb_csharpPINVOKE.DB_ENV_rep_get_priority(swigCPtr, ref priorityp); 729 DatabaseException.ThrowException(ret); 730 return ret; 731} 732 733 internal int rep_set_request(uint min, uint max) { 734 int ret; 735 ret = libdb_csharpPINVOKE.DB_ENV_rep_set_request(swigCPtr, min, max); 736 DatabaseException.ThrowException(ret); 737 return ret; 738} 739 740 internal int rep_get_request(ref uint minp, ref uint maxp) { 741 int ret; 742 ret = libdb_csharpPINVOKE.DB_ENV_rep_get_request(swigCPtr, ref minp, ref maxp); 743 DatabaseException.ThrowException(ret); 744 return ret; 745} 746 747 internal int rep_set_timeout(int which, uint timeout) { 748 int ret; 749 ret = libdb_csharpPINVOKE.DB_ENV_rep_set_timeout(swigCPtr, which, timeout); 750 DatabaseException.ThrowException(ret); 751 return ret; 752} 753 754 internal int rep_get_timeout(int which, ref uint timeoutp) { 755 int ret; 756 ret = libdb_csharpPINVOKE.DB_ENV_rep_get_timeout(swigCPtr, which, ref timeoutp); 757 DatabaseException.ThrowException(ret); 758 return ret; 759} 760 761 internal int rep_set_transport(int envid, BDB_RepTransportDelegate send) { 762 int ret; 763 ret = libdb_csharpPINVOKE.DB_ENV_rep_set_transport(swigCPtr, envid, send); 764 DatabaseException.ThrowException(ret); 765 return ret; 766} 767 768 internal int get_cachesize(ref uint gbytes, ref uint bytes, ref int ncache) { 769 int ret; 770 ret = libdb_csharpPINVOKE.DB_ENV_get_cachesize(swigCPtr, ref gbytes, ref bytes, ref ncache); 771 DatabaseException.ThrowException(ret); 772 return ret; 773} 774 775 internal int set_cachesize(uint gbytes, uint bytes, int ncache) { 776 int ret; 777 ret = libdb_csharpPINVOKE.DB_ENV_set_cachesize(swigCPtr, gbytes, bytes, ncache); 778 DatabaseException.ThrowException(ret); 779 return ret; 780} 781 782 internal int get_cache_max(ref uint gbytes, ref uint bytes) { 783 int ret; 784 ret = libdb_csharpPINVOKE.DB_ENV_get_cache_max(swigCPtr, ref gbytes, ref bytes); 785 DatabaseException.ThrowException(ret); 786 return ret; 787} 788 789 internal int set_cache_max(uint gbytes, uint bytes) { 790 int ret; 791 ret = libdb_csharpPINVOKE.DB_ENV_set_cache_max(swigCPtr, gbytes, bytes); 792 DatabaseException.ThrowException(ret); 793 return ret; 794} 795 796 private List<string> get_data_dirs(ref int err, ref int cntp) { 797 IntPtr cPtr = libdb_csharpPINVOKE.DB_ENV_get_data_dirs(swigCPtr, ref err, ref cntp); 798 List<string> ret = new List<string>(); 799 if (cPtr == IntPtr.Zero) 800 return ret; 801 802 IntPtr[] strs = new IntPtr[cntp]; 803 Marshal.Copy(cPtr, strs, 0, cntp); 804 805 for (int i =0; i < cntp; i++) 806 ret.Add(Marshal.PtrToStringAnsi(strs[i])); 807 808 return ret; 809} 810 811 internal int add_data_dir(string dir) { 812 int ret; 813 ret = libdb_csharpPINVOKE.DB_ENV_add_data_dir(swigCPtr, dir); 814 DatabaseException.ThrowException(ret); 815 return ret; 816} 817 818 internal int set_create_dir(string dir) { 819 int ret; 820 ret = libdb_csharpPINVOKE.DB_ENV_set_create_dir(swigCPtr, dir); 821 DatabaseException.ThrowException(ret); 822 return ret; 823} 824 825 internal int get_encrypt_flags(ref uint flags) { 826 int ret; 827 ret = libdb_csharpPINVOKE.DB_ENV_get_encrypt_flags(swigCPtr, ref flags); 828 DatabaseException.ThrowException(ret); 829 return ret; 830} 831 832 internal int set_encrypt(string passwd, uint flags) { 833 int ret; 834 ret = libdb_csharpPINVOKE.DB_ENV_set_encrypt(swigCPtr, passwd, flags); 835 DatabaseException.ThrowException(ret); 836 return ret; 837} 838 839 internal void set_errcall(BDB_ErrcallDelegate db_errcall_fcn) { 840 libdb_csharpPINVOKE.DB_ENV_set_errcall(swigCPtr, db_errcall_fcn); 841 } 842 843 internal int set_event_notify(BDB_EventNotifyDelegate callback) { 844 int ret; 845 ret = libdb_csharpPINVOKE.DB_ENV_set_event_notify(swigCPtr, callback); 846 DatabaseException.ThrowException(ret); 847 return ret; 848} 849 850 internal int set_feedback(BDB_EnvFeedbackDelegate callback) { 851 int ret; 852 ret = libdb_csharpPINVOKE.DB_ENV_set_feedback(swigCPtr, callback); 853 DatabaseException.ThrowException(ret); 854 return ret; 855} 856 857 internal int get_flags(ref uint flags) { 858 int ret; 859 ret = libdb_csharpPINVOKE.DB_ENV_get_flags(swigCPtr, ref flags); 860 DatabaseException.ThrowException(ret); 861 return ret; 862} 863 864 internal int set_flags(uint flags, int onoff) { 865 int ret; 866 ret = libdb_csharpPINVOKE.DB_ENV_set_flags(swigCPtr, flags, onoff); 867 DatabaseException.ThrowException(ret); 868 return ret; 869} 870 871 internal int get_intermediate_dir_mode(ref string mode) { 872 int ret; 873 ret = libdb_csharpPINVOKE.DB_ENV_get_intermediate_dir_mode(swigCPtr, ref mode); 874 DatabaseException.ThrowException(ret); 875 return ret; 876} 877 878 internal int set_intermediate_dir_mode(string mode) { 879 int ret; 880 ret = libdb_csharpPINVOKE.DB_ENV_set_intermediate_dir_mode(swigCPtr, mode); 881 DatabaseException.ThrowException(ret); 882 return ret; 883} 884 885 internal int set_isalive(BDB_IsAliveDelegate callback) { 886 int ret; 887 ret = libdb_csharpPINVOKE.DB_ENV_set_isalive(swigCPtr, callback); 888 DatabaseException.ThrowException(ret); 889 return ret; 890} 891 892 internal int get_lg_bsize(ref uint bsize) { 893 int ret; 894 ret = libdb_csharpPINVOKE.DB_ENV_get_lg_bsize(swigCPtr, ref bsize); 895 DatabaseException.ThrowException(ret); 896 return ret; 897} 898 899 internal int set_lg_bsize(uint bsize) { 900 int ret; 901 ret = libdb_csharpPINVOKE.DB_ENV_set_lg_bsize(swigCPtr, bsize); 902 DatabaseException.ThrowException(ret); 903 return ret; 904} 905 906 internal int get_lg_dir(ref string dir) { 907 int ret; 908 ret = libdb_csharpPINVOKE.DB_ENV_get_lg_dir(swigCPtr, ref dir); 909 DatabaseException.ThrowException(ret); 910 return ret; 911} 912 913 internal int set_lg_dir(string dir) { 914 int ret; 915 ret = libdb_csharpPINVOKE.DB_ENV_set_lg_dir(swigCPtr, dir); 916 DatabaseException.ThrowException(ret); 917 return ret; 918} 919 920 internal int get_lg_filemode(ref int mode) { 921 int ret; 922 ret = libdb_csharpPINVOKE.DB_ENV_get_lg_filemode(swigCPtr, ref mode); 923 DatabaseException.ThrowException(ret); 924 return ret; 925} 926 927 internal int set_lg_filemode(int mode) { 928 int ret; 929 ret = libdb_csharpPINVOKE.DB_ENV_set_lg_filemode(swigCPtr, mode); 930 DatabaseException.ThrowException(ret); 931 return ret; 932} 933 934 internal int get_lg_max(ref uint max) { 935 int ret; 936 ret = libdb_csharpPINVOKE.DB_ENV_get_lg_max(swigCPtr, ref max); 937 DatabaseException.ThrowException(ret); 938 return ret; 939} 940 941 internal int set_lg_max(uint max) { 942 int ret; 943 ret = libdb_csharpPINVOKE.DB_ENV_set_lg_max(swigCPtr, max); 944 DatabaseException.ThrowException(ret); 945 return ret; 946} 947 948 internal int get_lg_regionmax(ref uint max) { 949 int ret; 950 ret = libdb_csharpPINVOKE.DB_ENV_get_lg_regionmax(swigCPtr, ref max); 951 DatabaseException.ThrowException(ret); 952 return ret; 953} 954 955 internal int set_lg_regionmax(uint max) { 956 int ret; 957 ret = libdb_csharpPINVOKE.DB_ENV_set_lg_regionmax(swigCPtr, max); 958 DatabaseException.ThrowException(ret); 959 return ret; 960} 961 962 internal int get_lk_conflicts_nmodes(ref int nmodes) { 963 int ret; 964 ret = libdb_csharpPINVOKE.DB_ENV_get_lk_conflicts_nmodes(swigCPtr, ref nmodes); 965 DatabaseException.ThrowException(ret); 966 return ret; 967} 968 969 internal int get_lk_conflicts(byte[,] conflicts) { 970 int ret; 971 ret = libdb_csharpPINVOKE.DB_ENV_get_lk_conflicts(swigCPtr, conflicts); 972 DatabaseException.ThrowException(ret); 973 return ret; 974} 975 976 internal int set_lk_conflicts(byte[,] conflicts, int nmodes) { 977 int ret; 978 ret = libdb_csharpPINVOKE.DB_ENV_set_lk_conflicts(swigCPtr, conflicts, nmodes); 979 DatabaseException.ThrowException(ret); 980 return ret; 981} 982 983 internal int get_lk_detect(ref uint mode) { 984 int ret; 985 ret = libdb_csharpPINVOKE.DB_ENV_get_lk_detect(swigCPtr, ref mode); 986 DatabaseException.ThrowException(ret); 987 return ret; 988} 989 990 internal int set_lk_detect(uint mode) { 991 int ret; 992 ret = libdb_csharpPINVOKE.DB_ENV_set_lk_detect(swigCPtr, mode); 993 DatabaseException.ThrowException(ret); 994 return ret; 995} 996 997 internal int get_lk_max_locks(ref uint max) { 998 int ret; 999 ret = libdb_csharpPINVOKE.DB_ENV_get_lk_max_locks(swigCPtr, ref max); 1000 DatabaseException.ThrowException(ret); 1001 return ret; 1002} 1003 1004 internal int set_lk_max_locks(uint max) { 1005 int ret; 1006 ret = libdb_csharpPINVOKE.DB_ENV_set_lk_max_locks(swigCPtr, max); 1007 DatabaseException.ThrowException(ret); 1008 return ret; 1009} 1010 1011 internal int get_lk_max_lockers(ref uint max) { 1012 int ret; 1013 ret = libdb_csharpPINVOKE.DB_ENV_get_lk_max_lockers(swigCPtr, ref max); 1014 DatabaseException.ThrowException(ret); 1015 return ret; 1016} 1017 1018 internal int set_lk_max_lockers(uint max) { 1019 int ret; 1020 ret = libdb_csharpPINVOKE.DB_ENV_set_lk_max_lockers(swigCPtr, max); 1021 DatabaseException.ThrowException(ret); 1022 return ret; 1023} 1024 1025 internal int get_lk_max_objects(ref uint max) { 1026 int ret; 1027 ret = libdb_csharpPINVOKE.DB_ENV_get_lk_max_objects(swigCPtr, ref max); 1028 DatabaseException.ThrowException(ret); 1029 return ret; 1030} 1031 1032 internal int set_lk_max_objects(uint max) { 1033 int ret; 1034 ret = libdb_csharpPINVOKE.DB_ENV_set_lk_max_objects(swigCPtr, max); 1035 DatabaseException.ThrowException(ret); 1036 return ret; 1037} 1038 1039 internal int get_lk_partitions(ref uint max) { 1040 int ret; 1041 ret = libdb_csharpPINVOKE.DB_ENV_get_lk_partitions(swigCPtr, ref max); 1042 DatabaseException.ThrowException(ret); 1043 return ret; 1044} 1045 1046 internal int set_lk_partitions(uint max) { 1047 int ret; 1048 ret = libdb_csharpPINVOKE.DB_ENV_set_lk_partitions(swigCPtr, max); 1049 DatabaseException.ThrowException(ret); 1050 return ret; 1051} 1052 1053 internal int get_mp_max_openfd(ref int maxopenfd) { 1054 int ret; 1055 ret = libdb_csharpPINVOKE.DB_ENV_get_mp_max_openfd(swigCPtr, ref maxopenfd); 1056 DatabaseException.ThrowException(ret); 1057 return ret; 1058} 1059 1060 internal int set_mp_max_openfd(int maxopenfd) { 1061 int ret; 1062 ret = libdb_csharpPINVOKE.DB_ENV_set_mp_max_openfd(swigCPtr, maxopenfd); 1063 DatabaseException.ThrowException(ret); 1064 return ret; 1065} 1066 1067 internal int get_mp_max_write(ref int maxwrite, ref uint maxwrite_sleep) { 1068 int ret; 1069 ret = libdb_csharpPINVOKE.DB_ENV_get_mp_max_write(swigCPtr, ref maxwrite, ref maxwrite_sleep); 1070 DatabaseException.ThrowException(ret); 1071 return ret; 1072} 1073 1074 internal int set_mp_max_write(int maxwrite, uint maxwrite_sleep) { 1075 int ret; 1076 ret = libdb_csharpPINVOKE.DB_ENV_set_mp_max_write(swigCPtr, maxwrite, maxwrite_sleep); 1077 DatabaseException.ThrowException(ret); 1078 return ret; 1079} 1080 1081 internal int get_mp_mmapsize(ref uint mp_mmapsize) { 1082 int ret; 1083 ret = libdb_csharpPINVOKE.DB_ENV_get_mp_mmapsize(swigCPtr, ref mp_mmapsize); 1084 DatabaseException.ThrowException(ret); 1085 return ret; 1086} 1087 1088 internal int set_mp_mmapsize(uint mp_mmapsize) { 1089 int ret; 1090 ret = libdb_csharpPINVOKE.DB_ENV_set_mp_mmapsize(swigCPtr, mp_mmapsize); 1091 DatabaseException.ThrowException(ret); 1092 return ret; 1093} 1094 1095 internal int get_thread_count(ref uint count) { 1096 int ret; 1097 ret = libdb_csharpPINVOKE.DB_ENV_get_thread_count(swigCPtr, ref count); 1098 DatabaseException.ThrowException(ret); 1099 return ret; 1100} 1101 1102 internal int set_thread_count(uint count) { 1103 int ret; 1104 ret = libdb_csharpPINVOKE.DB_ENV_set_thread_count(swigCPtr, count); 1105 DatabaseException.ThrowException(ret); 1106 return ret; 1107} 1108 1109 internal int set_thread_id(BDB_ThreadIDDelegate callback) { 1110 int ret; 1111 ret = libdb_csharpPINVOKE.DB_ENV_set_thread_id(swigCPtr, callback); 1112 DatabaseException.ThrowException(ret); 1113 return ret; 1114} 1115 1116 internal int set_thread_id_string(BDB_ThreadNameDelegate callback) { 1117 int ret; 1118 ret = libdb_csharpPINVOKE.DB_ENV_set_thread_id_string(swigCPtr, callback); 1119 DatabaseException.ThrowException(ret); 1120 return ret; 1121} 1122 1123 internal int get_timeout(ref uint timeout, uint flags) { 1124 int ret; 1125 ret = libdb_csharpPINVOKE.DB_ENV_get_timeout(swigCPtr, ref timeout, flags); 1126 DatabaseException.ThrowException(ret); 1127 return ret; 1128} 1129 1130 internal int set_timeout(uint timeout, uint flags) { 1131 int ret; 1132 ret = libdb_csharpPINVOKE.DB_ENV_set_timeout(swigCPtr, timeout, flags); 1133 DatabaseException.ThrowException(ret); 1134 return ret; 1135} 1136 1137 internal int get_tmp_dir(ref string dir) { 1138 int ret; 1139 ret = libdb_csharpPINVOKE.DB_ENV_get_tmp_dir(swigCPtr, ref dir); 1140 DatabaseException.ThrowException(ret); 1141 return ret; 1142} 1143 1144 internal int set_tmp_dir(string dir) { 1145 int ret; 1146 ret = libdb_csharpPINVOKE.DB_ENV_set_tmp_dir(swigCPtr, dir); 1147 DatabaseException.ThrowException(ret); 1148 return ret; 1149} 1150 1151 internal int get_tx_max(ref uint max) { 1152 int ret; 1153 ret = libdb_csharpPINVOKE.DB_ENV_get_tx_max(swigCPtr, ref max); 1154 DatabaseException.ThrowException(ret); 1155 return ret; 1156} 1157 1158 internal int set_tx_max(uint max) { 1159 int ret; 1160 ret = libdb_csharpPINVOKE.DB_ENV_set_tx_max(swigCPtr, max); 1161 DatabaseException.ThrowException(ret); 1162 return ret; 1163} 1164 1165 internal int get_tx_timestamp(ref long timestamp) { 1166 int ret; 1167 ret = libdb_csharpPINVOKE.DB_ENV_get_tx_timestamp(swigCPtr, ref timestamp); 1168 DatabaseException.ThrowException(ret); 1169 return ret; 1170} 1171 1172 internal int set_tx_timestamp(ref long timestamp) { 1173 int ret; 1174 ret = libdb_csharpPINVOKE.DB_ENV_set_tx_timestamp(swigCPtr, ref timestamp); 1175 DatabaseException.ThrowException(ret); 1176 return ret; 1177} 1178 1179 internal int get_verbose(ref uint msgs) { 1180 int ret; 1181 ret = libdb_csharpPINVOKE.DB_ENV_get_verbose(swigCPtr, ref msgs); 1182 DatabaseException.ThrowException(ret); 1183 return ret; 1184} 1185 1186 internal int set_verbose(uint which, int onoff) { 1187 int ret; 1188 ret = libdb_csharpPINVOKE.DB_ENV_set_verbose(swigCPtr, which, onoff); 1189 DatabaseException.ThrowException(ret); 1190 return ret; 1191} 1192 1193 internal int stat_print(uint flags) { 1194 int ret; 1195 ret = libdb_csharpPINVOKE.DB_ENV_stat_print(swigCPtr, flags); 1196 DatabaseException.ThrowException(ret); 1197 return ret; 1198} 1199 1200 private DB_TXN txn_begin(DB_TXN parent, uint flags, ref int err) { 1201 IntPtr cPtr = libdb_csharpPINVOKE.DB_ENV_txn_begin(swigCPtr, DB_TXN.getCPtr(parent), flags, ref err); 1202 DB_TXN ret = (cPtr == IntPtr.Zero) ? null : new DB_TXN(cPtr, false); 1203 return ret; 1204 } 1205 1206 internal int txn_checkpoint(uint kbyte, uint min, uint flags) { 1207 int ret; 1208 ret = libdb_csharpPINVOKE.DB_ENV_txn_checkpoint(swigCPtr, kbyte, min, flags); 1209 DatabaseException.ThrowException(ret); 1210 return ret; 1211} 1212 1213 private int txn_recover(IntPtr preplist, uint count, ref uint retp, uint flags) { 1214 int ret; 1215 ret = libdb_csharpPINVOKE.DB_ENV_txn_recover(swigCPtr, preplist, count, ref retp, flags); 1216 DatabaseException.ThrowException(ret); 1217 return ret; 1218} 1219 1220 private IntPtr txn_stat(uint flags, ref uint size, ref int err) { 1221 return libdb_csharpPINVOKE.DB_ENV_txn_stat(swigCPtr, flags, ref size, ref err); 1222} 1223 1224 internal int txn_stat_print(uint flags) { 1225 int ret; 1226 ret = libdb_csharpPINVOKE.DB_ENV_txn_stat_print(swigCPtr, flags); 1227 DatabaseException.ThrowException(ret); 1228 return ret; 1229} 1230 1231} 1232 1233} 1234