5 // Peter Van Isacker (sclytrack@planetinternet.be)
\r
6 // Rafael Teixeira (rafaelteixeirabr@hotmail.com)
\r
8 // (C) 2003 Peter Van Isacker
\r
12 namespace System.Messaging
\r
15 // TODO: have to comply with 'This type is safe for multithreaded operations'
\r
16 public class MessageQueueTransaction : IDisposable
\r
18 // To avoid multiple disposals
\r
19 private bool disposed = false;
\r
21 public MessageQueueTransaction()
\r
23 status = MessageQueueTransactionStatus.Initialized;
\r
26 MessageQueueTransactionStatus status;
\r
28 public MessageQueueTransactionStatus Status
\r
30 get { return status; }
\r
36 if (status != MessageQueueTransactionStatus.Pending)
\r
37 throw new InvalidOperationException();
\r
38 status = MessageQueueTransactionStatus.Aborted;
\r
39 throw new NotImplementedException();
\r
45 if (status != MessageQueueTransactionStatus.Initialized)
\r
46 throw new InvalidOperationException();
\r
47 status = MessageQueueTransactionStatus.Pending;
\r
48 throw new NotImplementedException();
\r
52 public void Commit()
\r
54 if (status != MessageQueueTransactionStatus.Pending)
\r
55 throw new InvalidOperationException();
\r
56 status = MessageQueueTransactionStatus.Committed;
\r
57 throw new NotImplementedException();
\r
60 public virtual void Dispose()
\r
62 if (status == MessageQueueTransactionStatus.Pending)
\r
64 // Do this only at the first time
\r
68 // Take this object off the finalization queue
\r
69 GC.SuppressFinalize(this);
\r
73 protected virtual void Dispose(bool disposing)
\r
76 // free managed resources, by calling dispose on them
\r
78 // free external resources
\r
79 throw new NotImplementedException();
\r
82 ~MessageQueueTransaction()
\r
84 if (status == MessageQueueTransactionStatus.Pending)
\r