0022627: Change OCCT memory management defaults
[occt.git] / src / TopOpeBRep / TopOpeBRep_traceBOOPNINT.cxx
1 // File:        TopOpeBRep_traceBOOPNINT.cxx
2 // Created:     Wed Oct 22 17:37:04 1997
3 // Author:      Jean Yves LEBEY
4 //              <jyl@bistrox.paris1.matra-dtv.fr>
5
6 #ifdef DEB
7
8 #include <Standard_Type.hxx>
9 #include <TCollection_AsciiString.hxx>
10 #include <TColStd_ListOfInteger.hxx>
11 #include <TColStd_ListIteratorOfListOfInteger.hxx>
12 #include <TopOpeBRepTool_define.hxx>
13
14 #define AS(x) (Standard_PCharacter)TCollection_AsciiString((x)).ToCString();
15 #define I 10
16 #define J 10
17 #define OK(x,y) (x)<I&&(y)<J
18 #define T(x,y) myT[(x)][(y)]
19 #define L0(x,y) for((x)=0;(x)<(y);(x)++)
20 #define A(v) (atoi(a[(v)]))
21
22 class BOOPNINTL{
23 public:BOOPNINTL();
24 Standard_Boolean Get(Standard_Integer n,char**a);
25 Standard_Integer Set(const Standard_Boolean b,Standard_Integer n,char**a);
26 private: 
27   TColStd_ListOfInteger myTL[I];
28   Standard_Boolean myTB[I];
29   Standard_Integer mynl;
30 };
31
32 BOOPNINTL::BOOPNINTL(){Set(Standard_False,0,NULL);}
33
34 Standard_Integer BOOPNINTL::Set(const Standard_Boolean b,Standard_Integer n,char**a)
35 {
36   if(n == 0) { 
37     Standard_Integer i; L0(i,I) { myTB[i] = Standard_False; myTL[i].Clear(); }
38     mynl = 0;
39     return 0;
40   }
41   else if (mynl + 1 < I) {
42     myTB[mynl] = b; Standard_Integer i; L0(i,n) myTL[mynl].Append(atoi(a[i]));
43     mynl++;
44     return 0;
45   }
46   else {
47     return 1;
48   }
49   return 0;
50 }
51
52 Standard_Boolean BOOPNINTL::Get(Standard_Integer n,char**a){
53   if(!n)return Standard_False;
54   Standard_Integer il;
55   L0(il,mynl) {
56     const TColStd_ListOfInteger& L = myTL[il];
57     if (L.IsEmpty()) continue;
58     TColStd_ListIteratorOfListOfInteger itL(L);
59     Standard_Integer ia = 0;
60     Standard_Boolean found = Standard_True;
61     for (;itL.More() && (ia < n); itL.Next(),ia++) {
62       Standard_Integer Lval = itL.Value();
63       Standard_Integer aval = atoi(a[ia]);
64       if (Lval != aval) {
65         found = Standard_False;
66         break;
67       }
68     }
69     if (found) {
70       return myTB[il];
71     }
72   }
73   return Standard_False;
74 }
75
76 // ===========
77 static Standard_Boolean TopOpeBRep_traceEEFF = Standard_False;
78 Standard_EXPORT void TopOpeBRep_SettraceEEFF(const Standard_Boolean b) { TopOpeBRep_traceEEFF = b; }
79 Standard_EXPORT Standard_Boolean TopOpeBRep_GettraceEEFF() { return TopOpeBRep_traceEEFF; }
80
81 BOOPNINTL BOOPEEFF;
82 Standard_EXPORT Standard_Integer TopOpeBRep_SettraceEEFF(const Standard_Boolean b,Standard_Integer n,char**a)
83 {
84   Standard_Integer err = BOOPEEFF.Set(b,n,a); if (n==0) TopOpeBRep_SettraceEEFF(b); return err;
85 }
86
87 Standard_EXPORT Standard_Boolean TopOpeBRep_GettraceEEFF(Standard_Integer n,char**a)
88 { Standard_Boolean b = BOOPEEFF.Get(n,a); return b; }
89
90 Standard_EXPORT Standard_Boolean TopOpeBRep_GettraceEEFF(const Standard_Integer i1,const Standard_Integer i2,const Standard_Integer i3,const Standard_Integer i4)
91 {
92   char* t[4]; t[0]=AS(i1);t[1]=AS(i2);t[2]=AS(i3);t[3]=AS(i4);
93   Standard_Boolean b = BOOPEEFF.Get(4,t); return b;
94 }
95
96 // ===========
97 static Standard_Boolean TopOpeBRep_traceNVP = Standard_False;
98 Standard_EXPORT void TopOpeBRep_SettraceNVP(const Standard_Boolean b) { TopOpeBRep_traceNVP = b; }
99 Standard_EXPORT Standard_Boolean TopOpeBRep_GettraceNVP() { return TopOpeBRep_traceNVP; }
100
101 BOOPNINTL BOOPNVP;
102 Standard_EXPORT Standard_Integer TopOpeBRep_SettraceNVP(const Standard_Boolean b,Standard_Integer n,char**a)
103
104   Standard_Integer err = BOOPNVP.Set(b,n,a); if (n==0) TopOpeBRep_SettraceNVP(b); return err;
105 }
106
107 Standard_EXPORT Standard_Boolean TopOpeBRep_GettraceNVP(Standard_Integer n,char**a)
108 { Standard_Integer b = BOOPNVP.Get(n,a); return b; }
109
110 Standard_EXPORT Standard_Boolean TopOpeBRep_GettraceNVP(Standard_Integer i1,Standard_Integer i2,Standard_Integer i3,Standard_Integer i4,Standard_Integer i5)
111 {
112   char* t[5]; t[0]=AS(i1);t[1]=AS(i2);t[2]=AS(i3);t[3]=AS(i4);t[4]=AS(i5);
113   Standard_Boolean b = BOOPNVP.Get(5,t);return b;
114 }
115
116 // ===========
117 static Standard_Boolean TopOpeBRep_traceSHA = Standard_False;
118 Standard_EXPORT void TopOpeBRep_SettraceSHA(const Standard_Boolean b) { TopOpeBRep_traceSHA = b; }
119 Standard_EXPORT Standard_Boolean TopOpeBRep_GettraceSHA() { return TopOpeBRep_traceSHA; }
120
121 BOOPNINTL BOOPSHA;
122 Standard_EXPORT Standard_Integer TopOpeBRep_SettraceSHA(const Standard_Boolean b,Standard_Integer n,char**a)
123
124   Standard_Integer err = BOOPSHA.Set(b,n,a); if (n==0) TopOpeBRep_SettraceSHA(b); return err;
125 }
126
127 Standard_EXPORT Standard_Boolean TopOpeBRep_GettraceSHA(Standard_Integer n,char**a)
128 { Standard_Integer b = BOOPSHA.Get(n,a); return b; }
129
130 Standard_EXPORT Standard_Boolean TopOpeBRep_GettraceSHA(const Standard_Integer i1)
131 {
132   char* t[1]; t[0]=AS(i1);
133   Standard_Boolean b = BOOPSHA.Get(1,t);return b;
134 }
135
136 // #ifdef DEB
137 #endif