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
cosmetics in AsCluster and friends
[simgrid.git]
/
src
/
surf
/
surf_routing.hpp
diff --git
a/src/surf/surf_routing.hpp
b/src/surf/surf_routing.hpp
index
cb29f19
..
e404638
100644
(file)
--- a/
src/surf/surf_routing.hpp
+++ b/
src/surf/surf_routing.hpp
@@
-12,10
+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
<float.h>
+#include
"src/surf/AsImpl.hpp"
+#include <float.h>
#include <vector>
#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);
@@
-26,11
+26,13
@@
SG_END_DECL()
namespace simgrid {
namespace surf {
namespace simgrid {
namespace surf {
+ XBT_PUBLIC_DATA(simgrid::xbt::signal<void(s4u::As*)>) asCreatedCallbacks;
+ XBT_PUBLIC_DATA(simgrid::xbt::signal<void(NetCard*)>) netcardCreatedCallbacks;
+
/***********
* Classes *
***********/
/***********
* Classes *
***********/
-class XBT_PRIVATE RoutingModelDescription;
class XBT_PRIVATE Onelink;
class RoutingPlatf;
class XBT_PRIVATE Onelink;
class RoutingPlatf;
@@
-43,37
+45,42
@@
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 char *name()=0;
- virtual
s4u::As
*containingAS()=0; // This is the AS in which I am
+ 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 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, s4u::As *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::surf::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_;}
char *name() override {return name_;}
-
s4u::As
*containingAS() override {return containingAS_;}
+
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_;
-
s4u::As
*containingAS_;
+
NetCard::Type
componentType_;
+
AsImpl
*containingAS_;
};
/** @ingroup SURF_routing_interface
};
/** @ingroup SURF_routing_interface
@@
-93,21
+100,14
@@
public:
*/
XBT_PUBLIC_CLASS RoutingPlatf {
public:
*/
XBT_PUBLIC_CLASS RoutingPlatf {
public:
- RoutingPlatf(Link *loopback);
+
explicit
RoutingPlatf(Link *loopback);
~RoutingPlatf();
~RoutingPlatf();
-
s4u::As
*root_ = nullptr;
+
AsImpl
*root_ = nullptr;
Link *loopback_;
xbt_dynar_t getOneLinkRoutes(void);
void getRouteAndLatency(NetCard *src, NetCard *dst, std::vector<Link*> * links, double *latency);
};
Link *loopback_;
xbt_dynar_t getOneLinkRoutes(void);
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;
-
}
}
}
}