Ignore:
Timestamp:
Nov 5, 2009, 10:18:18 AM (14 years ago)
Author:
mies
Message:

added replace flag

File:
1 edited

Legend:

Unmodified
Added
Removed
  • source/ariba/overlay/BaseOverlay.cpp

    r6832 r6835  
    21082108        switch (msg->getType()) {
    21092109        case OverlayMsg::typeDHTPut: {
     2110                if (dhtMsg->doReplace()) dht->remove(dhtMsg->getKey());
    21102111                BOOST_FOREACH( Data value, dhtMsg->getValues() )
    21112112                                        dht->put(dhtMsg->getKey(), value, dhtMsg->getTTL() );
     
    21452146
    21462147/// put a value to the DHT with a ttl given in seconds
    2147 void BaseOverlay::dhtPut( const Data& key, const Data& value, int ttl ) {
     2148void BaseOverlay::dhtPut( const Data& key, const Data& value, int ttl, bool replace ) {
    21482149
    21492150        logging_info("DHT: putting key=" <<  key
    21502151                        << " value=" << value
    21512152                        << " ttl=" << ttl
     2153                        << " replace=" << replace
    21522154        );
    21532155
     2156
    21542157        // put into local data store (for refreshes)
    2155         localDHT->put(key,value,ttl);
     2158        if (replace) localDHT->remove(key);
     2159        localDHT->put(key, value, ttl);
    21562160
    21572161        // calculate hash
    21582162        NodeID dest = NodeID::sha1(key.getBuffer(), key.getLength() / 8);
    21592163        DHTMessage dhtmsg(key,value);
     2164        dhtmsg.setReplace(replace);
    21602165        dhtmsg.setTTL(ttl);
    21612166
Note: See TracChangeset for help on using the changeset viewer.