/***************************************************************************
                            kde_FileCopyJob.h -  description
                             -------------------
    begin                : Wed Feb  6 15:12:26 2002
    copyright            : (C) 2000-2001 Lost Highway Ltd. All rights reserved.
    email                : Lost_Highway@tipitina.demon.co.uk
    generated by         : duke@tipitina on Wed Feb  6 15:12:26 2002, using kalyptus 0.9.
 ***************************************************************************/

/***************************************************************************
 *                                                                         *
 *   This library is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU Library General Public License as       *
 *   published by the Free Software Foundation; either version 2 of the    *
 *   License, or (at your option) any later version.                       *
 *                                                                         *
 ***************************************************************************/

#ifndef KDE_FILECOPYJOB
#define KDE_FILECOPYJOB

#include <qtc/qtc_types.h>

#include <kdec/kde_types.h>

/**

 The FileCopyJob copies data from one place to another.
     
 @short 
 The FileCopyJob copies data from one place to another.
*/
kde_FileCopyJob * kde_new_FileCopyJob(kde_KURL* src, kde_KURL* dest, int permissions, int move, int overwrite, int resume, int showProgressInfo);
void kde_del_FileCopyJob( kde_FileCopyJob* p );

/** 
 If you know the size of the source file, call this method
 to inform this job. It will be displayed in the "resume" dialog.
         
*/
//void kde_FileCopyJob_setSourceSize(kde_FileCopyJob* instPointer,off_t size);
kde_KURL* kde_FileCopyJob_srcURL(kde_FileCopyJob* instPointer);
kde_KURL* kde_FileCopyJob_destURL(kde_FileCopyJob* instPointer);
void kde_FileCopyJob_slotStart(kde_FileCopyJob* instPointer);
void kde_FileCopyJob_slotData(kde_FileCopyJob* instPointer,kde_Job* arg1, qt_QByteArray* data);
void kde_FileCopyJob_slotDataReq(kde_FileCopyJob* instPointer,kde_Job* arg1, qt_QByteArray* data);
void kde_FileCopyJob_startCopyJob(kde_FileCopyJob* instPointer);
void kde_FileCopyJob_startCopyJob1(kde_FileCopyJob* instPointer,kde_KURL* slave_url);
void kde_FileCopyJob_startDataPump(kde_FileCopyJob* instPointer);
void kde_FileCopyJob_connectSubjob(kde_FileCopyJob* instPointer,kde_SimpleJob* job);

/** 
 Called whenever a subjob finishes.
         
*/
void kde_FileCopyJob_slotResult(kde_FileCopyJob* instPointer,kde_Job* job);

/** 
 Forward signal from subjob
         
*/
void kde_FileCopyJob_slotProcessedSize(kde_FileCopyJob* instPointer,kde_Job* arg1, unsigned long size);

/** 
 Forward signal from subjob
         
*/
void kde_FileCopyJob_slotTotalSize(kde_FileCopyJob* instPointer,kde_Job* arg1, unsigned long size);

/** 
 Forward signal from subjob
         
*/
void kde_FileCopyJob_slotPercent(kde_FileCopyJob* instPointer,kde_Job* arg1, unsigned long pct);

/** 
 Forward signal from subjob
         
*/
void kde_FileCopyJob_slotCanResume(kde_FileCopyJob* instPointer,kde_Job* arg1, unsigned long offset);

#endif
