0022941: Memory leak in StepData_StepReaderData.cxx line 1826
[occt.git] / src / StepData / StepData_DefaultGeneral.cxx
1 #include <StepData_DefaultGeneral.ixx>
2 #include <StepData.hxx>
3 #include <Interface_GeneralLib.hxx>
4 #include <StepData_UndefinedEntity.hxx>
5 #include <Interface_UndefinedContent.hxx>
6 #include <Interface_Macros.hxx>
7 #include <Interface_ParamType.hxx>
8
9
10 //  DefaultGeneral de StepData  reconnait  UN SEUL TYPE : UndefinedEntity
11
12
13     StepData_DefaultGeneral::StepData_DefaultGeneral ()
14 {
15   Interface_GeneralLib::SetGlobal (this, StepData::Protocol());
16 }
17
18     void  StepData_DefaultGeneral::FillSharedCase
19   (const Standard_Integer casenum, const Handle(Standard_Transient)& ent,
20    Interface_EntityIterator& iter) const 
21 {
22   if (casenum != 1) return;
23   DeclareAndCast(StepData_UndefinedEntity,undf,ent);
24   Handle(Interface_UndefinedContent) cont = undf->UndefinedContent();
25   Standard_Integer nb = cont->NbParams();
26   for (Standard_Integer i = 1; i <= nb; i ++) {
27     Interface_ParamType ptype = cont->ParamType(i);
28     if (ptype == Interface_ParamSub) {
29       DeclareAndCast(StepData_UndefinedEntity,subent,cont->ParamEntity(i));
30       FillSharedCase(casenum,cont->ParamEntity(i),iter);
31     } else if (ptype == Interface_ParamIdent) {
32       iter.GetOneItem(cont->ParamEntity(i));
33     }
34   }
35 }
36
37
38 void  StepData_DefaultGeneral::CheckCase(const Standard_Integer casenum,
39                                          const Handle(Standard_Transient)& ent,
40                                          const Interface_ShareTool& shares,
41                                          Handle(Interface_Check)& ach) const 
42 {
43 }  //  pas de Check sur une UndefinedEntity
44
45
46     Standard_Boolean  StepData_DefaultGeneral::NewVoid
47   (const Standard_Integer CN, Handle(Standard_Transient)& ent) const 
48 {
49   if (CN != 1) return Standard_False;
50   ent = new StepData_UndefinedEntity;
51   return Standard_True;
52 }
53
54     void  StepData_DefaultGeneral::CopyCase
55   (const Standard_Integer casenum, const Handle(Standard_Transient)& entfrom,
56    const Handle(Standard_Transient)& entto, Interface_CopyTool& TC) const 
57 {
58   if (casenum != 1) return;
59   DeclareAndCast(StepData_UndefinedEntity,undfrom,entfrom);
60   DeclareAndCast(StepData_UndefinedEntity,undto,entto);
61   undto->GetFromAnother(undfrom,TC);  //  On pourrait rapatrier cela
62 }