Version: 8.3.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
ComponentInstance.cxx
Go to the documentation of this file.
1
// Copyright (C) 2006-2016 CEA/DEN, EDF R&D
2
//
3
// This library is free software; you can redistribute it and/or
4
// modify it under the terms of the GNU Lesser General Public
5
// License as published by the Free Software Foundation; either
6
// version 2.1 of the License, or (at your option) any later version.
7
//
8
// This library is distributed in the hope that it will be useful,
9
// but WITHOUT ANY WARRANTY; without even the implied warranty of
10
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11
// Lesser General Public License for more details.
12
//
13
// You should have received a copy of the GNU Lesser General Public
14
// License along with this library; if not, write to the Free Software
15
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
//
17
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18
//
19
20
#include "
ComponentInstance.hxx
"
21
#include "
Container.hxx
"
22
23
#include <iostream>
24
#include <sstream>
25
26
//#define _DEVDEBUG_
27
#include "
YacsTrace.hxx
"
28
29
using namespace
YACS::ENGINE;
30
using namespace
std;
31
46
const
char
ComponentInstance::KIND
[]=
""
;
47
int
ComponentInstance::_total
= 0;
48
49
50
const
char
ComponentInstance::NULL_FILE_REPR
[]=
"No repr specified for ComponentInstance"
;
51
52
bool
ComponentInstance::setContainer
(
Container
*cont)
53
{
54
if
(cont == _container)
return
false
;
55
56
if
(cont)
57
cont->
checkCapabilityToDealWith
(
this
);
58
if
(_container)
59
_container->decrRef();
60
_container=cont;
61
if
(_container)
62
_container->
incrRef
();
63
return
true
;
64
}
65
66
ComponentInstance::ComponentInstance
(
const
std::string& name):_compoName(name),_isAttachedOnCloning(false),_container(0),_anonymous(true)
67
{
68
_numId
=
_total
++;
69
stringstream instName;
70
instName <<
_compoName
<<
"_"
<<
_numId
;
71
_instanceName
= instName.str();
72
}
73
74
ComponentInstance::ComponentInstance
(
const
ComponentInstance
& other):_compoName(other._compoName),
75
_container(0),
76
_isAttachedOnCloning(other._isAttachedOnCloning),
77
_anonymous(true)
78
{
79
_numId
=
_total
++;
80
stringstream instName;
81
instName <<
_compoName
<<
"_"
<<
_numId
;
82
_instanceName
= instName.str();
83
if
(other.
_container
)
84
_container
=other.
_container
->
clone
();
85
}
86
87
ComponentInstance::~ComponentInstance
()
88
{
89
if
(
_container
)
90
_container
->
decrRef
();
91
}
92
96
void
ComponentInstance::attachOnCloning
()
const
97
{
98
_isAttachedOnCloning
=
true
;
99
}
100
102
std::string
ComponentInstance::getFileRepr
()
const
103
{
104
return
NULL_FILE_REPR
;
105
}
106
110
void
ComponentInstance::dettachOnCloning
()
const
111
{
112
_isAttachedOnCloning
=
false
;
113
}
114
115
bool
ComponentInstance::isAttachedOnCloning
()
const
116
{
117
return
_isAttachedOnCloning
;
118
}
119
121
126
string
ComponentInstance::getKind
()
const
127
{
128
return
KIND
;
129
}
130
131
std::string
ComponentInstance::getKindForNode
()
const
132
{
133
return
KIND
;
134
}
135
136
void
ComponentInstance::shutdown
(
int
level)
137
{
138
}
src
engine
ComponentInstance.cxx
Copyright © 2006-2017 CEA/DEN, EDF R&D