summaryrefslogtreecommitdiff
path: root/inc/TDF_Transaction.hxx
blob: 87bb3a1d7f4f1419fb5cf15717f0fba9f9b7d6e0 (plain)
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _TDF_Transaction_HeaderFile
#define _TDF_Transaction_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_Macro_HeaderFile
#include <Standard_Macro.hxx>
#endif

#ifndef _Handle_TDF_Data_HeaderFile
#include <Handle_TDF_Data.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _TCollection_AsciiString_HeaderFile
#include <TCollection_AsciiString.hxx>
#endif
#ifndef _Handle_TDF_Delta_HeaderFile
#include <Handle_TDF_Delta.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
class TDF_Data;
class Standard_DomainError;
class Standard_NullObject;
class TDF_Delta;
class TCollection_AsciiString;


//! This class offers services to open, commit or <br>
//!          abort a transaction in a more secure way than <br>
//!          using Data from TDF. If you forget to close a <br>
//!          transaction, it will be automaticaly aborted at <br>
//!          the destruction of this object, at the closure of <br>
//!          its scope. <br>
//! <br>
//!          In case of catching errors, the effect will be the <br>
//!          same: aborting transactions until the good current <br>
//!          one. <br>
class TDF_Transaction  {
public:

  void* operator new(size_t,void* anAddress) 
  {
    return anAddress;
  }
  void* operator new(size_t size) 
  {
    return Standard::Allocate(size); 
  }
  void  operator delete(void *anAddress) 
  {
    if (anAddress) Standard::Free((Standard_Address&)anAddress); 
  }

  //! Creates an empty transaction context, unable to be <br>
//!          opened. <br>
  Standard_EXPORT   TDF_Transaction(const TCollection_AsciiString& aName = "");
  //! Creates a transaction context on <aDF>, ready to <br>
//!          be opened. <br>
  Standard_EXPORT   TDF_Transaction(const Handle(TDF_Data)& aDF,const TCollection_AsciiString& aName = "");
  //! Aborts all the transactions on <myDF> and sets <br>
//!          <aDF> to build a transaction context on <aDF>, <br>
//!          ready to be opened. <br>
  Standard_EXPORT     void Initialize(const Handle(TDF_Data)& aDF) ;
  //! If not yet done, opens a new transaction on <br>
//!          <myDF>. Returns the index of the just opened <br>
//!          transaction. <br>
//! <br>
//!          It raises DomainError if the transaction is <br>
//!          already open, and NullObject if there is no <br>
//!          current Data framework. <br>
  Standard_EXPORT     Standard_Integer Open() ;
  //! Commits the transactions until AND including the <br>
//!          current opened one. <br>
  Standard_EXPORT     Handle_TDF_Delta Commit(const Standard_Boolean withDelta = Standard_False) ;
  //! Aborts the transactions until AND including the <br>
//!          current opened one. <br>
//! <br>
  Standard_EXPORT     void Abort() ;
~TDF_Transaction()
{
  Abort();
}
  //! Returns the Data from TDF. <br>
//! <br>
        Handle_TDF_Data Data() const;
  //! Returns the number of the transaction opened by <me>. <br>
//! <br>
        Standard_Integer Transaction() const;
  //! Returns the transaction name. <br>
//! <br>
  Standard_EXPORT    const TCollection_AsciiString& Name() const;
  //! Returns true if the transaction is open. <br>
//! <br>
        Standard_Boolean IsOpen() const;





protected:





private:

  //! Private to avoid copy. <br>
  Standard_EXPORT   TDF_Transaction(const TDF_Transaction& aTrans);


Handle_TDF_Data myDF;
Standard_Integer myUntilTransaction;
TCollection_AsciiString myName;


};


#include <TDF_Transaction.lxx>



// other Inline functions and methods (like "C++: function call" methods)


#endif