Documentação da interface de plataforma aberta acelerada em nuvem Xunlei

interface global

nome da interface Descrição da função
XL_Init Inicializa o SDK e o prepara para lidar com operações subsequentes.
XL_UnInit Desinicialize o SDK e libere os recursos solicitados durante a execução do módulo.
XL_DelTempFile excluir arquivos temporários
XL_SetSpeedLimit Defina a velocidade máxima de download
XL_SetProxy Definir proxy global
XL_SetUserAgent Informações do cliente ao configurar solicitações HTTP
XL_ParseThunderPrivateUrl Converta o link privado Xunlei em um URL real
XL_SetUploadSpeedLimit limitar a velocidade de upload
XL_CreateTaskByURL Simplesmente encapsula a interface XL_CreateTask
XL_CreateTaskByThunder Abra o Thunder 7 para criar uma tarefa de download
XL_ForceStopTask forçar suspensão de tarefa

interface de tarefa

nome da interface Descrição da função
XL_CreateTask criar tarefa
XL_DeleteTask destruir tarefa
XL_StartTask iniciar tarefa
XL_StopTask parar tarefa
XL_QueryTaskInfoEx Consultar informações da tarefa

Detalhes da interface

XL_Init

BOOLXL_Init(vazio)

Inicializa o mecanismo de download e o prepara para lidar com operações subsequentes.
Valor de retorno: TRUE significa sucesso, FALSE significa fracasso. Alguns casos especiais farão com que a inicialização falhe, como: o arquivo binário está faltando.
Nota: Esta interface deve aparecer em pares com XL_Unint(void). Ao chamar essa interface, xldl.dll abrirá o subprocesso MiniThunderPlatform.exe.

XL_UnInit

BOOL XL_UnInit(vazio)

Desinicialize o mecanismo de download e libere os recursos solicitados durante a operação do módulo.
返回值: VERDADEIRO significa sucesso, FALSO significa fracasso.
说明: Depois de chamar esta interface, o processo filho MiniThunderPlatform.exe será notificado para sair.

XL_CreateTask

HANDLE XL_CreateTask(DownTaskParam &stParam)

Crie tarefas. Você pode criar uma nova tarefa ou retomar uma tarefa. IsResume no parâmetro é usado para indicar se a tarefa é uma tarefa de retomada. Para outras informações, consulte a definição de DownTaskParam.
参数: [in] stParam, os parâmetros necessários para criar a tarefa.
Referência DownTaskParam:

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]; 
}

返回值: Retorna o identificador da tarefa.
说明: Após a criação da tarefa, ela não será baixada imediatamente e XL_StartTask precisa ser chamado. Executado de forma assíncrona.

XL_DeleteTask

BOOL XL_DeleteTask(HANDLE hTask)

Destrua a tarefa e libere os recursos solicitados pela tarefa durante a execução.
Parâmetros: [in]hTask, identificador de tarefa
Valor de retorno: TRUE significa sucesso, FALSE significa falha. A chamada falha quando a tarefa não existe.
Nota: Esta interface precisa ser chamada quando a tarefa é suspensa, bem-sucedida ou excluída para garantir que os recursos sejam liberados o mais rápido possível. Execução assíncrona, se a tarefa estiver no estado pendente, esta interface não poderá ser chamada.

XL_StartTask

BOOL XL_StartTask(HANDLE hTask);

iniciar o download. Após a tarefa ser criada com sucesso, o download não será iniciado imediatamente e esta interface precisa ser chamada para iniciar o download.
Parâmetros: [in]hTask, identificador de tarefa
Valor de retorno: TRUE significa sucesso, FALSE significa falha. A chamada falha quando a tarefa não existe.
Nota: Execução assíncrona, se a tarefa estiver no estado pendente, esta interface não poderá ser chamada.

XL_StopTask

BOOL XL_StopTask(HANDLE hTask)

Parar o download
Parâmetros: [in]hTask, identificador de tarefa
Valor de retorno: TRUE significa sucesso, FALSE significa falha. A chamada falha quando a tarefa não existe.
Nota: O método de pesquisa é usado para obter informações da tarefa. A consulta final de quantos dados são baixados pela tarefa é correta após a interrupção do download da tarefa. A tarefa não será interrompida imediatamente após a chamada e só poderá ser obtida após a votação até que o status da tarefa seja PAUSE.

XL_QueryTaskInfoEx

BOOL XL_QueryTaskInfoEx(HANDLE hTask, DownTaskInfo & stTaskInfo);

Consulte as informações atuais da tarefa.
Parâmetros: [in]hTask, identificador de tarefa [out] stTaskInfo, informações da tarefa.
Referência DownTaskInfo:

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 非法 
};

返回值: TRUEindica sucesso, FALSEindica falha.
说明: IsOriginUsable, se o recurso original está disponível é um parâmetro booleano, mas a conexão original com o recurso original é uma operação demorada, o que significa que não se sabe se o recurso original é válido por um período intermediário. O estado inicial deste parâmetro é falso, portanto há um problema de que o recurso original é válido, mas este parâmetro é falso no início da tarefa. Quando a camada superior utiliza esse valor, ele precisa ser processado de acordo com a lógica de negócios.

XL_DelTempFile

BOOL XL_DelTempFile(DownTaskParam &stParam)

Exclua os arquivos temporários da tarefa. O mecanismo de download criará arquivos com sufixos .td e .td.cfg para salvar os dados baixados.
Parâmetros: [in]stParam, parâmetros de tarefa, referem-se aos parâmetros na criação de tarefas. Mas aqui apenas o diretório e o nome do arquivo onde o arquivo foi salvo são necessários.
Valor de retorno: TRUE significa sucesso, FALSE significa fracasso.
Nota: O nome do arquivo é o último nome de arquivo realmente salvo no disco, sem o sufixo do arquivo temporário. O nome do arquivo final salvo será diferente da tarefa criada, portanto, o nome do arquivo deve ser baseado no nome do arquivo retornado pela consulta das informações da tarefa. Quando um arquivo com o mesmo nome já existir no caminho de salvamento, o nome final do arquivo salvo mudará automaticamente o nome do arquivo: filename.zip → filename(1).zip. Executado de forma assíncrona.

XL_SetSpeedLimit

vazio XL_SetSpeedLimit(INT32 nKBps)

Defina a velocidade máxima de download.
Parâmetros: [in]nKBps,
valor limite superior de velocidade Descrição: execução assíncrona

XL_SetProxy

BOOL XL_SetProxy(DOWN_PROXY_INFO &stProxyInfo)

Defina o agente de download e as informações do agente de tarefa global.
Parâmetros: [in] stProxyIfno Informações do proxy
DOWN_PROXY_INFO Referência:

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]; };

Valor de retorno: TRUE significa sucesso, FALSE significa fracasso. Parâmetro inválido retorna FALSE

XL_SetUserAgent

void XL_SetUserAgent(const TCHAR *pszUserAgent)

Configure o UserAgent da solicitação de tarefa HTTP para o recurso original.
Parâmetros: [in] pszUserAgent, cliente UserAgent string
Descrição: A tarefa criada após chamar esse método usará o novo UserAgent.

XL_ParseThunderPrivateUrl

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

O link especial Xunlei é convertido de um URL normal de acordo com uma certa lógica.
Parâmetros: [in] pszThunderUrl, URL de cadeia especial Xunlei [out] normalUrlBuffer, buffer para armazenar URL normal convertido [out] bufferLen, tamanho do buffer de normalUrlBuffer, número da unidade de caracteres Valor de retorno: TRUE significa sucesso, FALSE significa falha descrição:
Esta
função é independente, não tem dependências com outras funções e pode ser usado sozinho a qualquer momento

XL_SetUploadSpeedLimit

void XL_SetUploadSpeedLimit(INT32 nTcpKBps, INT32 nOtherKBps)

A velocidade de upload da rede externa e da rede interna pode ser definida de acordo com a situação real.
Parâmetros: [in] nTcpKBps, velocidade de upload da rede interna, unidade é KB/s [in] nOtherKBps, velocidade de upload da rede externa, unidade é KB/s
Valor de retorno: Nenhum

XL_CreateTaskByURL

HANDLE XL_CreateTaskByURL(const wchar_t *url, const wchar_t *caminho, const wchar_t *nomedoarquivo, BOOL IsResume)

Crie tarefas por URL de tarefa, caminho e nome de arquivo.
Parâmetros: [in] url, URL da tarefa, não pode estar vazio, incluindo caracteres vazios, o comprimento de caracteres não pode exceder 2084 [in] caminho, caminho da tarefa, não pode estar vazio, incluindo caracteres vazios, o comprimento de caracteres não pode exceder 260 [in] fileName , nome do arquivo de tarefa, não pode estar vazio, incluindo caracteres vazios, o comprimento de caracteres não pode exceder 260 [in] IsResume, seja uma tarefa de retomada
Valor de retorno: retorna o identificador da tarefa

XL_CreateTaskByThunder

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

Abra o novo painel do Thunder 7 para criar uma tarefa de download passando informações como URL e nome do arquivo. Parâmetros: [in] pszUrl, o URL da tarefa [in] pszFileName, o nome do arquivo para baixar e salvar [in] pszReferUrl, o URL da página de referência [in] pszCharSet, o conjunto de caracteres da página da web atual [in] pszCookie, o cookie valor de retorno
necessário para baixar dados

XL_ForceStopTask

BOOL XL_ForceStopTask(HANDLE hTask)

Suspensão forçada da tarefa
Parâmetros: [in] hTask, identificador de tarefa
Valor de retorno: TRUE significa sucesso, FALSE significa falha. Quando a tarefa não existir, a chamada falhará.
Nota: Quando o UAC está habilitado para baixar arquivos grandes, pode demorar muito para chamar XL_StopTask. Nesse caso, se precisar suspender a tarefa rapidamente, você pode chamar XL_ForceStopTask, mas isso pode causar a perda dos dados baixados que não foram gravados no disco.

Precauções

1. A interface global não é thread-safe e outras interfaces diferentes de XL_Init devem ser chamadas após o retorno da função com sucesso;
2. Se a tarefa estiver em TSC_STARTPENDING ou TSC_STOPPENDING, a operação na tarefa só poderá chamar a interface para consultar a tarefa Informação.

Descrição da lógica da interface

Operação assíncrona de tarefa

As operações de tarefa são executadas de forma assíncrona. A interface de chamada tem duas operações: 1. Operar a tarefa virtual na camada superior xldl.dll 2. Enviar um comando de operação relacionado na fila de comandos

As tarefas que podem ser operadas pela camada de interface são todas tarefas virtuais, e as tarefas reais são criadas no processo MiniThunderPlatfom. O processo de criação de tarefas: 1.Xldl cria uma tarefa virtual; 2. Envie a operação e os parâmetros para a fila de comandos; 3. O thread de processamento de comandos é responsável por executar os comandos na fila e se comunica de forma síncrona com o MiniThunderPlatfom; 4. Depois a tarefa foi criada com sucesso pelo MiniThunderPlatfom, a tarefa virtual pode ser mapeada com tarefas reais. Posteriormente, todas as operações em tarefas virtuais serão mapeadas para tarefas reais, e as operações reais serão realizadas no MiniTP. A consulta de informações da tarefa e a atualização das informações da tarefa precisam ser conduzidas pelo chamador, e o chamador precisa chamar essa interface a cada 1s. O processo de consulta e atualização de informações da tarefa: 1. Ao chamar a interface para consultar informações, primeiro consulte as informações da tarefa virtual. Não deve haver nenhuma informação ao chamar pela primeira vez. 2. Envie a operação de consulta e os parâmetros para a fila de comandos; 3. Thread de processamento de comandos Responsável por executar os comandos na fila e comunicar-se de forma síncrona com MiniThunderPlatfom; 4. Após consultar as informações reais da tarefa, armazene as informações na tarefa virtual; 5. A segunda consulta pode consultar diretamente a tarefa informações, que é a última consulta de. Haverá tal situação aqui, as informações da tarefa não podem ser obtidas pela primeira operação de consulta, ou seja, a tarefa está no estado pause/start_pending. Em um caso mais extremo, se a consulta não tiver sido chamada antes da conclusão do download da tarefa, se a interface for chamada após a conclusão da tarefa, o progresso da tarefa será 0.

O processo filho foi encerrado de forma anormal

Esta situação é indesejável, mas inevitável. A tarefa criada pelo MiniThunderPlatfom será destruída após o processo filho ser encerrado de forma anormal. Desta forma, a tarefa virtual não tem sentido, exceto pelo relacionamento de mapeamento com a tarefa real. Neste momento, consultar as informações da tarefa retornará um erro de tarefa e o código de erro é TASK_ERROR_ID_INVALID (o ID da tarefa é inválido). Neste momento, é necessário recriar a tarefa de currículo, a interface é XL_CreateTask, os demais parâmetros da estrutura são iguais aos de criação de uma tarefa normal e o parâmetro IsResume está definido como TRUE.

outro

Descrição do arquivo SDK

O SDK tem um total de 10 binários. As dependências entre binários são mostradas na figura abaixo:

Introdução da função de cada arquivo:

nome do arquivo Função
xldl.dll Exportar interface MiniTP
MiniThunderPlatform.exe processo independente
download_engine.dll Biblioteca principal MiniTP
zlib1.dll Compactar dados de comunicação
dl_peer_id.dll Obtenha o ID do cliente Thunder
XLBugReport.exe Responsável por relatar falhas capturadas
XLBugHandler.dll Responsável por abrir XLBugReport.exe
minizip.dll、mini_unzip.dll Pilha de falhas para arquivos compactados
atl71.dll Bibliotecas fornecidas pela Microsoft

Acho que você gosta

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