00001
00002
00003
00004
00005 #pragma once
00006
00007 #include "vmsBtDownload.h"
00008 #include "vmsBtFile.h"
00009
00010 enum vmsBtSessionEventType
00011 {
00012
00013
00014 BTSET_LISTEN_FAILED,
00015
00016
00017 BTSET_FILE_ERROR,
00018
00019
00020 BTSET_TRACKER_ANNOUNCE,
00021
00022
00023 BTSET_TRACKER,
00024
00025
00026 BTSET_TRACKER_REPLY,
00027
00028
00029
00030
00031 BTSET_TRACKER_WARNING,
00032
00033 BTSET_URL_SEED,
00034
00035
00036
00037 BTSET_HASH_FAILED,
00038
00039
00040 BTSET_PEER_BAN,
00041
00042
00043
00044 BTSET_PEER_ERROR,
00045
00046
00047 BTSET_TORRENT_FINISHED,
00048
00049
00050 BTSET_BTDLD_WAS_RESET,
00051 };
00052
00053 struct vmsBtSessionEvent
00054 {
00055 vmsBtSessionEventType enType;
00056 LPCSTR pszMsg;
00057 vmsBtDownload *pDownload;
00058
00059 union {
00060
00061 int times_in_row;
00062 int status_code;
00063
00064
00065 LPCSTR pszUrl;
00066
00067
00068 int piece_index;
00069
00070
00071 LPCSTR pszIp;
00072 };
00073 };
00074
00075 typedef void (*fntBtSessionEventsHandler)(class vmsBtSession*, vmsBtSessionEvent*, LPVOID);
00076
00077 class vmsBtSession
00078 {
00079 public:
00080
00081
00082 virtual void ListenOn (int portFrom, int portTo) = NULL;
00083
00084 virtual BOOL IsListening () = NULL;
00085
00086 virtual USHORT get_ListenPort () = NULL;
00087
00088 virtual vmsBtDownload* CreateDownload (vmsBtFile *torrent, LPCSTR pszOutputPath, LPBYTE pbFastResumeData, DWORD dwFRDataSize, BOOL bCompactMode) = NULL;
00089
00090 virtual void SetDownloadLimit (int limit) = NULL;
00091 virtual void SetUploadLimit (int limit) = NULL;
00092
00093 virtual void SetMaxUploads (int limit) = NULL;
00094
00095 virtual void DeleteDownload (vmsBtDownload*) = NULL;
00096
00097 virtual void DHT_start (LPBYTE pbState, DWORD dwStateSize) = NULL;
00098 virtual void DHT_stop () = NULL;
00099 virtual BOOL DHT_getState (LPBYTE pbBuffer, DWORD dwBufferSize, LPDWORD pdwDataSize) = NULL;
00100 virtual BOOL DHT_isStarted () = NULL;
00101
00102 virtual void set_EventsHandler (fntBtSessionEventsHandler pfn, LPVOID pData) = NULL;
00103 virtual void SetProxySettings (LPCSTR pszIp, int nPort, LPCSTR pszUser, LPCSTR pszPwd) = NULL;
00104 virtual int get_TotalDownloadConnectionCount () = NULL;
00105 virtual int get_DownloadCount () = NULL;
00106 virtual vmsBtDownload* get_Download (int nIndex) = NULL;
00107 virtual int get_TotalDownloadSpeed () = NULL;
00108 virtual int get_TotalUploadSpeed () = NULL;
00109 virtual UINT64 get_TotalDownloadedByteCount () = NULL;
00110 virtual UINT64 get_TotalUploadedByteCount () = NULL;
00111 virtual void SetUserAgent (LPCSTR pszUA) = NULL;
00112 };