A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
guess what? bugs and smells
[simgrid.git]
/
src
/
surf
/
surf_routing.hpp
diff --git
a/src/surf/surf_routing.hpp
b/src/surf/surf_routing.hpp
index
2e04910
..
8645ad7
100644
(file)
--- a/
src/surf/surf_routing.hpp
+++ b/
src/surf/surf_routing.hpp
@@
-12,11
+12,10
@@
#include "surf_interface.hpp"
#include "src/surf/xml/platf_private.hpp" // FIXME: including this here is pure madness. KILKILKIL XML.
#include "surf_interface.hpp"
#include "src/surf/xml/platf_private.hpp" // FIXME: including this here is pure madness. KILKILKIL XML.
-#include "src/
surf
/AsImpl.hpp"
+#include "src/
kernel/routing
/AsImpl.hpp"
#include <float.h>
#include <vector>
#include <float.h>
#include <vector>
-#include <map>
SG_BEGIN_DECL()
XBT_PUBLIC(void) routing_model_create(Link *loopback);
SG_BEGIN_DECL()
XBT_PUBLIC(void) routing_model_create(Link *loopback);
@@
-25,7
+24,11
@@
XBT_PRIVATE xbt_edge_t new_xbt_graph_edge (xbt_graph_t graph, xbt_node_t s, xbt_
SG_END_DECL()
namespace simgrid {
SG_END_DECL()
namespace simgrid {
-namespace surf {
+namespace kernel {
+namespace routing {
+
+ XBT_PUBLIC_DATA(simgrid::xbt::signal<void(s4u::As*)>) asCreatedCallbacks;
+ XBT_PUBLIC_DATA(simgrid::xbt::signal<void(NetCard*)>) netcardCreatedCallbacks;
/***********
* Classes *
/***********
* Classes *
@@
-43,36
+46,41
@@
class NetCard {
public:
virtual ~NetCard(){};
virtual int id()=0; // Our rank in the vertices_ array of our containing AS.
public:
virtual ~NetCard(){};
virtual int id()=0; // Our rank in the vertices_ array of our containing AS.
- virtual void setId(int id)=0;
virtual char *name()=0;
virtual AsImpl *containingAS()=0; // This is the AS in which I am
virtual bool isAS()=0;
virtual bool isHost()=0;
virtual bool isRouter()=0;
virtual char *name()=0;
virtual AsImpl *containingAS()=0; // This is the AS in which I am
virtual bool isAS()=0;
virtual bool isHost()=0;
virtual bool isRouter()=0;
+ enum class Type {
+ Host, Router, As
+ };
};
struct XBT_PRIVATE NetCardImpl : public NetCard {
public:
};
struct XBT_PRIVATE NetCardImpl : public NetCard {
public:
- NetCardImpl(const char *name,
e_surf_network_element_type_t componentType, AsImpl *as
)
+ NetCardImpl(const char *name,
NetCard::Type componentType, AsImpl *containingAS
)
: name_(xbt_strdup(name)),
componentType_(componentType),
: name_(xbt_strdup(name)),
componentType_(componentType),
- containingAS_(as)
- {}
+ containingAS_(containingAS)
+ {
+ if (containingAS != nullptr)
+ id_ = containingAS->addComponent(this);
+ simgrid::kernel::routing::netcardCreatedCallbacks(this);
+ }
~NetCardImpl() { xbt_free(name_);};
int id() override {return id_;}
~NetCardImpl() { xbt_free(name_);};
int id() override {return id_;}
- void setId(int id) override {id_ = id;}
char *name() override {return name_;}
AsImpl *containingAS() override {return containingAS_;}
char *name() override {return name_;}
AsImpl *containingAS() override {return containingAS_;}
- bool isAS() override {return componentType_ ==
SURF_NETWORK_ELEMENT_AS
;}
- bool isHost() override {return componentType_ ==
SURF_NETWORK_ELEMENT_HOST
;}
- bool isRouter() override {return componentType_ ==
SURF_NETWORK_ELEMENT_ROUTER
;}
+ bool isAS() override {return componentType_ ==
Type::As
;}
+ bool isHost() override {return componentType_ ==
Type::Host
;}
+ bool isRouter() override {return componentType_ ==
Type::Router
;}
private:
int id_ = -1;
char *name_;
private:
int id_ = -1;
char *name_;
-
e_surf_network_element_type_t
componentType_;
+
NetCard::Type
componentType_;
AsImpl *containingAS_;
};
AsImpl *containingAS_;
};
@@
-93,7
+101,7
@@
public:
*/
XBT_PUBLIC_CLASS RoutingPlatf {
public:
*/
XBT_PUBLIC_CLASS RoutingPlatf {
public:
- RoutingPlatf(Link *loopback);
+
explicit
RoutingPlatf(Link *loopback);
~RoutingPlatf();
AsImpl *root_ = nullptr;
Link *loopback_;
~RoutingPlatf();
AsImpl *root_ = nullptr;
Link *loopback_;
@@
-101,14
+109,6
@@
public:
void getRouteAndLatency(NetCard *src, NetCard *dst, std::vector<Link*> * links, double *latency);
};
void getRouteAndLatency(NetCard *src, NetCard *dst, std::vector<Link*> * links, double *latency);
};
-/*************
- * Callbacks *
- *************/
-
-XBT_PUBLIC_DATA(simgrid::xbt::signal<void(NetCard*)>) netcardCreatedCallbacks;
-XBT_PUBLIC_DATA(simgrid::xbt::signal<void(s4u::As*)>) asCreatedCallbacks;
-
-}
-}
+}}}
#endif /* NETWORK_ROUTING_HPP_ */
#endif /* NETWORK_ROUTING_HPP_ */