Cursor.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Services / Messaging / System / Messaging / Cursor.cs / 1305376 / Cursor.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

namespace System.Messaging { 
 
 	using System.Messaging.Interop;
 
	public sealed class Cursor : IDisposable {

		private CursorHandle handle;
		private bool disposed; 

 
 		internal Cursor(MessageQueue queue) { 
            CursorHandle result;
            int status = SafeNativeMethods.MQCreateCursor(queue.MQInfo.ReadHandle, out result); 
            if (MessageQueue.IsFatalError(status))
                throw new MessageQueueException(status);

            this.handle =  result; 
		}
 		 
 
 		internal CursorHandle Handle {
			get { 
 				if (disposed)
					throw new ObjectDisposedException(GetType().Name);
				
				return handle; 
 			}
		} 
 

 		public void Close() { 
           handle.Close();
        }

 
        public void Dispose() {
            Dispose(true); 
            GC.SuppressFinalize(this); 
        }
 

        void Dispose(bool disposing) {
            // disposing argument is intentionally unused
            this.Close(); 
            this.disposed = true;
        } 
 

        ~Cursor() { 
            Dispose(false);
        }

 
 	}
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

namespace System.Messaging { 
 
 	using System.Messaging.Interop;
 
	public sealed class Cursor : IDisposable {

		private CursorHandle handle;
		private bool disposed; 

 
 		internal Cursor(MessageQueue queue) { 
            CursorHandle result;
            int status = SafeNativeMethods.MQCreateCursor(queue.MQInfo.ReadHandle, out result); 
            if (MessageQueue.IsFatalError(status))
                throw new MessageQueueException(status);

            this.handle =  result; 
		}
 		 
 
 		internal CursorHandle Handle {
			get { 
 				if (disposed)
					throw new ObjectDisposedException(GetType().Name);
				
				return handle; 
 			}
		} 
 

 		public void Close() { 
           handle.Close();
        }

 
        public void Dispose() {
            Dispose(true); 
            GC.SuppressFinalize(this); 
        }
 

        void Dispose(bool disposing) {
            // disposing argument is intentionally unused
            this.Close(); 
            this.disposed = true;
        } 
 

        ~Cursor() { 
            Dispose(false);
        }

 
 	}
} 

// 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