55 lines
1.1 KiB
C++
55 lines
1.1 KiB
C++
/*
|
|
* Copyright 2006-2010, Andrea Anzani. All rights reserved.
|
|
* Distributed under the terms of the MIT License.
|
|
*/
|
|
#ifndef _DOWNLOAD_MANAGER_H
|
|
#define _DOWNLOAD_MANAGER_H
|
|
|
|
#include <Looper.h>
|
|
#include <List.h>
|
|
#include <SupportDefs.h>
|
|
#include <curl/curl.h>
|
|
|
|
#include "QueueFileDownload.h"
|
|
|
|
#define DOWNLOAD_INFO 'dwni'
|
|
|
|
class ActionDownload;
|
|
|
|
class DownloadManager
|
|
{
|
|
public:
|
|
enum QueueType {DOWNLOADS_QUEUE = 0};
|
|
|
|
DownloadManager(BLooper* target);
|
|
|
|
void Enqueue(QueueType, ActionDownload*);
|
|
|
|
void TryStopCurrentAction(QueueType, BString key, BString value);
|
|
|
|
bool RemoveFromQueue(QueueType, BString key, BString value);
|
|
|
|
void RemoveQueue(QueueType, BList* removed);
|
|
|
|
void LoadProxySetting(BMessage* data);
|
|
void LoadDownloadSetting(BMessage* data);
|
|
|
|
thread_id SingleThreadAction(ActionDownload* action);
|
|
|
|
void FinishCurl(CURL* curl);
|
|
|
|
private:
|
|
static int32 SingleThreadPerform(void* a);
|
|
|
|
QueueFileDownload* fQueue[3];
|
|
|
|
// Proxy
|
|
int32 fPort;
|
|
BString fAddress;
|
|
BString fUserpwd;
|
|
bool fEnabled;
|
|
BLooper* fTarget;
|
|
};
|
|
|
|
#endif // _DOWNLOAD_MANAGER_H
|