• 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
  • multisegmentkio
segment.h
Go to the documentation of this file.
1 /* This file is part of the KDE project
2 
3  Copyright (C) 2006 Manolo Valdes <nolis71cu@gmail.com>
4  Copyright (C) 2009 Matthias Fuchs <mat69@gmx.net>
5 
6  This program is free software; you can redistribute it and/or
7  modify it under the terms of the GNU General Public
8  License as published by the Free Software Foundation; either
9  version 2 of the License, or (at your option) any later version.
10 */
11 
12 
13 #ifndef SEGMENT_H
14 #define SEGMENT_H
15 
16 #include <QtCore/QObject>
17 
18 #include <KIO/Job>
19 
20 #include "core/transfer.h"
21 
26 class Segment : public QObject
27 {
28  Q_OBJECT
29 
30  public:
40  enum Status
41  {
42  Running,
43  Stopped,
44  Killed,
45  Timeout,
46  Finished
47  };
48 
49  Segment(const KUrl &src, const QPair<KIO::fileoffset_t, KIO::fileoffset_t> &segmentSize, const QPair<int, int> &segmentRange, QObject *parent);
50 
51  ~Segment();
52 
56  bool createTransfer();
57 
61  bool stopTransfer ( );
62 
66  KIO::fileoffset_t offset() const {return m_offset;}
67 
72  KIO::filesize_t size() const {return m_currentSegSize;}
73 
78  KIO::filesize_t BytesWritten ( ){ return m_bytesWritten; }//TODO needed???
79 
84  KIO::TransferJob *job(){ return m_getJob; }//TODO needed?
85 
90  Status status() const {return m_status;}//TODO needed?
91 
92  QPair<int, int> assignedSegments() const;
93  QPair<KIO::fileoffset_t, KIO::fileoffset_t> segmentSize() const;
94  int countUnfinishedSegments() const;
95  QPair<int, int> split();
96  bool merge(const QPair<KIO::fileoffset_t, KIO::fileoffset_t> &segmentSize, const QPair<int,int> &segmentRange);
97  bool findingFileSize() const;
98 
99  public Q_SLOTS:
103  bool startTransfer ( );
104 
109  void slotResult( KJob *job );
110 
111  Q_SIGNALS:
112  void data(KIO::fileoffset_t offset, const QByteArray &data, bool &worked);
116  void error(Segment *segment, const QString &errorText, Transfer::LogLevel logLevel);
117  void finishedSegment(Segment *segment, int segmentNum, bool connectionFinished = true);
118  void statusChanged( Segment*);
119  void speed(ulong speed);
120  void connectionProblem();
121  void totalSize(KIO::filesize_t size, QPair<int, int> segmentRange);
122  void finishedDownload(KIO::filesize_t size);
123  void canResume();
124  void urlChanged(const KUrl &newUrl);
125 
126  private Q_SLOTS:
127  void slotData(KIO::Job *job, const QByteArray &data);
128  void slotCanResume(KIO::Job *job, KIO::filesize_t);//TODO remove
129  void slotTotalSize(KJob *job, qulonglong size);
130 
136  void slotWriteRest();
137 
138  void slotRedirection(KIO::Job*, const KUrl &);
139 
140  private:
141  bool writeBuffer();
142  void setStatus(Status stat, bool doEmit=true);
143 
144  private:
145  bool m_findFilesize;
146  bool m_canResume;
147  Status m_status;
148  int m_currentSegment;
149  int m_endSegment;
150  int m_errorCount;
151  KIO::fileoffset_t m_offset;
152  KIO::fileoffset_t m_currentSegSize;
153  KIO::filesize_t m_bytesWritten;
154  KIO::filesize_t m_totalBytesLeft;
155  KIO::TransferJob *m_getJob;
156  KUrl m_url;
157  QByteArray m_buffer;
158  QPair<KIO::fileoffset_t, KIO::fileoffset_t> m_segSize;
159 };
160 
161 #endif // SEGMENT_H
Segment::countUnfinishedSegments
int countUnfinishedSegments() const
Definition: segment.cpp:319
Segment::BytesWritten
KIO::filesize_t BytesWritten()
Returns the written bytes.
Definition: segment.h:78
Segment::job
KIO::TransferJob * job()
Get the job.
Definition: segment.h:84
Transfer::LogLevel
LogLevel
Definition: transfer.h:81
Segment::canResume
void canResume()
Segment::split
QPair< int, int > split()
Definition: segment.cpp:324
Segment::Stopped
Definition: segment.h:43
Segment::Timeout
Definition: segment.h:45
QObject
Segment::segmentSize
QPair< KIO::fileoffset_t, KIO::fileoffset_t > segmentSize() const
Definition: segment.cpp:314
Segment::stopTransfer
bool stopTransfer()
stop the segment transfer
Definition: segment.cpp:153
Segment::slotResult
void slotResult(KJob *job)
Called whenever a subjob finishes.
Definition: segment.cpp:167
Segment::Finished
Definition: segment.h:46
Segment::Running
Definition: segment.h:42
Segment::data
void data(KIO::fileoffset_t offset, const QByteArray &data, bool &worked)
Segment::status
Status status() const
Get the segment status.
Definition: segment.h:90
Segment::connectionProblem
void connectionProblem()
Segment::totalSize
void totalSize(KIO::filesize_t size, QPair< int, int > segmentRange)
Segment::speed
void speed(ulong speed)
Segment::merge
bool merge(const QPair< KIO::fileoffset_t, KIO::fileoffset_t > &segmentSize, const QPair< int, int > &segmentRange)
Definition: segment.cpp:364
Segment
class Segment
Definition: segment.h:26
Segment::startTransfer
bool startTransfer()
start the segment transfer
Definition: segment.cpp:139
Segment::Segment
Segment(const KUrl &src, const QPair< KIO::fileoffset_t, KIO::fileoffset_t > &segmentSize, const QPair< int, int > &segmentRange, QObject *parent)
Definition: segment.cpp:22
Segment::~Segment
~Segment()
Definition: segment.cpp:53
Segment::createTransfer
bool createTransfer()
Create the segment transfer.
Definition: segment.cpp:67
Segment::size
KIO::filesize_t size() const
Returns the size the current segment has.
Definition: segment.h:72
transfer.h
Segment::finishedSegment
void finishedSegment(Segment *segment, int segmentNum, bool connectionFinished=true)
Segment::error
void error(Segment *segment, const QString &errorText, Transfer::LogLevel logLevel)
Emitted whenever the transfer is closed with an error.
Segment::Status
Status
The status property describes the current segment status.
Definition: segment.h:40
Segment::findingFileSize
bool findingFileSize() const
Definition: segment.cpp:62
Segment::finishedDownload
void finishedDownload(KIO::filesize_t size)
Segment::Killed
Definition: segment.h:44
Segment::statusChanged
void statusChanged(Segment *)
KJob
Segment::urlChanged
void urlChanged(const KUrl &newUrl)
Segment::assignedSegments
QPair< int, int > assignedSegments() const
Definition: segment.cpp:309
Segment::offset
KIO::fileoffset_t offset() const
Get the value of m_offset set.
Definition: segment.h:66
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