Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
396b887b49417eef987a716154199f1d258656ee
[simgrid.git] / src / s4u / s4u_channel.cpp
1 /* Copyright (c) 2006-2015. The SimGrid Team.
2  * All rights reserved.                                                     */
3
4 /* This program is free software; you can redistribute it and/or modify it
5  * under the terms of the license (GNU LGPL) which comes with this package. */
6
7 #include "xbt/log.h"
8 #include "msg/msg_private.h"
9 #include "msg/msg_mailbox.h"
10
11 #include "simgrid/s4u/channel.hpp"
12
13 XBT_LOG_NEW_DEFAULT_CATEGORY(s4u_channel,"S4U Communication Channels");
14
15
16 using namespace simgrid;
17
18 boost::unordered_map <std::string, s4u::Channel *> *s4u::Channel::channels = new boost::unordered_map<std::string, s4u::Channel*> ();
19
20
21 s4u::Channel::Channel(const char*name, smx_rdv_t inferior) {
22         p_inferior = inferior;
23         channels->insert({name, this});
24 }
25 s4u::Channel *s4u::Channel::byName(const char*name) {
26         s4u::Channel * res;
27         try {
28                 res = channels->at(name);
29         } catch (std::out_of_range& e) {
30                 res = new Channel(name,simcall_rdv_create(name));
31         }
32         return res;
33 }