Changeset 2473 for source/ariba/Node.cpp


Ignore:
Timestamp:
Feb 23, 2009, 2:21:49 PM (15 years ago)
Author:
Christoph Mayer
Message:

-einige fixes im ablauf des neuen interface
-einige fehlende funktionalität implementiert

File:
1 edited

Legend:

Unmodified
Added
Removed
  • source/ariba/Node.cpp

    r2455 r2473  
    3737// [License]
    3838
    39 
    4039#include "Node.h"
    4140
     
    6160
    6261        }
     62
    6363        ServiceInterfaceWrapper(CommunicationListener* listener) :
    6464                nodeListener(NULL), commListener(listener) {
    6565        }
     66       
     67        ~ServiceInterfaceWrapper() {
     68        }
    6669
    6770protected:
     
    6972
    7073        }
     74
    7175        void onOverlayDestroy(const SpoVNetID& id) {
    7276
     
    120124                        const NodeID& node) {
    121125                if (commListener != NULL) commListener->onMessage(
    122                                 const_cast<Message*> (message), node, link);
     126                                const_cast<Message*>(message), node, link);
    123127        }
    124128};
    125129
    126 const ServiceID Node::anonymousService = 0xFF00;
     130ServiceID Node::anonymousService = ServiceID(0xFF00);
    127131
    128132Node::Node(AribaModule& ariba_mod, const Name& node_name) :
     
    142146//TODO: Implement error handling: no bootstrap node available
    143147void Node::initiate(const Name& vnetname, const SpoVNetProperties& parm) {
    144         utility::OverlayParameterSet
    145                         ovrpset =
    146                                         (utility::OverlayParameterSet::_OverlayStructure) parm.getBaseOverlayType();
     148        utility::OverlayParameterSet ovrpset =
     149                        (utility::OverlayParameterSet::_OverlayStructure) parm.getBaseOverlayType();
     150
    147151        spovnetId = vnetname.toSpoVNetId();
    148152        nodeId = generateNodeId(name);
     153
    149154        this->context = ariba_mod.underlay_abs->createSpoVNet(spovnetId, nodeId,
    150                         ariba_mod.ip_addr, ariba_mod.tcp_port);
     155                                                        ariba_mod.ip_addr, ariba_mod.tcp_port);
    151156        ariba_mod.addBootstrapNode(vnetname,
    152                         new EndpointDescriptor(this->context->getBaseCommunication().getEndpointDescriptor()));
     157                new EndpointDescriptor(this->context->getBaseCommunication().getEndpointDescriptor()));
    153158}
    154159
    155160void Node::leave() {
    156         // not implemeted yet.
    157 }
    158 
    159 void Node::bind(NodeListener* listener) {
    160         this->context->getOverlay().bind(new ServiceInterfaceWrapper(listener),
    161                         Node::anonymousService);
    162 }
    163 
    164 void Node::unbind(NodeListener* listener) {
    165         // TODO: allow unbinding
     161        ariba_mod.underlay_abs->leaveSpoVNet( context );
     162        context = NULL;
    166163}
    167164
     
    171168
    172169const SpoVNetID& Node::getSpoVNetId() const {
    173         return SpoVNetID::UNSPECIFIED;
     170        return spovnetId;
    174171}
    175172
    176173const NodeID& Node::getNodeId(const LinkID& lid) const {
    177         return NodeID::UNSPECIFIED;
     174        return nodeId;
    178175}
    179176
     
    201198}
    202199
     200void Node::sendBroadcastMessage(const DataMessage& msg, const ServiceID& sid) {
     201        return context->getOverlay().broadcastMessage((Message*)msg, sid);
     202}
     203
     204void Node::bind(NodeListener* listener) {
     205        context->getOverlay().bind(new ServiceInterfaceWrapper(listener),
     206                        Node::anonymousService);
     207}
     208
     209void Node::unbind(NodeListener* listener) {
     210        delete context->getOverlay().unbind(Node::anonymousService);
     211}
     212
    203213void Node::bind(CommunicationListener* listener, const ServiceID& sid) {
    204         this->context->getOverlay().bind(new ServiceInterfaceWrapper(listener), sid);
     214        context->getOverlay().bind(new ServiceInterfaceWrapper(listener), sid);
    205215}
    206216
    207217void Node::unbind(CommunicationListener* listener, const ServiceID& sid) {
    208         // TODO
     218        delete context->getOverlay().unbind(sid);
    209219}
    210220
Note: See TracChangeset for help on using the changeset viewer.