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
|
//
// OciDescriptorHandle.cs
//
// Part of managed C#/.NET library System.Data.OracleClient.dll
//
// Part of the Mono class libraries at
// mcs/class/System.Data.OracleClient/System.Data.OracleClient.Oci
//
// Assembly: System.Data.OracleClient.dll
// Namespace: System.Data.OracleClient.Oci
//
// Author:
// Tim Coleman <tim@timcoleman.com>
//
// Copyright (C) Tim Coleman, 2003
//
using System;
using System.Runtime.InteropServices;
namespace System.Data.OracleClient.Oci {
internal abstract class OciDescriptorHandle : OciHandle
{
#region Constructors
internal OciDescriptorHandle (OciHandleType type, OciHandle parent, IntPtr newHandle)
: base (type, parent, newHandle)
{
}
#endregion // Constructors
#region Methods
protected override void FreeHandle ()
{
// Parameter handles are disposed implicitely
if (HandleType >= OciHandleType.LobLocator) {
switch(HandleType) {
case OciHandleType.Parameter:
case OciHandleType.TimeStamp:
break;
default:
if (Handle != IntPtr.Zero) {
OciCalls.OCIDescriptorFree (this, HandleType);
SetHandle (IntPtr.Zero);
}
break;
}
}
}
#endregion // Methods
}
}
|