SmiConnection.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Data / Microsoft / SqlServer / Server / SmiConnection.cs / 1 / SmiConnection.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// [....] 
// [....]
//----------------------------------------------------------------------------- 
 
namespace Microsoft.SqlServer.Server {
 
    using System;
    using System.Data;

    internal abstract class SmiConnection : IDisposable { 

        // 
        // Miscellaneous directives / accessors 
        //
 
        internal abstract string GetCurrentDatabase(
            SmiEventSink        eventSink
        );
 
        internal abstract void SetCurrentDatabase (
            string              databaseName, 
            SmiEventSink        eventSink 
        );
 
        //
        // IDisposable
        //
        public virtual void Dispose( ) { 
            // Obsoleting from SMI -- use Close( SmiEventSink ) instead.
            //  Intended to be removed (along with inheriting IDisposable) prior to RTM. 
 
            // Implement body with throw because there are only a couple of ways to get to this code:
            //  1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-. 
            //  2) Server didn't implement V2- on some interface and negotiated V2-.
            System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
        }
 
        public virtual void Close(
            SmiEventSink        eventSink 
        ) { 
            // Adding as of V3
 
            // Implement body with throw because there are only a couple of ways to get to this code:
            //  1) Client is calling this method even though the server negotiated for V2- and hasn't implemented V3 yet.
            //  2) Server didn't implement V3 on some interface, but negotiated V3+.
            System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod ); 
        }
 
 
        //
        // Transaction API (should we encapsulate in it's own class or interface?) 
        //
        internal abstract void BeginTransaction (
            string              name,
            IsolationLevel      level, 
            SmiEventSink        eventSink
        ); 
 
        internal abstract void CommitTransaction (
            long                transactionId, 
            SmiEventSink        eventSink
        );

        internal abstract void CreateTransactionSavePoint ( 
            long                transactionId,
            string              name, 
            SmiEventSink        eventSink 
        );
 
        internal abstract byte[] GetDTCAddress( // better buffer management needed?  I.e. non-allocating call needed/possible?
            SmiEventSink        eventSink
        );
 
        internal abstract void EnlistTransaction (
            byte[]              token,                // better buffer management needed?  I.e. non-allocating call needed/possible? 
            SmiEventSink        eventSink 
        );
 
        internal abstract byte[] PromoteTransaction ( // better buffer management needed?  I.e. non-allocating call needed/possible?
            long                transactionId,
            SmiEventSink        eventSink
        ); 

        internal abstract void RollbackTransaction ( 
            long                transactionId, 
            string              savePointName,        // only roll back to save point if name non-null
            SmiEventSink        eventSink 
        );

    }
} 

 
 


// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
// [....] 
// [....]
//----------------------------------------------------------------------------- 
 
namespace Microsoft.SqlServer.Server {
 
    using System;
    using System.Data;

    internal abstract class SmiConnection : IDisposable { 

        // 
        // Miscellaneous directives / accessors 
        //
 
        internal abstract string GetCurrentDatabase(
            SmiEventSink        eventSink
        );
 
        internal abstract void SetCurrentDatabase (
            string              databaseName, 
            SmiEventSink        eventSink 
        );
 
        //
        // IDisposable
        //
        public virtual void Dispose( ) { 
            // Obsoleting from SMI -- use Close( SmiEventSink ) instead.
            //  Intended to be removed (along with inheriting IDisposable) prior to RTM. 
 
            // Implement body with throw because there are only a couple of ways to get to this code:
            //  1) Client is calling this method even though the server negotiated for V3+ and dropped support for V2-. 
            //  2) Server didn't implement V2- on some interface and negotiated V2-.
            System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod );
        }
 
        public virtual void Close(
            SmiEventSink        eventSink 
        ) { 
            // Adding as of V3
 
            // Implement body with throw because there are only a couple of ways to get to this code:
            //  1) Client is calling this method even though the server negotiated for V2- and hasn't implemented V3 yet.
            //  2) Server didn't implement V3 on some interface, but negotiated V3+.
            System.Data.Common.ADP.InternalError( System.Data.Common.ADP.InternalErrorCode.UnimplementedSMIMethod ); 
        }
 
 
        //
        // Transaction API (should we encapsulate in it's own class or interface?) 
        //
        internal abstract void BeginTransaction (
            string              name,
            IsolationLevel      level, 
            SmiEventSink        eventSink
        ); 
 
        internal abstract void CommitTransaction (
            long                transactionId, 
            SmiEventSink        eventSink
        );

        internal abstract void CreateTransactionSavePoint ( 
            long                transactionId,
            string              name, 
            SmiEventSink        eventSink 
        );
 
        internal abstract byte[] GetDTCAddress( // better buffer management needed?  I.e. non-allocating call needed/possible?
            SmiEventSink        eventSink
        );
 
        internal abstract void EnlistTransaction (
            byte[]              token,                // better buffer management needed?  I.e. non-allocating call needed/possible? 
            SmiEventSink        eventSink 
        );
 
        internal abstract byte[] PromoteTransaction ( // better buffer management needed?  I.e. non-allocating call needed/possible?
            long                transactionId,
            SmiEventSink        eventSink
        ); 

        internal abstract void RollbackTransaction ( 
            long                transactionId, 
            string              savePointName,        // only roll back to save point if name non-null
            SmiEventSink        eventSink 
        );

    }
} 

 
 


// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK