blob: 4bf8fb54c9757b60fb18f405449520848ac06d6a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
/*
FTP File YM plugin
Copyright (C) 2007-2010 Jan Holub
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation version 2
of the License.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#pragma once
#include "stdafx.h"
#include "job_generic.h"
#include "utils.h"
class UploadJob: public GenericJob
{
friend class UploadDialog;
private:
static const int MAX_RUNNING_JOBS = 4;
FILE *m_fp;
CURL *m_hCurl;
char m_szError[CURL_ERROR_SIZE];
char m_buff[256];
UINT64 m_uiFileSize;
UINT64 m_uiTotalSent;
UINT64 m_uiSent;
time_t m_startTS;
double m_lastSpeed[10];
double m_avgSpeed;
static mir_cs mutexJobCount;
static int iRunningJobCount;
char *getChmodString();
char *getDelFileString();
char *getUrlString();
char *getDelUrlString();
void copyLinkToML();
void autoSend();
CURL* curlInit(char *szUrl, struct curl_slist *headerList);
static void waitingThread(void *arg);
static size_t ReadCallback(void *ptr, size_t size, size_t nmemb, void *arg);
static INT_PTR CALLBACK DlgProcFileExists(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
bool fileExistsOnServer();
void upload();
void updateStats();
public:
char m_szFileLink[256];
static Event jobDone;
UploadJob(MCONTACT _hContact, int _iFtpNum, EMode _mode);
UploadJob(UploadJob *job);
UploadJob(PackerJob *job);
virtual ~UploadJob();
virtual void start();
virtual void pause();
virtual void resume();
virtual void cancel();
virtual void addToUploadDlg();
virtual void pauseHandler();
virtual void refreshTab(bool bTabChanged);
virtual void closeTab();
virtual void closeAllTabs();
virtual void createToolTip();
};
|