Version: 8.3.0
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
InPort.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 "
InPort.hxx
"
21
#include "
OutPort.hxx
"
22
#include "
ComposedNode.hxx
"
23
#include <iostream>
24
25
using namespace
YACS::ENGINE;
26
using namespace
std;
27
28
InPort::InPort
(
const
InPort
& other,
Node
*newHelder):
29
DataPort
(other,newHelder),
Port
(other,newHelder)
30
{
31
}
32
33
InPort::InPort
(
const
std::string& name,
Node
*node,
TypeCode
* type):
34
DataPort
(name,node,type),
Port
(node)
35
{
36
}
37
38
InPort::~InPort
()
39
{
40
}
41
43
int
InPort::edGetNumberOfLinks
()
const
44
{
45
return
_backLinks
.size();
46
}
47
48
void
InPort::edRemoveAllLinksLinkedWithMe
() throw(
YACS
::
Exception
)
49
{
50
set<OutPort *> temp(
_backLinks
);
//edRemoveLink called after causes invalidation of set iterator.
51
for
(set<OutPort *>::iterator iter=temp.begin();iter!=temp.end();iter++)
52
{
53
set<OutPort *> trueBackOutputs;
54
(*iter)->getAllRepresented(trueBackOutputs);
55
for
(set<OutPort *>::iterator iter2=trueBackOutputs.begin();iter2!=trueBackOutputs.end();iter2++)
56
_node
->
getRootNode
()->
edRemoveLink
(*iter2,
this
);
57
}
58
_backLinks
.clear();
59
modified
();
60
}
61
63
std::set<OutPort *>
InPort::edSetOutPort
()
const
64
{
65
return
_backLinks
;
66
}
67
68
void
InPort::edNotifyReferencedBy
(
OutPort
*fromPort)
69
{
70
_backLinks
.insert(fromPort);
71
modified
();
72
}
73
74
void
InPort::edNotifyDereferencedBy
(
OutPort
*fromPort)
75
{
76
_backLinks
.erase(fromPort);
77
modified
();
78
}
79
80
void
InPort::getAllRepresentants
(std::set<InPort *>& repr)
const
81
{
82
repr.insert((
InPort
*)
this
);
83
}
src
engine
InPort.cxx
Copyright © 2006-2017 CEA/DEN, EDF R&D