• Skip to content
  • Skip to link menu
KDE 4.2 API Reference
  • KDE API Reference
  • kdenetwork
  • Sitemap
  • Contact Us
 

kget

announcetask.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *   Copyright (C) 2005 by Joris Guisson                                   *
00003  *   joris.guisson@gmail.com                                               *
00004  *                                                                         *
00005  *   This program is free software; you can redistribute it and/or modify  *
00006  *   it under the terms of the GNU General Public License as published by  *
00007  *   the Free Software Foundation; either version 2 of the License, or     *
00008  *   (at your option) any later version.                                   *
00009  *                                                                         *
00010  *   This program is distributed in the hope that it will be useful,       *
00011  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
00012  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
00013  *   GNU General Public License for more details.                          *
00014  *                                                                         *
00015  *   You should have received a copy of the GNU General Public License     *
00016  *   along with this program; if not, write to the                         *
00017  *   Free Software Foundation, Inc.,                                       *
00018  *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.             *
00019  ***************************************************************************/
00020 #ifndef DHTANNOUNCETASK_H
00021 #define DHTANNOUNCETASK_H
00022 
00023 #include "task.h"
00024 #include "kbucket.h"
00025 
00026 namespace dht
00027 {
00028     class Database;
00029     
00030     class KBucketEntryAndToken : public KBucketEntry
00031     {
00032         Key token;
00033     public:
00034         KBucketEntryAndToken() {}
00035         KBucketEntryAndToken(const KBucketEntry & e,const Key & token)
00036             : KBucketEntry(e),token(token) {}
00037         virtual ~KBucketEntryAndToken() {}
00038         
00039         const Key & getToken() const {return token;}
00040     };
00041 
00045     class AnnounceTask : public Task
00046     {
00047     public:
00048         AnnounceTask(Database* db,RPCServer* rpc, Node* node,const dht::Key & info_hash,bt::Uint16 port);
00049         virtual ~AnnounceTask();
00050 
00051         virtual void callFinished(RPCCall* c, MsgBase* rsp);
00052         virtual void callTimeout(RPCCall* c);
00053         virtual void update();
00054         
00061         bool takeItem(DBItem & item);
00062     private:
00063         dht::Key info_hash;
00064         bt::Uint16 port;
00065         QList<KBucketEntryAndToken> answered; // nodes which have answered with values
00066         QList<KBucketEntry> answered_visited; // nodes which have answered with values which have been visited
00067         Database* db;
00068         DBItemList returned_items;
00069         
00070     };
00071 
00072 }
00073 
00074 #endif

kget

Skip menu "kget"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

kdenetwork

Skip menu "kdenetwork"
  • kget
  • kopete
  •   kopete
  •   libkopete
  •       libpapillon
  • krfb
Generated for kdenetwork by doxygen 1.5.4
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal