Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / DataOracleClient / System / Data / OracleClient / TempEnvironment.cs / 1 / TempEnvironment.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
//-----------------------------------------------------------------------------
namespace System.Data.OracleClient
{
using System;
using System.Diagnostics;
using System.Security;
using System.Security.Permissions;
//---------------------------------------------------------------------
// TempEnvironment
//
// Temporary Environment, used to get temporary handles so we don't
// have to pass the environment handle everywhere.
//
sealed internal class TempEnvironment {
static private OciEnvironmentHandle environmentHandle;
static private OciErrorHandle availableErrorHandle; //
static private volatile bool isInitialized;
static private object locked = new object();
private TempEnvironment() { }
static void Initialize() {
lock (locked) {
if (!isInitialized) {
bool unicode = false;
OCI.MODE environmentMode = (OCI.MODE.OCI_THREADED | OCI.MODE.OCI_OBJECT); // NOTE: cannot be NO_MUTEX because we might be multi-threaded.
OCI.DetermineClientVersion();
//1
#if NEVER
if (OCI.ClientVersionAtLeastOracle9i) {
unicode = true;
environmentMode |= OCI.MODE.OCI_UTF16;
}
#endif //0
environmentHandle = new OciEnvironmentHandle(environmentMode, unicode);
availableErrorHandle = new OciErrorHandle(environmentHandle);
isInitialized = true;
}
}
}
static internal OciErrorHandle GetErrorHandle() {
OracleConnection.VerifyExecutePermission();
if (!isInitialized) {
Initialize();
}
return availableErrorHandle; //
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
//-----------------------------------------------------------------------------
namespace System.Data.OracleClient
{
using System;
using System.Diagnostics;
using System.Security;
using System.Security.Permissions;
//---------------------------------------------------------------------
// TempEnvironment
//
// Temporary Environment, used to get temporary handles so we don't
// have to pass the environment handle everywhere.
//
sealed internal class TempEnvironment {
static private OciEnvironmentHandle environmentHandle;
static private OciErrorHandle availableErrorHandle; //
static private volatile bool isInitialized;
static private object locked = new object();
private TempEnvironment() { }
static void Initialize() {
lock (locked) {
if (!isInitialized) {
bool unicode = false;
OCI.MODE environmentMode = (OCI.MODE.OCI_THREADED | OCI.MODE.OCI_OBJECT); // NOTE: cannot be NO_MUTEX because we might be multi-threaded.
OCI.DetermineClientVersion();
//1
#if NEVER
if (OCI.ClientVersionAtLeastOracle9i) {
unicode = true;
environmentMode |= OCI.MODE.OCI_UTF16;
}
#endif //0
environmentHandle = new OciEnvironmentHandle(environmentMode, unicode);
availableErrorHandle = new OciErrorHandle(environmentHandle);
isInitialized = true;
}
}
}
static internal OciErrorHandle GetErrorHandle() {
OracleConnection.VerifyExecutePermission();
if (!isInitialized) {
Initialize();
}
return availableErrorHandle; //
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Graphics.cs
- Converter.cs
- GroupBox.cs
- FunctionNode.cs
- CharacterBufferReference.cs
- AbstractDataSvcMapFileLoader.cs
- TogglePattern.cs
- WorkflowMarkupSerializerMapping.cs
- Int16AnimationBase.cs
- AllMembershipCondition.cs
- NodeFunctions.cs
- SystemColors.cs
- TreeChangeInfo.cs
- VoiceInfo.cs
- Transform3D.cs
- ListControlDesigner.cs
- XmlTextAttribute.cs
- MsmqIntegrationChannelFactory.cs
- Descriptor.cs
- QueuePathEditor.cs
- ADConnectionHelper.cs
- LeftCellWrapper.cs
- EventToken.cs
- SHA1Managed.cs
- HtmlContainerControl.cs
- BaseDataList.cs
- DefaultTextStore.cs
- BindingMemberInfo.cs
- CalendarAutoFormat.cs
- HandledEventArgs.cs
- BoolExpressionVisitors.cs
- ArcSegment.cs
- NamespaceQuery.cs
- CompilerWrapper.cs
- WebResponse.cs
- DSASignatureFormatter.cs
- DropDownList.cs
- DatagridviewDisplayedBandsData.cs
- DefaultAsyncDataDispatcher.cs
- ScriptIgnoreAttribute.cs
- SwitchElementsCollection.cs
- CodeIdentifier.cs
- JulianCalendar.cs
- SimpleType.cs
- Double.cs
- SerializationInfoEnumerator.cs
- LifetimeServices.cs
- PackUriHelper.cs
- x509utils.cs
- Stopwatch.cs
- DocumentCollection.cs
- DragStartedEventArgs.cs
- Invariant.cs
- Nullable.cs
- SmiXetterAccessMap.cs
- Signature.cs
- SqlInternalConnection.cs
- VariableAction.cs
- RelOps.cs
- Stacktrace.cs
- LabelAutomationPeer.cs
- GeneralTransform3DTo2DTo3D.cs
- OLEDB_Enum.cs
- DropAnimation.xaml.cs
- TransactionOptions.cs
- DNS.cs
- TableProvider.cs
- UnsignedPublishLicense.cs
- IriParsingElement.cs
- LayoutEvent.cs
- UDPClient.cs
- QueryContinueDragEventArgs.cs
- CachedBitmap.cs
- Site.cs
- GetWinFXPath.cs
- UInt32Storage.cs
- TableItemStyle.cs
- ToolStripContainerDesigner.cs
- PropertyTab.cs
- Timer.cs
- SecurityContext.cs
- HelpEvent.cs
- ImageSourceConverter.cs
- CacheModeConverter.cs
- MarkupExtensionParser.cs
- ToolStripItemClickedEventArgs.cs
- RegexFCD.cs
- DragDropHelper.cs
- PlanCompilerUtil.cs
- SearchForVirtualItemEventArgs.cs
- ArcSegment.cs
- AppDomainManager.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- LayoutEditorPart.cs
- CompilerGeneratedAttribute.cs
- DbUpdateCommandTree.cs
- MatrixAnimationBase.cs
- xml.cs
- RoleManagerSection.cs
- RegexRunnerFactory.cs