/*
*功能:在m_metafile中查找指定关键字
*返回:函数查找到指定的关键字返回1,没有找到返回0,函数执行出错返回-1
*参数:word为需要查找的指定关键字,index为查找到的字符串的起始下标
*/
STATE FindWord(const char* word, long long& index);
/*
* 功能:解析种子文件的tracker服务器列表,将其放入m_metaInfo.trackerList
* 返回:函数成功执行返回0,失败返回-1
* 附注:m_metaInfo.trackerList第一个值为主tracker服务器
*/
STATE ResTracker();
/*
* 功能:解析piece快大小,将其放入m_metaInfo.pieceLen
* 返回:成功执行返回0,失败返回-1,m_metafile为空返回2
*/
STATE ResPieceLen();
/*
* 功能:解析每个块对应的hash值字符串,将其放入m_metaInfo.pieces
* 返回:函数成功执行返回0,失败返回-1,m_metafile为空返回2
*/
STATE ResPieces();
/*
* 功能:解析文件名,对于多文件而言解析目录名,
* 若解析单文件,放入m_metaInfo.filename,若解析多文件,放入dirName
* 返回:函数成功执行返回0,失败返回-1,m_metafile为空返回2
*/
STATE ResFileName();
/*
* 功能:解析总文件大小,填充m_metaInfo.fileLength
* 返回:函数成功执行返回0,失败返回-1,m_metafile为空返回2
*/
STATE ResFileLength();
/*
* 功能:解析文件大小和路径,仅对多文件有效,填充m_metaInfo.multiFiles结构体
* 返回:函数成功执行返回0,失败返回-1,m_metafile为空返回2
*/
STATE ResFilePathLen();
/*
* 功能:释放类资源
*/
void ReleaseMem();
protected:
/*种子文件信息*/
MetafileInfo m_metaInfo;
/*存储种子文件路径*/
string m_metafilePath;
/*存储种子文件的内容*/
unsigned char* m_metafile;
/*种子文件大小*/
long long int m_metafileLen;