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

kget

  • sources
  • kde-4.12
  • kdenetwork
  • kget
  • transfer-plugins
  • metalink
metalink.h
Go to the documentation of this file.
1 /* This file is part of the KDE project
2 
3  Copyright (C) 2004 Dario Massarin <nekkar@libero.it>
4 
5  This program is free software; you can redistribute it and/or
6  modify it under the terms of the GNU General Public
7  License as published by the Free Software Foundation; either
8  version 2 of the License, or (at your option) any later version.
9 */
10 
11 
12 #ifndef METALINK_H
13 #define METALINK_H
14 
15 #include <KIO/Job>
16 
17 #include "core/datasourcefactory.h"
18 #include "core/transfer.h"
19 
20 #include "ui/metalinkcreator/metalinker.h"
21 
22 
23 class Metalink : public Transfer
24 {
25  Q_OBJECT
26 
27  public:
28  Metalink(TransferGroup * parent, TransferFactory * factory,
29  Scheduler * scheduler, const KUrl & src, const KUrl & dest,
30  const QDomElement * e = 0);
31 
32  ~Metalink();
33 
34  void save(const QDomElement &element);
35  void load(const QDomElement *e);
36 
40  int remainingTime() const;
41 
42  bool repair(const KUrl &file = KUrl());
43 
49  virtual bool setDirectory(const KUrl &newDirectory);
50 
51  QHash<KUrl, QPair<bool, int> > availableMirrors(const KUrl &file) const;
52  void setAvailableMirrors(const KUrl &file, const QHash<KUrl, QPair<bool, int> > &mirrors);
53 
58  virtual Verifier *verifier(const KUrl &file);
59 
64  virtual Signature *signature(const KUrl &file);
65 
66  virtual QList<KUrl> files() const;
67 
68  FileModel *fileModel();
69 
70  public Q_SLOTS:
71  // --- Job virtual functions ---
72  void start();
73  void stop();
74 
75  void deinit(Transfer::DeleteOptions options);
76 
77  private Q_SLOTS:
83  bool metalinkInit(const KUrl &url = KUrl(), const QByteArray &data = QByteArray());
84 
85  void fileDlgFinished(int result);
91  void filesSelected();
92  void slotUpdateCapabilities();
93  void slotDataSourceFactoryChange(Transfer::ChangesFlags change);
94  void slotRename(const KUrl &oldUrl, const KUrl &newUrl);
95  void slotVerified(bool isVerified);
96  void slotSignatureVerified();
97 
98  private :
99  void downloadMetalink();
100  void startMetalink();
101  void untickAllFiles();
102  void recalculateTotalSize(DataSourceFactory *sender);
103  void recalculateProcessedSize();
104  void recalculateSpeed();
105  void updateStatus(DataSourceFactory *sender, bool *changeStatus);
106 
107  private:
108  FileModel *m_fileModel;
109  int m_currentFiles;
110  bool m_metalinkJustDownloaded;
111  KUrl m_localMetalinkLocation;
112  KGetMetalink::Metalink m_metalink;
113  QHash<KUrl, DataSourceFactory*> m_dataSourceFactory;
114  bool m_ready;
115  int m_speedCount;
116  int m_tempAverageSpeed;
117  mutable int m_averageSpeed;
118  int m_numFilesSelected;//The number of files that are ticked and should be downloaded
119 };
120 
121 #endif
Transfer::ChangesFlags
int ChangesFlags
Definition: transfer.h:100
Metalink::~Metalink
~Metalink()
Definition: metalink.cpp:57
TransferGroup
class TransferGroup:
Definition: transfergroup.h:46
Scheduler
Scheduler class: what handle all the jobs in kget.
Definition: scheduler.h:32
Metalink::start
void start()
Definition: metalink.cpp:61
Metalink::repair
bool repair(const KUrl &file=KUrl())
Tries to repair file.
Definition: metalink.cpp:536
DataSourceFactory
This class manages multiple DataSources and saves the received data to the file.
Definition: datasourcefactory.h:38
Metalink::availableMirrors
QHash< KUrl, QPair< bool, int > > availableMirrors(const KUrl &file) const
The mirrors that are available bool if it is used, int how many paralell connections are allowed to t...
Definition: metalink.cpp:821
Job::scheduler
Scheduler * scheduler() const
Definition: job.h:106
Metalink::Metalink
Metalink(TransferGroup *parent, TransferFactory *factory, Scheduler *scheduler, const KUrl &src, const KUrl &dest, const QDomElement *e=0)
Definition: metalink.cpp:43
Metalink::files
virtual QList< KUrl > files() const
Definition: metalink.cpp:655
FileModel
This model represents the files that are being downloaded.
Definition: filemodel.h:101
Metalink::fileModel
FileModel * fileModel()
Definition: metalink.cpp:660
Metalink
Definition: metalink.h:23
Metalink::stop
void stop()
Definition: metalink.cpp:303
Metalink::setDirectory
virtual bool setDirectory(const KUrl &newDirectory)
Move the download to the new destination.
Definition: metalink.cpp:789
metalinker.h
KGetMetalink::Metalink
Definition: metalinker.h:299
Metalink::remainingTime
int remainingTime() const
Reimplemented to return a time based on the average of the last three speeds.
Definition: metalink.cpp:404
Transfer::factory
TransferFactory * factory() const
Definition: transfer.h:272
Metalink::load
void load(const QDomElement *e)
Loads the transfer's info from the QDomElement.
Definition: metalink.cpp:573
Verifier
Definition: verifier.h:68
Transfer::dest
const KUrl & dest() const
Definition: transfer.h:149
datasourcefactory.h
transfer.h
Metalink::setAvailableMirrors
void setAvailableMirrors(const KUrl &file, const QHash< KUrl, QPair< bool, int > > &mirrors)
Set the mirrors, int the number of paralell connections to the mirror bool if the mirror should be us...
Definition: metalink.cpp:834
Signature
Class to verify signatures.
Definition: signature.h:38
Metalink::verifier
virtual Verifier * verifier(const KUrl &file)
Definition: metalink.cpp:636
TransferFactory
TransferFactory.
Definition: transferfactory.h:52
Metalink::deinit
void deinit(Transfer::DeleteOptions options)
Definition: metalink.cpp:282
Metalink::signature
virtual Signature * signature(const KUrl &file)
Definition: metalink.cpp:646
Transfer
Definition: transfer.h:36
Metalink::save
void save(const QDomElement &element)
Saves this transfer to the given QDomNode.
Definition: metalink.cpp:623
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:53:17 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

kget

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

kdenetwork API Reference

Skip menu "kdenetwork API Reference"
  • kget
  • kopete
  •   kopete
  •   libkopete
  • krdc
  • krfb

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal