📄 dcc_download_generic.h
字号:
/* $Id: dcc_download_generic.h,v 1.5 2003/10/14 15:52:13 mbn Exp $
**
** ClanLib Game SDK
** Copyright (C) 2003 The ClanLib Team
** For a total list of contributers see the file CREDITS.
**
** This library is free software; you can redistribute it and/or
** modify it under the terms of the GNU Lesser General Public
** License as published by the Free Software Foundation; either
** version 2.1 of the License, or (at your option) any later version.
**
** This library 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
** Lesser General Public License for more details.
**
** You should have received a copy of the GNU Lesser General Public
** License along with this library; if not, write to the Free Software
** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef header_dcc_download_generic
#define header_dcc_download_generic
#if _MSC_VER > 1000
#pragma once
#endif
#include "API/Network/Socket/socket.h"
#include "API/Network/IRC/dcc_download.h"
#include "API/Core/System/thread.h"
#include "API/Core/System/keep_alive.h"
#include "API/Core/System/mutex.h"
#include "API/Core/System/event_trigger.h"
class CL_DCCDownload_Generic : private CL_Runnable, private CL_KeepAlive
{
//! Construction:
public:
CL_DCCDownload_Generic(
const std::string &server,
const std::string &port,
const std::string &filename,
int total_size,
CL_OutputSourceProvider *provider,
bool delete_provider);
~CL_DCCDownload_Generic();
//! Attributes:
public:
CL_Thread thread;
CL_Mutex mutex;
std::string server, port, filename;
int total_size;
CL_OutputSourceProvider *provider;
bool delete_provider;
CL_DCCDownload::Status status;
CL_EventTrigger shutdown_trigger, reconnect_trigger;
enum
{
no_signal,
lost_signal,
complete_signal
} send_signal;
std::string error;
//: sig_connection_lost(error_message)
CL_Signal_v1<const std::string &> sig_connection_lost;
//: sig_download_complete()
CL_Signal_v0 sig_download_complete;
//! Operations:
public:
void add_ref();
void release_ref();
//! Implementation:
private:
virtual void run();
virtual void keep_alive();
int ref_count;
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -