Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Stack Of Tasks
dynamic-graph
Commits
3b87474d
Commit
3b87474d
authored
Jun 28, 2010
by
stasse
Browse files
Reinforce the dependant->dependent policy.
Merge the florent branch. Makes the test_depend.cpp test works.
parent
26636b21
Changes
5
Hide whitespace changes
Inline
Side-by-side
include/dynamic-graph/signal-base.h
View file @
3b87474d
...
...
@@ -76,7 +76,7 @@ class SignalBase : public boost::noncopyable
}
virtual
std
::
ostream
&
displayDepend
a
ncies
(
std
::
ostream
&
os
,
const
int
depth
=-
1
,
displayDepend
e
ncies
(
std
::
ostream
&
os
,
const
int
depth
=-
1
,
std
::
string
space
=
""
,
std
::
string
next1
=
""
,
std
::
string
next2
=
""
)
const
{
...
...
include/dynamic-graph/time-dependency.h
View file @
3b87474d
...
...
@@ -20,8 +20,8 @@
#ifndef __TIME_DEPEND
A
NCY_HH
#define __TIME_DEPEND
A
NCY_HH
#ifndef __TIME_DEPEND
E
NCY_HH
#define __TIME_DEPEND
E
NCY_HH
#include
<list>
#include
<iostream>
...
...
@@ -36,10 +36,10 @@ template< class Time >
class
TimeDependency
{
public:
enum
Depend
a
ncyType
enum
Depend
e
ncyType
{
TIME_DEPEND
A
NT
,
BOOL_DEPEND
A
NT
,
TIME_DEPEND
E
NT
,
BOOL_DEPEND
E
NT
,
ALWAYS_READY
};
...
...
@@ -50,14 +50,14 @@ class TimeDependency
SignalBase
<
Time
>&
leader
;
typedef
std
::
list
<
const
SignalBase
<
Time
>
*
>
Depend
a
ncies
;
static
const
Depend
a
ncyType
DEPEND
A
NCY_TYPE_DEFAULT
=
TIME_DEPEND
A
NT
;
typedef
std
::
list
<
const
SignalBase
<
Time
>
*
>
Depend
e
ncies
;
static
const
Depend
e
ncyType
DEPEND
E
NCY_TYPE_DEFAULT
=
TIME_DEPEND
E
NT
;
Depend
a
ncies
depend
a
ncies
;
Depend
e
ncies
depend
e
ncies
;
bool
updateFromAllChildren
;
static
const
bool
ALL_READY_DEFAULT
=
false
;
Depend
a
ncyType
depend
a
ncyType
;
Depend
e
ncyType
depend
e
ncyType
;
Time
periodTime
;
static
const
Time
PERIOD_TIME_DEFAULT
=
1
;
...
...
@@ -65,25 +65,25 @@ class TimeDependency
public:
TimeDependency
(
SignalBase
<
Time
>*
sig
,
const
Depend
a
ncyType
dep
=
DEPEND
A
NCY_TYPE_DEFAULT
);
const
Depend
e
ncyType
dep
=
DEPEND
E
NCY_TYPE_DEFAULT
);
TimeDependency
(
SignalBase
<
Time
>*
sig
,
const
SignalArray_const
<
Time
>&
arr
,
const
Depend
a
ncyType
dep
=
DEPEND
A
NCY_TYPE_DEFAULT
);
const
Depend
e
ncyType
dep
=
DEPEND
E
NCY_TYPE_DEFAULT
);
~
TimeDependency
(
void
)
{}
void
addDepend
a
ncy
(
const
SignalBase
<
Time
>&
sig
);
void
removeDepend
a
ncy
(
const
SignalBase
<
Time
>&
sig
);
void
clearDepend
a
ncy
(
void
);
void
addDepend
e
ncy
(
const
SignalBase
<
Time
>&
sig
);
void
removeDepend
e
ncy
(
const
SignalBase
<
Time
>&
sig
);
void
clearDepend
e
ncy
(
void
);
virtual
std
::
ostream
&
writeGraph
(
std
::
ostream
&
os
)
const
;
std
::
ostream
&
displayDepend
a
ncies
(
std
::
ostream
&
os
,
const
int
depth
=-
1
,
std
::
ostream
&
displayDepend
e
ncies
(
std
::
ostream
&
os
,
const
int
depth
=-
1
,
std
::
string
space
=
""
,
std
::
string
next1
=
""
,
std
::
string
next2
=
""
)
const
;
bool
needUpdate
(
const
Time
&
t1
)
const
;
void
setDepend
a
ncyType
(
Depend
a
ncyType
dep
)
{
depend
a
ncyType
=
dep
;
}
void
setDepend
e
ncyType
(
Depend
e
ncyType
dep
)
{
depend
e
ncyType
=
dep
;
}
void
setNeedUpdateFromAllChildren
(
const
bool
b
=
true
){
updateFromAllChildren
=
b
;
}
bool
getNeedUpdateFromAllChildren
(
void
)
const
{
return
updateFromAllChildren
;
}
...
...
@@ -98,4 +98,4 @@ class TimeDependency
#include
<dynamic-graph/time-dependency.t.cpp>
#endif
/* #ifndef __TIME_DEPEND
A
NCY_HH */
#endif
/* #ifndef __TIME_DEPEND
E
NCY_HH */
include/dynamic-graph/time-dependency.t.cpp
View file @
3b87474d
...
...
@@ -20,8 +20,8 @@
#ifndef __TIME_DEPEND
A
NCY_TCPP
#define __TIME_DEPEND
A
NCY_TCPP
#ifndef __TIME_DEPEND
E
NCY_TCPP
#define __TIME_DEPEND
E
NCY_TCPP
#include
<dynamic-graph/time-dependency.h>
...
...
@@ -31,30 +31,30 @@ namespace dynamicgraph {
#define VP_TEMPLATE_DEBUG_MODE 0
#include
<dynamic-graph/debug.h>
#define __TIME_DEPEND
A
NCY_INIT(sig,dep) \
#define __TIME_DEPEND
E
NCY_INIT(sig,dep) \
leader(*sig) \
,depend
a
ncies() \
,depend
e
ncies() \
,updateFromAllChildren(ALL_READY_DEFAULT) \
,depend
a
ncyType(dep) \
,depend
e
ncyType(dep) \
,periodTime(PERIOD_TIME_DEFAULT)
template
<
class
Time
>
TimeDependency
<
Time
>::
TimeDependency
(
SignalBase
<
Time
>
*
sig
,
const
Depend
a
ncyType
dep
)
:
__TIME_DEPEND
A
NCY_INIT
(
sig
,
dep
)
,
const
Depend
e
ncyType
dep
)
:
__TIME_DEPEND
E
NCY_INIT
(
sig
,
dep
)
{}
template
<
class
Time
>
TimeDependency
<
Time
>::
TimeDependency
(
SignalBase
<
Time
>
*
sig
,
const
SignalArray_const
<
Time
>&
ar
,
const
Depend
a
ncyType
dep
)
:
__TIME_DEPEND
A
NCY_INIT
(
sig
,
dep
)
,
const
Depend
e
ncyType
dep
)
:
__TIME_DEPEND
E
NCY_INIT
(
sig
,
dep
)
{
for
(
unsigned
int
i
=
0
;
i
<
ar
.
getSize
();
++
i
)
{
addDepend
a
ncy
(
ar
[
i
]
);
}
{
addDepend
e
ncy
(
ar
[
i
]
);
}
return
;
}
...
...
@@ -62,22 +62,22 @@ TimeDependency( SignalBase<Time> * sig
/* -------------------------------------------------------------------------- */
template
<
class
Time
>
void
TimeDependency
<
Time
>::
addDepend
a
ncy
(
const
SignalBase
<
Time
>&
sig
)
addDepend
e
ncy
(
const
SignalBase
<
Time
>&
sig
)
{
depend
a
ncies
.
push_front
(
&
sig
);
depend
e
ncies
.
push_front
(
&
sig
);
}
template
<
class
Time
>
void
TimeDependency
<
Time
>::
removeDepend
a
ncy
(
const
SignalBase
<
Time
>&
sig
)
removeDepend
e
ncy
(
const
SignalBase
<
Time
>&
sig
)
{
depend
a
ncies
.
remove
(
&
sig
);
depend
e
ncies
.
remove
(
&
sig
);
}
template
<
class
Time
>
void
TimeDependency
<
Time
>::
clearDepend
a
ncy
(
void
)
clearDepend
e
ncy
(
void
)
{
depend
a
ncies
.
clear
();
depend
e
ncies
.
clear
();
}
template
<
class
Time
>
...
...
@@ -90,12 +90,12 @@ needUpdate( const Time& t1 ) const
if
(
leader
.
getReady
()
)
{
dgTDEBUGOUT
(
15
);
return
true
;
}
if
(
lastAskForUpdate
)
{
dgTDEBUGOUT
(
15
);
return
true
;
}
switch
(
depend
a
ncyType
)
switch
(
depend
e
ncyType
)
{
case
ALWAYS_READY
:
{
dgTDEBUGOUT
(
15
);
return
true
;
}
case
BOOL_DEPEND
A
NT
:
break
;
case
TIME_DEPEND
A
NT
:
case
BOOL_DEPEND
E
NT
:
break
;
case
TIME_DEPEND
E
NT
:
{
if
(
t1
<
leader
.
getTime
()
+
periodTime
)
{
dgTDEBUGOUT
(
15
);
return
false
;
}
...
...
@@ -104,8 +104,8 @@ needUpdate( const Time& t1 ) const
};
bool
res
=
updateFromAllChildren
;
const
typename
Depend
a
ncies
::
const_iterator
itend
=
depend
a
ncies
.
end
();
for
(
typename
Depend
a
ncies
::
const_iterator
it
=
depend
a
ncies
.
begin
();
it
!=
itend
;
++
it
)
const
typename
Depend
e
ncies
::
const_iterator
itend
=
depend
e
ncies
.
end
();
for
(
typename
Depend
e
ncies
::
const_iterator
it
=
depend
e
ncies
.
begin
();
it
!=
itend
;
++
it
)
{
const
SignalBase
<
Time
>
&
sig
=
**
it
;
dgTDEBUG
(
15
)
<<
"Ask update for "
<<
sig
<<
std
::
endl
;
...
...
@@ -128,10 +128,10 @@ writeGraph( std::ostream & os) const
std
::
string
LeaderLocalName
;
std
::
string
LeaderNodeName
;
leader
.
ExtractNodeAndLocalNames
(
LeaderLocalName
,
LeaderNodeName
);
if
(
depend
a
ncies
.
size
()
!=
0
)
if
(
depend
e
ncies
.
size
()
!=
0
)
{
const
typename
Depend
a
ncies
::
const_iterator
itend
=
depend
a
ncies
.
end
();
for
(
typename
Depend
a
ncies
::
const_iterator
it
=
depend
a
ncies
.
begin
();
it
!=
itend
;
++
it
)
const
typename
Depend
e
ncies
::
const_iterator
itend
=
depend
e
ncies
.
end
();
for
(
typename
Depend
e
ncies
::
const_iterator
it
=
depend
e
ncies
.
begin
();
it
!=
itend
;
++
it
)
{
std
::
string
itLocalName
,
itNodeName
;
(
*
it
)
->
ExtractNodeAndLocalNames
(
itLocalName
,
itNodeName
);
...
...
@@ -144,31 +144,31 @@ writeGraph( std::ostream & os) const
template
<
class
Time
>
std
::
ostream
&
TimeDependency
<
Time
>::
displayDepend
a
ncies
(
std
::
ostream
&
os
,
const
int
depth
,
displayDepend
e
ncies
(
std
::
ostream
&
os
,
const
int
depth
,
std
::
string
space
,
std
::
string
next1
,
std
::
string
next2
)
const
{
leader
.
SignalBase
<
Time
>::
displayDepend
a
ncies
(
os
,
depth
,
space
,
next1
,
next2
)
<<
" ("
;
switch
(
depend
a
ncyType
)
leader
.
SignalBase
<
Time
>::
displayDepend
e
ncies
(
os
,
depth
,
space
,
next1
,
next2
)
<<
" ("
;
switch
(
depend
e
ncyType
)
{
case
ALWAYS_READY
:
os
<<
"A"
;
break
;
case
BOOL_DEPEND
A
NT
:
os
<<
"ready="
<<
((
leader
.
getReady
())
?
"TRUE"
:
"FALSE"
);
break
;
case
TIME_DEPEND
A
NT
:
case
BOOL_DEPEND
E
NT
:
os
<<
"ready="
<<
((
leader
.
getReady
())
?
"TRUE"
:
"FALSE"
);
break
;
case
TIME_DEPEND
E
NT
:
os
<<
"t="
<<
leader
.
getTime
()
<<
" (/"
<<
periodTime
<<
") "
;
break
;
};
os
<<
")"
;
//<<std::endl;
{
const
typename
Depend
a
ncies
::
const_iterator
itend
=
depend
a
ncies
.
end
();
for
(
typename
Depend
a
ncies
::
const_iterator
it
=
depend
a
ncies
.
begin
();
it
!=
itend
;
++
it
)
const
typename
Depend
e
ncies
::
const_iterator
itend
=
depend
e
ncies
.
end
();
for
(
typename
Depend
e
ncies
::
const_iterator
it
=
depend
e
ncies
.
begin
();
it
!=
itend
;
++
it
)
if
(
depth
!=
0
)
{
os
<<
std
::
endl
;
std
::
string
ajout
=
"|"
;
std
::
string
ajout2
=
"|"
;
typename
Depend
a
ncies
::
const_iterator
it2
=
it
;
it2
++
;
if
(
it2
==
depend
a
ncies
.
end
()
)
{
ajout
=
"`"
;
ajout2
=
" "
;
}
(
*
it
)
->
displayDepend
a
ncies
(
os
,
depth
-
1
,
space
+
next2
+
" "
,
ajout
,
ajout2
);
typename
Depend
e
ncies
::
const_iterator
it2
=
it
;
it2
++
;
if
(
it2
==
depend
e
ncies
.
end
()
)
{
ajout
=
"`"
;
ajout2
=
" "
;
}
(
*
it
)
->
displayDepend
e
ncies
(
os
,
depth
-
1
,
space
+
next2
+
" "
,
ajout
,
ajout2
);
}
else
{
os
<<
std
::
endl
<<
space
<<
" `-- ..."
;
break
;
}
...
...
@@ -178,6 +178,6 @@ displayDependancies( std::ostream& os,const int depth,
}
// namespace dynamicgraph
#endif
/* #ifndef __TIME_DEPEND
A
NCY_TCPP */
#endif
/* #ifndef __TIME_DEPEND
E
NCY_TCPP */
src/dgraph/entity.cpp
View file @
3b87474d
...
...
@@ -238,7 +238,7 @@ commandLine( const std::string& cmdLine,std::istringstream& cmdArgs,std::ostream
string
sig
;
cmdArgs
>>
sig
;
cmdArgs
>>
ws
;
int
depth
=-
1
;
if
(
cmdArgs
.
good
()
)
{
cmdArgs
>>
depth
;
}
getSignal
(
sig
)
.
displayDepend
a
ncies
(
os
,
depth
);
os
<<
endl
;
getSignal
(
sig
)
.
displayDepend
e
ncies
(
os
,
depth
);
os
<<
endl
;
}
else
{
...
...
unitTesting/test_depend.cpp
View file @
3b87474d
...
...
@@ -133,23 +133,24 @@ int main( void )
pro3
.
add
(
sig5
);
pro3
.
add
(
sig6
);
sig5
.
setDepend
a
ncyType
(
TimeDependency
<
int
>::
ALWAYS_READY
);
sig6
.
setDepend
a
ncyType
(
TimeDependency
<
int
>::
BOOL_DEPEND
A
NT
);
sig5
.
setDepend
e
ncyType
(
TimeDependency
<
int
>::
ALWAYS_READY
);
sig6
.
setDepend
e
ncyType
(
TimeDependency
<
int
>::
BOOL_DEPEND
E
NT
);
sig6
.
setReady
();
sig1
.
displayDepend
a
ncies
(
cout
)
<<
endl
;
sig1
.
displayDepend
e
ncies
(
cout
)
<<
endl
;
cout
<<
"Needs update?"
<<
endl
<<
sig1
.
needUpdate
(
2
)
<<
endl
;
cout
<<
"Needs update?"
<<
endl
<<
sig1
.
needUpdate
(
2
)
<<
endl
;
dgDEBUG
(
1
)
<<
"Access sig1(2) "
<<
endl
;
sig1
.
access
(
2
);
sig1
.
displayDepend
a
ncies
(
cout
)
<<
endl
;
sig1
.
displayDepend
e
ncies
(
cout
)
<<
endl
;
dgDEBUG
(
1
)
<<
"Access sig2(4) "
<<
endl
;
sig2
.
access
(
4
);
sig1
.
displayDepend
a
ncies
(
cout
)
<<
endl
;
sig1
.
displayDepend
e
ncies
(
cout
)
<<
endl
;
dgDEBUG
(
1
)
<<
"Access sig1(4) "
<<
endl
;
sig1
.
access
(
4
);
sig1
.
displayDepend
a
ncies
(
cout
)
<<
endl
;
sig1
.
displayDepend
e
ncies
(
cout
)
<<
endl
;
sig1
.
needUpdate
(
6
);
sig1
.
needUpdate
(
6
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment