summaryrefslogtreecommitdiff
path: root/lang/csharp/src/Internal/DBT.cs
blob: 116fc457fc7ba1af7bb958d6a550a60a757e7165 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 2.0.12
 *
 * Do not make changes to this file unless you know what you are doing--modify
 * the SWIG interface file instead.
 * ----------------------------------------------------------------------------- */

namespace BerkeleyDB.Internal {

using System;
using System.Runtime.InteropServices;

internal class DBT : IDisposable {
  private HandleRef swigCPtr;
  protected bool swigCMemOwn;

  internal DBT(IntPtr cPtr, bool cMemoryOwn) {
    swigCMemOwn = cMemoryOwn;
    swigCPtr = new HandleRef(this, cPtr);
  }

  internal static HandleRef getCPtr(DBT obj) {
    return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;
  }

  ~DBT() {
    Dispose();
  }

  public virtual void Dispose() {
    lock(this) {
      if (swigCPtr.Handle != IntPtr.Zero) {
        if (swigCMemOwn) {
          swigCMemOwn = false;
          libdb_csharpPINVOKE.delete_DBT(swigCPtr);
        }
        swigCPtr = new HandleRef(null, IntPtr.Zero);
      }
      GC.SuppressFinalize(this);
    }
  }

	internal IntPtr dataPtr {
		get {
			return libdb_csharpPINVOKE.DBT_data_get(swigCPtr);
		}
		set {
			libdb_csharpPINVOKE.DBT_data_set(swigCPtr, value);
		}
	}

  internal uint dlen {
    set {
      libdb_csharpPINVOKE.DBT_dlen_set(swigCPtr, value);
    } 
    get {
      uint ret = libdb_csharpPINVOKE.DBT_dlen_get(swigCPtr);
      return ret;
    } 
  }

  internal uint doff {
    set {
      libdb_csharpPINVOKE.DBT_doff_set(swigCPtr, value);
    } 
    get {
      uint ret = libdb_csharpPINVOKE.DBT_doff_get(swigCPtr);
      return ret;
    } 
  }

  internal uint flags {
    set {
      libdb_csharpPINVOKE.DBT_flags_set(swigCPtr, value);
    } 
    get {
      uint ret = libdb_csharpPINVOKE.DBT_flags_get(swigCPtr);
      return ret;
    } 
  }

  internal uint size {
    set {
      libdb_csharpPINVOKE.DBT_size_set(swigCPtr, value);
    } 
    get {
      uint ret = libdb_csharpPINVOKE.DBT_size_get(swigCPtr);
      return ret;
    } 
  }

  internal uint ulen {
    set {
      libdb_csharpPINVOKE.DBT_ulen_set(swigCPtr, value);
    } 
    get {
      uint ret = libdb_csharpPINVOKE.DBT_ulen_get(swigCPtr);
      return ret;
    } 
  }

  internal byte[] data {
	set {
		IntPtr _data = Marshal.AllocHGlobal(value.Length);
        Marshal.Copy(value, 0, _data, value.Length);
        libdb_csharpPINVOKE.DBT_data_set(swigCPtr, _data);
        size = (uint)value.Length;
	}

	get {
		IntPtr datap = libdb_csharpPINVOKE.DBT_data_get(swigCPtr);
		int sz = (int)size;
		byte[] ret = new byte[sz];
		Marshal.Copy(datap, ret, 0, sz);
		return ret;
	}

  }

  internal DatabaseEntry app_data {
    set {
      libdb_csharpPINVOKE.DBT_app_data_set(swigCPtr, value);
    } 
		get { return libdb_csharpPINVOKE.DBT_app_data_get(swigCPtr); }
	
  }

  internal DBT() : this(libdb_csharpPINVOKE.new_DBT(), true) { 
		flags = DbConstants.DB_DBT_USERCOPY;
	} 
}

}