Xunlei Cloud Accelerated Open Platform Interface-Dokumentation

globale Schnittstelle

Schnittstellenname Bedienungsanleitung
XL_Init Initialisiert das SDK und macht es für die Verarbeitung nachfolgender Vorgänge bereit.
XL_UniInit Deinitialisieren Sie das SDK und geben Sie die während der Ausführung des Moduls angeforderten Ressourcen frei.
XL_DelTempFile temporäre Dateien löschen
XL_SetSpeedLimit Legen Sie die maximale Download-Geschwindigkeit fest
XL_SetProxy Legen Sie einen globalen Proxy fest
XL_SetUserAgent Clientinformationen beim Setzen von HTTP-Anfragen
XL_ParseThunderPrivateUrl Konvertieren Sie den privaten Xunlei-Link in eine tatsächliche URL
XL_SetUploadSpeedLimit Begrenzen Sie die Upload-Geschwindigkeit
XL_CreateTaskByURL Kapselt einfach die XL_CreateTask-Schnittstelle
XL_CreateTaskByThunder Rufen Sie Thunder 7 auf, um eine Download-Aufgabe zu erstellen
XL_ForceStopTask Suspend-Aufgabe erzwingen

Aufgabenschnittstelle

Schnittstellenname Bedienungsanleitung
XL_CreateTask Aufgabe erstellen
XL_DeleteTask Aufgabe zerstören
XL_StartTask Aufgabe starten
XL_StopTask Aufgabe stoppen
XL_QueryTaskInfoEx Aufgabeninformationen abfragen

Schnittstellendetails

XL_Init

BOOLXL_Init(void)

Initialisiert die Download-Engine und bereitet sie auf die Verarbeitung nachfolgender Vorgänge vor.
Rückgabewert: TRUE bedeutet Erfolg, FALSE bedeutet Misserfolg. In einigen Sonderfällen schlägt die Initialisierung fehl, z. B. wenn die Binärdatei fehlt.
Hinweis: Diese Schnittstelle muss paarweise mit XL_Unint(void) erscheinen. Beim Aufrufen dieser Schnittstelle ruft xldl.dll den Unterprozess MiniThunderPlatform.exe auf.

XL_UniInit

BOOL XL_UniInit(void)

Initialisieren Sie die Download-Engine und geben Sie die während des Modulbetriebs angeforderten Ressourcen frei.
返回值: TRUE bedeutet Erfolg, FALSE bedeutet Misserfolg.
说明: Nach dem Aufruf dieser Schnittstelle wird der untergeordnete Prozess MiniThunderPlatform.exe zum Beenden aufgefordert.

XL_CreateTask

HANDLE XL_CreateTask(DownTaskParam &stParam)

Erstellen Sie Aufgaben. Sie können eine neue Aufgabe erstellen oder eine Aufgabe fortsetzen. IsResume im Parameter wird verwendet, um anzugeben, ob es sich bei der Aufgabe um eine Fortsetzungsaufgabe handelt. Weitere Informationen finden Sie in der Definition von DownTaskParam.
参数: [in] stParam, die zum Erstellen der Aufgabe erforderlichen Parameter.
DownTaskParam-Referenz:

struct DownTaskParam {
    
     
int nReserved1; 
TCHAR szTaskUrl[2084]; // 任务URL,支持http,https,ftp,ftps格式 
TCHAR szRefUrl[2084]; // 可空,HTTP下载所在的网页URL 
TCHAR szCookies[4096]; // 可空,浏览器cookie 
TCHAR szFilename[MAX_PATH]; // 下载保存文件名. 
TCHAR szReserved[MAX_PATH]; 
TCHAR szSavePath[MAX_PATH]; // 文件保存目录 
HWND hReserved; 
BOOL bReserved1; 
TCHAR szReserved1[64]; 
TCHAR szReserved2[64]; 
BOOL IsOnlyOriginal; //是否只从原始地址下载 
UINT nReserved2; 
BOOL bReserved2; 
BOOL IsResume; // 是否用续传 
DWORD reserved[2048]; 
}

返回值: Gibt das Handle der Aufgabe zurück.
说明: Nachdem die Aufgabe erstellt wurde, wird sie nicht sofort heruntergeladen und XL_StartTask muss aufgerufen werden. Wird asynchron ausgeführt.

XL_DeleteTask

BOOL XL_DeleteTask(HANDLE hTask)

Zerstören Sie die Aufgabe und geben Sie die von der Aufgabe während der Ausführung angeforderten Ressourcen frei.
Parameter: [in]hTask, Task-Handle
Rückgabewert: TRUE bedeutet Erfolg, FALSE bedeutet Fehler. Der Aufruf schlägt fehl, wenn die Aufgabe nicht vorhanden ist.
Hinweis: Diese Schnittstelle muss aufgerufen werden, wenn die Aufgabe angehalten, erfolgreich oder gelöscht wird, um sicherzustellen, dass Ressourcen so schnell wie möglich freigegeben werden. Asynchrone Ausführung: Wenn sich die Aufgabe im Status „Ausstehend“ befindet, kann diese Schnittstelle nicht aufgerufen werden.

XL_StartTask

BOOL XL_StartTask(HANDLE hTask);

Starte Download. Nachdem die Aufgabe erfolgreich erstellt wurde, wird der Download nicht sofort gestartet und diese Schnittstelle muss aufgerufen werden, um den Download zu starten.
Parameter: [in]hTask, Task-Handle
Rückgabewert: TRUE bedeutet Erfolg, FALSE bedeutet Fehler. Der Aufruf schlägt fehl, wenn die Aufgabe nicht vorhanden ist.
Beschreibung: Asynchrone Ausführung. Wenn sich die Aufgabe im Status „Ausstehend“ befindet, kann diese Schnittstelle nicht aufgerufen werden.

XL_StopTask

BOOL XL_StopTask(HANDLE hTask)

Download stoppen
Parameter: [in]hTask, Task-Handle
Rückgabewert: TRUE bedeutet Erfolg, FALSE bedeutet Fehler. Der Aufruf schlägt fehl, wenn die Aufgabe nicht vorhanden ist.
Hinweis: Die Abfragemethode wird verwendet, um Aufgabeninformationen abzurufen. Die endgültige Abfrage, wie viele Daten von der Aufgabe heruntergeladen werden, ist korrekt, nachdem die Aufgabe den Download beendet hat. Die Aufgabe stoppt nicht sofort nach dem Aufruf und kann nur nach Abfrage abgerufen werden, bis der Aufgabenstatus PAUSE ist.

XL_QueryTaskInfoEx

BOOL XL_QueryTaskInfoEx(HANDLE hTask, DownTaskInfo & stTaskInfo);

Fragen Sie die aktuellen Informationen der Aufgabe ab.
Parameter: [in]hTask, Aufgabenhandle, [out] stTaskInfo, Aufgabeninformationen.
DownTaskInfo-Referenz:

struct DownTaskInfo {
    
     
DOWN_TASK_STATUS stat; //任务状态 
TASK_ERROR_TYPE fail_code; //错误码 
TCHAR szFilename[MAX_PATH]; //文件名 
TCHAR szReserved[MAX_PATH]; 
__int64 nTotalSize; // 该任务总大小(字节) 
__int64 nTotalDownload; // 下载有效字节数(可能存在回退的情况) 
float fPercent; // 下载进度 
int nTotalTime; // 不提供该值 
int nSrcTotal; // 总资源数 
int nSrcUsing; // 可用资源数 
int nReserved1; 
int nReserved2; 
int nReserved3; 
int nReserved; 
__int64 nTotalUpload; // 现不提供该值 
__int64 nDonationP2P; // p2p资源贡献的数据长度 
__int64 nReserved4; 
__int64 nDonationOrgin; // 原始资源贡献的数据长度 
__int64 nDonationP2S; // 镜像资源贡献的数据长度 
__int64 nReserved5; 
__int64 nReserved6; 
int nSpeed; // 速度(字节/秒) 
int nSpeedP2S; // 加速服务器资源的下载速度 
int nSpeedP2P; // peer下载速度 
bool IsOriginUsable; // 原始资源是否可用 
float fReserved; 
int bReserved; 
DWORD reserved[64]; 
}; 

enum DOWN_TASK_STATUS {
    
     
NOITEM = 0, TSC_ERROR, TSC_PAUSE, TSC_DOWNLOAD, TSC_COMPLETE, TSC_STARTPENDING, TSC_STOPPENDING 
};

enum TASK_ERROR_TYPE {
    
     
 TASK_ERROR_UNKNOWN = 0x00, // 未知错误 
 TASK_ERROR_DISK_CREATE = 0x01, // 创建文件失败 
 TASK_ERROR_DISK_WRITE = 0x02, // 写文件失败 
 TASK_ERROR_DISK_READ = 0x03, // 读文件失败 
 TASK_ERROR_DISK_RENAME = 0x04, // 重命名失败 
 TASK_ERROR_DISK_PIECEHASH = 0x05, // 文件片校验失败 
 TASK_ERROR_DISK_FILEHASH = 0x06, // 文件全文校验失败 
 TASK_ERROR_DISK_DELETE = 0x07, // 删除文件失败失败 
 TASK_ERROR_DOWN_INVALID = 0x10, // 无效的DOWN地址 
 TASK_ERROR_PROXY_AUTH_TYPE_UNKOWN = 0x20, // 代理类型未知 
 TASK_ERROR_PROXY_AUTH_TYPE_FAILED = 0x21, // 代理认证失败 
 TASK_ERROR_HTTPMGR_NOT_IP = 0x30, // http下载中无ip可用 
 TASK_ERROR_TIMEOUT = 0x40, // 任务超时 
 TASK_ERROR_CANCEL = 0x41, // 任务取消 
 TASK_ERROR_TP_CRASHED= 0x42, // MINITP崩溃 
 TASK_ERROR_ID_INVALID = 0x43, // TaskId 非法 
};

返回值: TRUEzeigt Erfolg an, FALSEzeigt Misserfolg an.
说明: IsOriginUsableOb die Originalressource verfügbar ist, ist ein boolescher Parameter, aber die ursprüngliche Verbindung zur Originalressource ist ein zeitaufwändiger Vorgang, was bedeutet, dass nicht bekannt ist, ob die Originalressource für einen bestimmten Zeitraum in der Mitte gültig ist. Der Anfangszustand dieses Parameters ist falsch, daher besteht das Problem, dass die ursprüngliche Ressource gültig ist, dieser Parameter jedoch zu Beginn der Aufgabe falsch ist. Wenn die obere Schicht diesen Wert verwendet, muss er gemäß der Geschäftslogik verarbeitet werden.

XL_DelTempFile

BOOL XL_DelTempFile(DownTaskParam &stParam)

Löschen Sie die temporären Dateien der Aufgabe. Die Download-Engine erstellt Dateien mit den Suffixen .td und .td.cfg, um die heruntergeladenen Daten zu speichern.
Parameter: [in]stParam, Aufgabenparameter, beziehen sich auf die Parameter beim Erstellen von Aufgaben. Hier sind jedoch nur das Verzeichnis und der Dateiname erforderlich, in dem die Datei gespeichert ist.
Rückgabewert: TRUE bedeutet Erfolg, FALSE bedeutet Misserfolg.
Hinweis: Der Dateiname ist der letzte Dateiname, der tatsächlich auf der Festplatte gespeichert wurde, ohne das temporäre Dateisuffix. Der endgültig gespeicherte Dateiname wird sich vom Namen der erstellten Aufgabe unterscheiden, daher sollte der Dateiname auf dem Dateinamen basieren, der durch die Abfrage der Aufgabeninformationen zurückgegeben wird. Wenn im Speicherpfad bereits eine Datei mit demselben Dateinamen vorhanden ist, ändert sich der endgültig gespeicherte Dateiname automatisch in den Dateinamen: Dateiname.zip → Dateiname(1).zip. Wird asynchron ausgeführt.

XL_SetSpeedLimit

void XL_SetSpeedLimit(INT32 nKBps)

Legen Sie die maximale Download-Geschwindigkeit fest.
Parameter: [in] nKBps, oberer Geschwindigkeitsgrenzwert
Beschreibung: asynchrone Ausführung

XL_SetProxy

BOOL XL_SetProxy(DOWN_PROXY_INFO &stProxyInfo)

Legen Sie den Download-Agent und die globalen Task-Agent-Informationen fest.
Parameter: [in] stProxyIfno Proxy-Informationen
DOWN_PROXY_INFO Referenz:

enum DOWN_PROXY_TYPE {
    
     
PROXY_TYPE_IE = 0, 
PROXY_TYPE_HTTP = 1, 
PROXY_TYPE_RESERVED= 2, //不支持该代理 
PROXY_TYPE_SOCK5 = 3, 
PROXY_TYPE_UNKOWN = 255, 
}; 
enum DOWN_PROXY_AUTH_TYPE {
    
     PROXY_AUTH_NONE =0, PROXY_AUTH_AUTO, PROXY_AUTH_BASE64, PROXY_AUTH_NTLM, PROXY_AUTH_DEGEST, PROXY_AUTH_UNKOWN, }; struct DOWN_PROXY_INFO {
    
     BOOL bIEProxy; BOOL bProxy; DOWN_PROXY_TYPE stPType; DOWN_PROXY_AUTH_TYPE stResverd; TCHAR szHost[2048]; INT32 nPort; TCHAR szUser[50]; TCHAR szPwd[50]; TCHAR szDomain[2048]; };

Rückgabewert: TRUE bedeutet Erfolg, FALSE bedeutet Misserfolg. Ungültiger Parameter gibt FALSE zurück

XL_SetUserAgent

void XL_SetUserAgent(const TCHAR *pszUserAgent)

Setzen Sie den UserAgent der HTTP-Aufgabenanforderung auf die ursprüngliche Ressource.
Parameter: [in] pszUserAgent, Client-UserAgent-Zeichenfolge
Beschreibung: Die nach dem Aufruf dieser Methode erstellte Aufgabe verwendet den neuen UserAgent.

XL_ParseThunderPrivateUrl

BOOL XL_ParseThunderPrivateUrl(const wchar_t *pszThunderUrl, wchar_t *normalUrlBuffer, INT32 bufferLen)

Der spezielle Xunlei-Link wird nach einer bestimmten Logik von einer normalen URL konvertiert.
Parameter: [in] pszThunderUrl, Xunlei-Spezialketten-URL [out] normalUrlBuffer, Puffer zum Speichern der konvertierten normalen URL [out] bufferLen, Puffergröße von normalUrlBuffer, Einheitsanzahl der Zeichen Rückgabewert: TRUE bedeutet Erfolg, FALSE bedeutet Fehlerbeschreibung:
Diese
Funktion ist unabhängig, hat keine Abhängigkeiten zu anderen Funktionen und kann jederzeit alleine verwendet werden

XL_SetUploadSpeedLimit

void XL_SetUploadSpeedLimit(INT32 nTcpKBps, INT32 nOtherKBps)

Die Upload-Geschwindigkeit des externen Netzwerks und des internen Netzwerks kann entsprechend der tatsächlichen Situation eingestellt werden.
Parameter: [in] nTcpKBps, interne Netzwerk-Upload-Geschwindigkeit, Einheit ist KB/s [in] nOtherKBps, externe Netzwerk-Upload-Geschwindigkeit, Einheit ist KB/s Rückgabewert:
Keiner

XL_CreateTaskByURL

HANDLE XL_CreateTaskByURL(const wchar_t *url, const wchar_t *path, const wchar_t *fileName, BOOL IsResume)

Erstellen Sie Aufgaben nach Aufgaben-URL, Pfad und Dateiname.
Parameter: [in] URL, Aufgaben-URL, darf nicht leer sein, einschließlich leerer Zeichen, die Zeichenlänge darf 2084 nicht überschreiten. [in] Pfad, Aufgabenpfad, darf nicht leer sein, einschließlich leerer Zeichen, die Zeichenlänge darf 260 [in] Dateiname nicht überschreiten , Name der Aufgabendatei, darf nicht leer sein, einschließlich leerer Zeichen, die Zeichenlänge darf 260 [in] nicht überschreiten IsResume, ob es sich um eine Wiederaufnahmeaufgabe handelt Rückgabewert
: Gibt das Handle der Aufgabe zurück

XL_CreateTaskByThunder

LONG XL_CreateTaskByThunder(wchar_t *pszUrl, wchar_t *pszFileName, wchar_t *pszReferUrl, wchar_t *pszCharSet, wchar_t *pszCookie)

Rufen Sie das neue Bedienfeld von Thunder 7 auf, um eine Download-Aufgabe zu erstellen, indem Sie Informationen wie URL und Dateinamen übergeben.
Parameter: [in] pszUrl, die Aufgaben-URL, [in] pszFileName, der Dateiname zum Herunterladen und Speichern, [in] pszReferUrl, die URL der verweisenden Seite, [in] pszCharSet, der Zeichensatz der aktuellen Webseite, [in] pszCookie, das Cookie Für das Herunterladen von Daten erforderlicher
Rückgabewert: 0 für Erfolg, andere für Fehler

XL_ForceStopTask

BOOL XL_ForceStopTask(HANDLE hTask)

Task zwangsweise anhalten
Parameter: [in] hTask, Task-Handle
Rückgabewert: TRUE bedeutet Erfolg, FALSE bedeutet Fehler. Wenn die Aufgabe nicht vorhanden ist, schlägt der Aufruf fehl.
Hinweis: Wenn UAC zum Herunterladen großer Dateien aktiviert ist, kann der Aufruf von XL_StopTask lange dauern. Wenn Sie in diesem Fall die Aufgabe schnell anhalten müssen, können Sie XL_ForceStopTask aufrufen. Dies kann jedoch zum Verlust der heruntergeladenen Daten führen, die nicht auf die Festplatte geschrieben wurden.

Vorsichtsmaßnahmen

1. Die globale Schnittstelle ist nicht threadsicher und andere Schnittstellen als XL_Init müssen aufgerufen werden, nachdem die Funktion erfolgreich zurückgegeben wurde.
2. Wenn sich die Aufgabe in TSC_STARTPENDING oder TSC_STOPPENDING befindet, kann die Operation für die Aufgabe nur die Schnittstelle zum Abfragen der Aufgabe aufrufen Information.

Beschreibung der Schnittstellenlogik

Asynchroner Task-Vorgang

Aufgabenoperationen werden asynchron ausgeführt. Die Aufrufschnittstelle verfügt über zwei Operationen: 1. Betreiben Sie die virtuelle Aufgabe in der oberen Ebene xldl.dll. 2. Schieben Sie einen zugehörigen Operationsbefehl in die Befehlswarteschlange

Die Aufgaben, die von der Schnittstellenschicht ausgeführt werden können, sind alle virtuelle Aufgaben, und die realen Aufgaben werden im MiniThunderPlatfom-Prozess erstellt. Der Prozess der Aufgabenerstellung: 1.Xldl erstellt eine virtuelle Aufgabe; 2. Schieben Sie den Vorgang und die Parameter in die Befehlswarteschlange; 3. Der Befehlsverarbeitungsthread ist für die Ausführung der Befehle in der Warteschlange verantwortlich und kommuniziert synchron mit MiniThunderPlatfom; 4. Danach Die Aufgabe wurde von MiniThunderPlatfom erfolgreich erstellt und die virtuelle Aufgabe kann mit realen Aufgaben verknüpft werden. Anschließend werden alle Operationen an virtuellen Aufgaben realen Aufgaben zugeordnet und reale Operationen werden auf MiniTP ausgeführt. Die Abfrage von Aufgabeninformationen und die Aktualisierung von Aufgabeninformationen müssen vom Anrufer gesteuert werden, und der Anrufer muss diese Schnittstelle alle 1 Sekunde aufrufen. Der Prozess der Abfrage und Aktualisierung von Aufgabeninformationen: 1. Wenn Sie die Schnittstelle zum Abfragen von Informationen aufrufen, fragen Sie zunächst die Aufgabeninformationen von der virtuellen Aufgabe ab. Beim ersten Aufruf dürfen keine Informationen vorhanden sein. 2. Drücken Sie den Abfragevorgang und die Parameter an die Befehlswarteschlange; 3. Befehlsverarbeitungsthread Verantwortlich für die Ausführung der Befehle in der Warteschlange und die synchrone Kommunikation mit MiniThunderPlatfom; 4. Speichern Sie die Informationen nach der Abfrage der realen Aufgabeninformationen in der virtuellen Aufgabe; 5. Die zweite Abfrage kann die Aufgabe direkt abfragen Informationen, die die letzte Abfrage von sind. Hier liegt eine Situation vor, in der die Aufgabeninformationen nicht durch den ersten Abfragevorgang abgerufen werden können, dh die Aufgabe befindet sich im Status „pause/start_pending“. In einem extremeren Fall, wenn die Abfrage nicht aufgerufen wurde, bevor der Task-Download abgeschlossen ist, und die Schnittstelle nach Abschluss der Task aufgerufen wird, wird festgestellt, dass der Task-Fortschritt 0 ist.

Der untergeordnete Prozess wurde abnormal beendet

Diese Situation ist unwillkommen, aber unvermeidlich. Die von MiniThunderPlatfom erstellte Aufgabe wird zerstört, nachdem der untergeordnete Prozess abnormal beendet wird. Auf diese Weise ist die virtuelle Aufgabe tatsächlich bedeutungslos, abgesehen von der Zuordnungsbeziehung zur realen Aufgabe. Zu diesem Zeitpunkt wird beim Abfragen der Aufgabeninformationen ein Aufgabenfehler zurückgegeben und der Fehlercode lautet TASK_ERROR_ID_INVALID (Aufgaben-ID ist ungültig). Zu diesem Zeitpunkt muss die Wiederaufnahmeaufgabe neu erstellt werden. Die Schnittstelle ist XL_CreateTask. Die anderen Parameter in der Struktur sind dieselben wie beim Erstellen einer normalen Aufgabe und der Parameter IsResume ist auf TRUE gesetzt.

andere

Beschreibung der SDK-Datei

Das SDK verfügt über insgesamt 10 Binärdateien. Die Abhängigkeiten zwischen Binärdateien sind in der folgenden Abbildung dargestellt:

Funktionseinführung jeder Datei:

Dateiname Funktion
xldl.dll MiniTP-Schnittstelle exportieren
MiniThunderPlatform.exe unabhängiger Prozess
download_engine.dll MiniTP-Kernbibliothek
zlib1.dll Kommunikationsdaten komprimieren
dl_peer_id.dll Besorgen Sie sich die Thunder-Client-ID
XLBugReport.exe Verantwortlich für die Meldung erfasster Abstürze
XLBugHandler.dll Verantwortlich für das Aufrufen von XLBugReport.exe
minizip.dll、mini_unzip.dll Crash-Stack für komprimierte Dateien
atl71.dll Von Microsoft bereitgestellte Bibliotheken

Supongo que te gusta

Origin blog.csdn.net/sunny_day_day/article/details/128454747
Recomendado
Clasificación