?? bitfield.h
字號:
#ifndef BITFIELD_H
#define BITFIELD_H
typedef struct _Bitmap {
unsigned char *bitfield; // 保存位圖
int bitfield_length; // 位圖所占的總字節(jié)數(shù)
int valid_length; // 位圖有效的總位數(shù),每一位代表一個(gè)piece
} Bitmap;
int create_bitfield(); // 創(chuàng)建位圖,分配內(nèi)存并進(jìn)行初始化
int get_bit_value(Bitmap *bitmap,int index); // 獲取某一位的值
int set_bit_value(Bitmap *bitmap,int index,
unsigned char value); // 設(shè)置某一位的值
int all_zero(Bitmap *bitmap); // 全部清零
int all_set(Bitmap *bitmap); // 全部設(shè)置為1
void release_memory_in_bitfield(); // 釋放bitfield.c中動態(tài)分配的內(nèi)存
int print_bitfield(Bitmap *bitmap); // 打印位圖值,用于調(diào)試
int restore_bitmap(); // 將位圖存儲到文件中
// 在下次下載時(shí),先讀取該文件獲取已經(jīng)下載的進(jìn)度
int is_interested(Bitmap *dst,Bitmap *src); // 擁有位圖src的peer是否對擁有
// dst位圖的peer感興趣
int get_download_piece_num(); // 獲取當(dāng)前已下載到的總piece數(shù)
#endif
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -