SYMBOL INDEX (3425 symbols across 303 files) FILE: benchmarks/benchmark_concurrent.c type operation_type_t (line 23) | typedef enum { type uploaded_file_t (line 29) | typedef struct { type user_context_t (line 34) | typedef struct { function get_time_us (line 84) | static double get_time_us() { function add_to_file_pool (line 109) | static void add_to_file_pool(const char *group_name, const char *remote_... function get_random_file (line 126) | static int get_random_file(char *group_name, char *remote_filename) { function remove_from_file_pool (line 145) | static void remove_from_file_pool(const char *group_name, const char *re... function operation_type_t (line 166) | static operation_type_t select_operation(int upload_ratio, int download_... function perform_upload (line 182) | static int perform_upload(user_context_t *ctx, char *file_data) { function perform_download (line 202) | static int perform_download(user_context_t *ctx) { function perform_delete (line 228) | static int perform_delete(user_context_t *ctx) { function signal_handler (line 329) | static void signal_handler(int signum) { function print_results (line 336) | static void print_results(double duration) { function print_usage (line 389) | static void print_usage(const char *program) { function main (line 405) | int main(int argc, char *argv[]) { FILE: benchmarks/benchmark_download.c type file_info_t (line 23) | typedef struct { type thread_context_t (line 29) | typedef struct { type latency_stats_t (line 45) | typedef struct { function get_time_us (line 87) | static double get_time_us() { function prepare_test_files (line 112) | static int prepare_test_files() { function load_file_list (line 165) | static int load_file_list(const char *filename) { function compare_double (line 227) | static int compare_double(const void *a, const void *b) { function calculate_latency_stats (line 235) | static void calculate_latency_stats(double *latencies, int count, latenc... function print_results (line 351) | static void print_results(double total_time, latency_stats_t *stats) { function print_usage (line 396) | static void print_usage(const char *program) { function main (line 413) | int main(int argc, char *argv[]) { FILE: benchmarks/benchmark_large_files.c type thread_context_t (line 21) | typedef struct { function get_time_us (line 54) | static double get_time_us() { function compare_double (line 82) | static int compare_double(const void *a, const void *b) { function print_results (line 171) | static void print_results(double total_time, double *all_latencies, int ... function print_usage (line 229) | static void print_usage(const char *program) { function main (line 244) | int main(int argc, char *argv[]) { FILE: benchmarks/benchmark_metadata.c type file_info_t (line 21) | typedef struct { type thread_context_t (line 26) | typedef struct { function get_time_us (line 77) | static double get_time_us() { function prepare_test_files (line 99) | static int prepare_test_files() { function compare_double (line 160) | static int compare_double(const void *a, const void *b) { function perform_query (line 168) | static int perform_query(file_info_t *file, double *latency) { function perform_update (line 189) | static int perform_update(file_info_t *file, double *latency) { function perform_delete (line 208) | static int perform_delete(file_info_t *file, double *latency) { function print_latency_stats (line 304) | static void print_latency_stats(const char *op_name, double *latencies, ... function print_results (line 332) | static void print_results(double total_time, thread_context_t *contexts) { function print_usage (line 406) | static void print_usage(const char *program) { function main (line 421) | int main(int argc, char *argv[]) { FILE: benchmarks/benchmark_small_files.c type thread_context_t (line 21) | typedef struct { function get_time_us (line 54) | static double get_time_us() { function compare_double (line 76) | static int compare_double(const void *a, const void *b) { function print_results (line 154) | static void print_results(double total_time, double *all_latencies, int ... function print_usage (line 203) | static void print_usage(const char *program) { function main (line 218) | int main(int argc, char *argv[]) { FILE: benchmarks/benchmark_upload.c type thread_context_t (line 23) | typedef struct { type latency_stats_t (line 38) | typedef struct { function get_time_us (line 74) | static double get_time_us() { function compare_double (line 99) | static int compare_double(const void *a, const void *b) { function calculate_latency_stats (line 107) | static void calculate_latency_stats(double *latencies, int count, latenc... function run_warmup (line 232) | static void run_warmup() { function print_results (line 262) | static void print_results(double total_time, latency_stats_t *stats) { function print_usage (line 307) | static void print_usage(const char *program) { function main (line 323) | int main(int argc, char *argv[]) { FILE: benchmarks/scripts/compare_versions.py function load_results (line 14) | def load_results(filepath): function calculate_change (line 27) | def calculate_change(baseline, current): function format_change (line 34) | def format_change(change): function compare_metrics (line 44) | def compare_metrics(baseline_metrics, current_metrics, metric_name): function compare_benchmark (line 58) | def compare_benchmark(baseline_data, current_data, bench_name): function generate_html_comparison (line 126) | def generate_html_comparison(baseline, current, output_file): function main (line 311) | def main(): FILE: benchmarks/scripts/generate_report.py function load_results (line 224) | def load_results(input_file): function format_bytes (line 237) | def format_bytes(bytes_val): function format_number (line 246) | def format_number(num): function create_metric_card (line 251) | def create_metric_card(label, value, unit="", card_type="info"): function create_progress_bar (line 261) | def create_progress_bar(label, percentage): function create_latency_table (line 275) | def create_latency_table(latency_data): function generate_upload_section (line 311) | def generate_upload_section(data): function generate_download_section (line 381) | def generate_download_section(data): function generate_concurrent_section (line 433) | def generate_concurrent_section(data): function generate_small_files_section (line 498) | def generate_small_files_section(data): function generate_large_files_section (line 550) | def generate_large_files_section(data): function generate_metadata_section (line 602) | def generate_metadata_section(data): function generate_report (line 655) | def generate_report(results, output_file): function main (line 742) | def main(): FILE: cli/fdfs_cli.c type CLIConfig (line 38) | typedef struct { function print_colored (line 68) | static void print_colored(const char *color, const char *fmt, ...) { function print_progress (line 82) | static void print_progress(int64_t cur, int64_t total, const char *label) { type tm (line 125) | struct tm function print_json (line 131) | static void print_json(const char *op, int res, const char *fid, const c... function cmd_upload (line 143) | static int cmd_upload(int argc, char *argv[]) { function cmd_download (line 229) | static int cmd_download(int argc, char *argv[]) { function cmd_delete (line 294) | static int cmd_delete(int argc, char *argv[]) { function cmd_info (line 372) | static int cmd_info(int argc, char *argv[]) { function cmd_batch (line 434) | static int cmd_batch(int argc, char *argv[]) { function cmd_interactive (line 513) | static int cmd_interactive(void) { function usage (line 573) | static void usage(char *argv[]) { function main (line 598) | int main(int argc, char *argv[]) { FILE: client/client_func.c function storage_cmp_by_ip_and_port (line 35) | static int storage_cmp_by_ip_and_port(const void *p1, const void *p2) function storage_cmp_server_info (line 50) | static int storage_cmp_server_info(const void *p1, const void *p2) function insert_into_sorted_servers (line 86) | static void insert_into_sorted_servers(TrackerServerGroup *pTrackerGroup, \ function copy_tracker_servers (line 106) | static int copy_tracker_servers(TrackerServerGroup *pTrackerGroup, function fdfs_check_tracker_group (line 153) | static int fdfs_check_tracker_group(TrackerServerGroup *pTrackerGroup, function fdfs_load_tracker_group_ex (line 177) | int fdfs_load_tracker_group_ex(TrackerServerGroup *pTrackerGroup, function fdfs_load_tracker_group (line 216) | int fdfs_load_tracker_group(TrackerServerGroup *pTrackerGroup, function fdfs_get_params_from_tracker (line 237) | static int fdfs_get_params_from_tracker(bool *use_storage_id) function fdfs_client_do_init_ex (line 263) | static int fdfs_client_do_init_ex(TrackerServerGroup *pTrackerGroup, \ function fdfs_client_init_from_buffer_ex (line 420) | int fdfs_client_init_from_buffer_ex(TrackerServerGroup *pTrackerGroup, \ function fdfs_client_init_ex (line 450) | int fdfs_client_init_ex(TrackerServerGroup *pTrackerGroup, \ function fdfs_copy_tracker_group (line 470) | int fdfs_copy_tracker_group(TrackerServerGroup *pDestTrackerGroup, \ function fdfs_tracker_group_equals (line 502) | bool fdfs_tracker_group_equals(TrackerServerGroup *pGroup1, function fdfs_client_destroy_ex (line 531) | void fdfs_client_destroy_ex(TrackerServerGroup *pTrackerGroup) FILE: client/client_func.h type FDFSFileInfo (line 21) | typedef struct { function fdfs_combine_file_id (line 146) | static inline int fdfs_combine_file_id(const char *group_name, FILE: client/client_global.h type FDFSConnectFirstBy (line 18) | typedef enum { FILE: client/fdfs_append_file.c function main (line 19) | int main(int argc, char *argv[]) FILE: client/fdfs_appender_test.c function writeToFileCallback (line 23) | int writeToFileCallback(void *arg, const int64_t file_size, const char *... function uploadFileCallback (line 39) | int uploadFileCallback(void *arg, const int64_t file_size, int sock) function main (line 54) | int main(int argc, char *argv[]) FILE: client/fdfs_appender_test1.c function writeToFileCallback (line 23) | int writeToFileCallback(void *arg, const int64_t file_size, const char *... function uploadFileCallback (line 39) | int uploadFileCallback(void *arg, const int64_t file_size, int sock) function main (line 54) | int main(int argc, char *argv[]) FILE: client/fdfs_bulk_import.c type BulkImportOptions (line 29) | typedef struct { function usage (line 43) | static void usage(const char *program_name) function parse_import_mode (line 71) | static int parse_import_mode(const char *mode_str) function parse_options (line 82) | static int parse_options(int argc, char *argv[], BulkImportOptions *opti... function write_output_mapping (line 179) | static int write_output_mapping(FILE *fp, const BulkImportFileInfo *file... function import_single_file (line 197) | static int import_single_file(BulkImportContext *context, function import_directory_recursive (line 243) | static int import_directory_recursive(BulkImportContext *context, function print_summary (line 289) | static void print_summary(const BulkImportContext *context, const BulkIm... function main (line 314) | int main(int argc, char *argv[]) FILE: client/fdfs_crc32.c function main (line 19) | int main(int argc, char *argv[]) FILE: client/fdfs_delete_file.c function main (line 19) | int main(int argc, char *argv[]) FILE: client/fdfs_download_file.c function main (line 19) | int main(int argc, char *argv[]) FILE: client/fdfs_file_info.c function usage (line 19) | static void usage(const char *program) function main (line 29) | int main(int argc, char *argv[]) FILE: client/fdfs_monitor.c function usage (line 30) | static void usage(char *argv[]) function main (line 39) | int main(int argc, char *argv[]) function list_storages (line 285) | static int list_storages(FDFSGroupStat *pGroupStat) function list_all_groups (line 625) | static int list_all_groups(const char *group_name) FILE: client/fdfs_regenerate_filename.c function main (line 19) | int main(int argc, char *argv[]) FILE: client/fdfs_test.c function writeToFileCallback (line 23) | int writeToFileCallback(void *arg, const int64_t file_size, const char *... function uploadFileCallback (line 39) | int uploadFileCallback(void *arg, const int64_t file_size, int sock) function main (line 54) | int main(int argc, char *argv[]) FILE: client/fdfs_test1.c function writeToFileCallback (line 23) | int writeToFileCallback(void *arg, const int64_t file_size, const char *... function uploadFileCallback (line 39) | int uploadFileCallback(void *arg, const int64_t file_size, int sock) function main (line 53) | int main(int argc, char *argv[]) FILE: client/fdfs_upload_appender.c function main (line 18) | int main(int argc, char *argv[]) FILE: client/fdfs_upload_file.c function usage (line 19) | static void usage(char *argv[]) function main (line 25) | int main(int argc, char *argv[]) FILE: client/storage_client.c function ConnectionInfo (line 50) | static ConnectionInfo *make_connection_by_tracker( function ConnectionInfo (line 88) | static ConnectionInfo *make_connection_by_last_connected( function ConnectionInfo (line 134) | static inline ConnectionInfo *storage_make_connection( function ConnectionInfo (line 157) | static ConnectionInfo *storage_make_connection_with_retry( function storage_get_connection (line 231) | static int storage_get_connection(ConnectionInfo *pTrackerServer, \ function storage_get_upload_connection (line 291) | static int storage_get_upload_connection(ConnectionInfo *pTrackerServer, \ function storage_get_metadata1 (line 354) | int storage_get_metadata1(ConnectionInfo *pTrackerServer, \ function storage_get_metadata (line 365) | int storage_get_metadata(ConnectionInfo *pTrackerServer, \ function storage_query_file_info_ex1 (line 454) | int storage_query_file_info_ex1(ConnectionInfo *pTrackerServer, \ function storage_query_file_info_ex (line 463) | int storage_query_file_info_ex(ConnectionInfo *pTrackerServer, function storage_delete_file1 (line 589) | int storage_delete_file1(ConnectionInfo *pTrackerServer, \ function storage_truncate_file1 (line 599) | int storage_truncate_file1(ConnectionInfo *pTrackerServer, \ function storage_delete_file (line 611) | int storage_delete_file(ConnectionInfo *pTrackerServer, \ function storage_do_download_file1_ex (line 681) | int storage_do_download_file1_ex(ConnectionInfo *pTrackerServer, \ function storage_do_download_file_ex (line 694) | int storage_do_download_file_ex(ConnectionInfo *pTrackerServer, \ function storage_download_file_to_file1 (line 855) | int storage_download_file_to_file1(ConnectionInfo *pTrackerServer, \ function storage_download_file_to_file (line 867) | int storage_download_file_to_file(ConnectionInfo *pTrackerServer, \ function storage_upload_by_filename1_ex (line 879) | int storage_upload_by_filename1_ex(ConnectionInfo *pTrackerServer, \ function storage_do_upload_file1 (line 915) | int storage_do_upload_file1(ConnectionInfo *pTrackerServer, \ function storage_do_upload_file (line 967) | int storage_do_upload_file(ConnectionInfo *pTrackerServer, \ function storage_upload_by_callback_ex (line 1200) | int storage_upload_by_callback_ex(ConnectionInfo *pTrackerServer, \ function storage_upload_by_callback1_ex (line 1214) | int storage_upload_by_callback1_ex(ConnectionInfo *pTrackerServer, \ function storage_upload_by_filename_ex (line 1252) | int storage_upload_by_filename_ex(ConnectionInfo *pTrackerServer, \ function storage_set_metadata1 (line 1286) | int storage_set_metadata1(ConnectionInfo *pTrackerServer, \ function storage_set_metadata (line 1310) | int storage_set_metadata(ConnectionInfo *pTrackerServer, \ function storage_download_file_ex1 (line 1430) | int storage_download_file_ex1(ConnectionInfo *pTrackerServer, \ function storage_download_file_ex (line 1443) | int storage_download_file_ex(ConnectionInfo *pTrackerServer, \ function tracker_query_storage_fetch1 (line 1456) | int tracker_query_storage_fetch1(ConnectionInfo *pTrackerServer, \ function tracker_query_storage_update1 (line 1466) | int tracker_query_storage_update1(ConnectionInfo *pTrackerServer, \ function storage_client_create_link (line 1489) | int storage_client_create_link(ConnectionInfo *pTrackerServer, \ function tracker_query_storage_list1 (line 1645) | int tracker_query_storage_list1(ConnectionInfo *pTrackerServer, \ function storage_upload_slave_by_filename (line 1655) | int storage_upload_slave_by_filename(ConnectionInfo *pTrackerServer, \ function storage_upload_slave_by_callback (line 1697) | int storage_upload_slave_by_callback(ConnectionInfo *pTrackerServer, \ function storage_upload_slave_by_filebuff (line 1720) | int storage_upload_slave_by_filebuff(ConnectionInfo *pTrackerServer, \ function storage_upload_slave_by_filename1 (line 1742) | int storage_upload_slave_by_filename1(ConnectionInfo *pTrackerServer, \ function storage_upload_slave_by_filebuff1 (line 1773) | int storage_upload_slave_by_filebuff1(ConnectionInfo *pTrackerServer, \ function storage_upload_slave_by_callback1 (line 1804) | int storage_upload_slave_by_callback1(ConnectionInfo *pTrackerServer, \ function storage_do_append_file (line 1843) | int storage_do_append_file(ConnectionInfo *pTrackerServer, \ function storage_do_modify_file (line 1973) | int storage_do_modify_file(ConnectionInfo *pTrackerServer, \ function storage_append_by_filename (line 2097) | int storage_append_by_filename(ConnectionInfo *pTrackerServer, \ function storage_append_by_callback (line 2123) | int storage_append_by_callback(ConnectionInfo *pTrackerServer, \ function storage_append_by_filebuff (line 2139) | int storage_append_by_filebuff(ConnectionInfo *pTrackerServer, \ function storage_append_by_filename1 (line 2155) | int storage_append_by_filename1(ConnectionInfo *pTrackerServer, \ function storage_append_by_filebuff1 (line 2165) | int storage_append_by_filebuff1(ConnectionInfo *pTrackerServer, \ function storage_append_by_callback1 (line 2176) | int storage_append_by_callback1(ConnectionInfo *pTrackerServer, \ function storage_modify_by_filename (line 2188) | int storage_modify_by_filename(ConnectionInfo *pTrackerServer, \ function storage_modify_by_callback (line 2216) | int storage_modify_by_callback(ConnectionInfo *pTrackerServer, \ function storage_modify_by_filebuff (line 2233) | int storage_modify_by_filebuff(ConnectionInfo *pTrackerServer, \ function storage_modify_by_filename1 (line 2249) | int storage_modify_by_filename1(ConnectionInfo *pTrackerServer, \ function storage_modify_by_filebuff1 (line 2260) | int storage_modify_by_filebuff1(ConnectionInfo *pTrackerServer, \ function storage_modify_by_callback1 (line 2272) | int storage_modify_by_callback1(ConnectionInfo *pTrackerServer, \ function fdfs_get_file_info_ex1 (line 2285) | int fdfs_get_file_info_ex1(const char *file_id, const bool get_from_server, function fdfs_get_file_info_ex (line 2294) | int fdfs_get_file_info_ex(const char *group_name, const char *remote_fil... function storage_file_exist (line 2424) | int storage_file_exist(ConnectionInfo *pTrackerServer, \ function storage_file_exist1 (line 2435) | int storage_file_exist1(ConnectionInfo *pTrackerServer, \ function storage_truncate_file (line 2444) | int storage_truncate_file(ConnectionInfo *pTrackerServer, \ function storage_regenerate_appender_filename (line 2530) | int storage_regenerate_appender_filename(ConnectionInfo *pTrackerServer, function storage_regenerate_appender_filename1 (line 2617) | int storage_regenerate_appender_filename1(ConnectionInfo *pTrackerServer, FILE: client/tracker_client.c function tracker_get_all_connections_ex (line 29) | int tracker_get_all_connections_ex(TrackerServerGroup *pTrackerGroup) function tracker_close_all_connections_ex (line 51) | void tracker_close_all_connections_ex(TrackerServerGroup *pTrackerGroup) function ConnectionInfo (line 63) | ConnectionInfo *tracker_get_connection_ex(TrackerServerGroup *pTrackerGr... function ConnectionInfo (line 122) | ConnectionInfo *tracker_get_connection_no_pool(TrackerServerGroup *pTrac... function ConnectionInfo (line 180) | ConnectionInfo *tracker_get_connection_r_ex(TrackerServerGroup *pTracker... function decode_storage_stat (line 245) | static void decode_storage_stat(FDFSStorageStatBuff *pStatBuff, function tracker_list_servers (line 363) | int tracker_list_servers(ConnectionInfo *pTrackerServer, function tracker_list_one_group (line 508) | int tracker_list_one_group(ConnectionInfo *pTrackerServer, \ function tracker_list_groups (line 588) | int tracker_list_groups(ConnectionInfo *pTrackerServer, function tracker_do_query_storage (line 698) | int tracker_do_query_storage(ConnectionInfo *pTrackerServer, function tracker_query_storage_list (line 787) | int tracker_query_storage_list(ConnectionInfo *pTrackerServer, function tracker_query_storage_store_without_group (line 906) | int tracker_query_storage_store_without_group(ConnectionInfo *pTrackerSe... function tracker_query_storage_store_with_group (line 994) | int tracker_query_storage_store_with_group(ConnectionInfo *pTrackerServe... function tracker_query_storage_store_list_with_group (line 1084) | int tracker_query_storage_store_list_with_group( function tracker_delete_storage (line 1228) | int tracker_delete_storage(TrackerServerGroup *pTrackerGroup, \ function tracker_delete_group (line 1350) | int tracker_delete_group(TrackerServerGroup *pTrackerGroup, \ function tracker_set_trunk_server (line 1409) | int tracker_set_trunk_server(TrackerServerGroup *pTrackerGroup, \ function tracker_get_storage_status (line 1509) | int tracker_get_storage_status(ConnectionInfo *pTrackerServer, function tracker_get_storage_id (line 1593) | int tracker_get_storage_id(ConnectionInfo *pTrackerServer, \ function tracker_get_storage_max_status (line 1681) | int tracker_get_storage_max_status(TrackerServerGroup *pTrackerGroup, \ FILE: client/tracker_client.h type FDFSStorageInfo (line 20) | typedef struct FILE: common/fdfs_global.c type base64_context (line 27) | struct base64_context function fdfs_check_data_filename (line 33) | int fdfs_check_data_filename(const char *filename, const int len) function fdfs_gen_slave_filename (line 65) | int fdfs_gen_slave_filename(const char *master_filename, \ FILE: common/fdfs_global.h type base64_context (line 30) | struct base64_context FILE: common/fdfs_http_shared.c function fdfs_http_get_content_type_by_extname (line 59) | int fdfs_http_get_content_type_by_extname(FDFSHTTPParams *pParams, \ function fdfs_http_params_load (line 100) | int fdfs_http_params_load(IniContext *pIniContext, \ function fdfs_http_params_destroy (line 298) | void fdfs_http_params_destroy(FDFSHTTPParams *pParams) function fdfs_http_gen_token (line 306) | int fdfs_http_gen_token(const BufferInfo *secret_key, const char *file_id, function fdfs_http_check_token (line 331) | int fdfs_http_check_token(const BufferInfo *secret_key, const char *file... FILE: common/fdfs_http_shared.h type FDFSHTTPParams (line 20) | typedef struct FILE: common/mime_file_parser.c function load_mime_types_from_file (line 26) | int load_mime_types_from_file(HashArray *pHash, const char *mime_filename) FILE: cpp_client/examples/advanced_metadata_example.cpp function print_metadata (line 35) | void print_metadata(const fastdfs::Metadata& metadata, const std::string... function merge_metadata (line 48) | fastdfs::Metadata merge_metadata(const fastdfs::Metadata& existing, function filter_metadata_by_prefix (line 58) | fastdfs::Metadata filter_metadata_by_prefix(const fastdfs::Metadata& met... function metadata_matches (line 70) | bool metadata_matches(const fastdfs::Metadata& metadata, function get_timestamp (line 82) | std::string get_timestamp() { function increment_version (line 91) | std::string increment_version(const std::string& version) { function main (line 103) | int main(int argc, char* argv[]) { FILE: cpp_client/examples/appender_example.cpp function main (line 11) | int main(int argc, char* argv[]) { FILE: cpp_client/examples/basic_usage.cpp function main (line 12) | int main(int argc, char* argv[]) { FILE: cpp_client/examples/batch_operations_example.cpp type BatchResult (line 35) | struct BatchResult { type ProgressTracker (line 43) | struct ProgressTracker { method update (line 50) | void update(bool success) { method print_progress (line 60) | void print_progress() { function main (line 69) | int main(int argc, char* argv[]) { FILE: cpp_client/examples/cancellation_example.cpp class CancellationToken (line 36) | class CancellationToken { method CancellationToken (line 38) | CancellationToken() : cancelled_(false) {} method cancel (line 40) | void cancel() { method is_cancelled (line 44) | bool is_cancelled() const { method reset (line 48) | void reset() { function create_test_file (line 57) | void create_test_file(const std::string& filename, int64_t size) { function format_duration (line 78) | std::string format_duration(std::chrono::milliseconds ms) { function main (line 86) | int main(int argc, char* argv[]) { FILE: cpp_client/examples/concurrent_operations_example.cpp type OperationResult (line 34) | struct OperationResult { type Statistics (line 43) | struct Statistics { method record (line 50) | void record(bool success, std::chrono::milliseconds duration) { method print (line 61) | void print() { function main (line 75) | int main(int argc, char* argv[]) { FILE: cpp_client/examples/configuration_example.cpp function parse_config_file (line 35) | std::map parse_config_file(const std::string& ... function get_env (line 71) | std::string get_env(const std::string& key, const std::string& default_v... function parse_timeout (line 77) | std::chrono::milliseconds parse_timeout(const std::string& timeout_str) { function validate_config (line 109) | bool validate_config(const fastdfs::ClientConfig& config, std::string& e... function print_config (line 169) | void print_config(const fastdfs::ClientConfig& config, const std::string... function main (line 185) | int main(int argc, char* argv[]) { FILE: cpp_client/examples/connection_pool_example.cpp type PoolPerformance (line 32) | struct PoolPerformance { method PoolPerformance (line 38) | PoolPerformance() : operations(0), total_time(0), successful(0), faile... method average_time (line 40) | double average_time() const { method success_rate (line 44) | double success_rate() const { function main (line 49) | int main(int argc, char* argv[]) { FILE: cpp_client/examples/error_handling_example.cpp function log_error (line 31) | void log_error(const std::string& operation, const std::exception& e) { function retry_with_backoff (line 40) | auto retry_with_backoff(Func&& func, size_t max_retries = 3) -> decltype... function main (line 59) | int main(int argc, char* argv[]) { FILE: cpp_client/examples/file_info_example.cpp function format_timestamp (line 38) | std::string format_timestamp(int64_t timestamp) { function calculate_file_age (line 47) | std::string calculate_file_age(int64_t create_time) { function format_file_size (line 64) | std::string format_file_size(int64_t size) { function main (line 80) | int main(int argc, char* argv[]) { FILE: cpp_client/examples/metadata_example.cpp function main (line 11) | int main(int argc, char* argv[]) { FILE: cpp_client/examples/partial_download_example.cpp function verify_data (line 32) | bool verify_data(const std::vector& data, int64_t expected_offs... function format_data_preview (line 45) | std::string format_data_preview(const std::vector& data, size_t... function main (line 59) | int main(int argc, char* argv[]) { FILE: cpp_client/examples/performance_example.cpp type PerformanceMetrics (line 47) | struct PerformanceMetrics { method record_operation (line 57) | void record_operation(bool success, std::chrono::milliseconds duration... method print (line 71) | void print(const std::string& title) { type MemoryUsage (line 110) | struct MemoryUsage { method start (line 114) | void start() { method update (line 118) | void update() { method get_peak_delta (line 125) | size_t get_peak_delta() { method get_current_memory (line 130) | size_t get_current_memory() { function format_memory (line 148) | std::string format_memory(size_t bytes) { function create_test_data (line 164) | std::vector create_test_data(size_t size) { function main (line 172) | int main(int argc, char* argv[]) { FILE: cpp_client/examples/slave_file_example.cpp function main (line 27) | int main(int argc, char* argv[]) { FILE: cpp_client/examples/streaming_example.cpp function format_size (line 39) | std::string format_size(int64_t bytes) { function print_progress (line 55) | void print_progress(int64_t current, int64_t total, double percentage) { function create_test_file (line 71) | void create_test_file(const std::string& filename, int64_t size) { function main (line 95) | int main(int argc, char* argv[]) { FILE: cpp_client/examples/upload_buffer_example.cpp function generate_json_content (line 33) | std::string generate_json_content() { function generate_xml_content (line 51) | std::string generate_xml_content() { function generate_csv_content (line 74) | std::string generate_csv_content() { function generate_binary_content (line 85) | std::vector generate_binary_content(size_t size) { function main (line 93) | int main(int argc, char* argv[]) { FILE: cpp_client/include/fastdfs/client.hpp type fastdfs (line 17) | namespace fastdfs { class ClientImpl (line 20) | class ClientImpl class Client (line 40) | class Client { method Client (line 56) | Client(const Client&) = delete; method Client (line 57) | Client& operator=(const Client&) = delete; FILE: cpp_client/include/fastdfs/errors.hpp type fastdfs (line 14) | namespace fastdfs { class FastDFSException (line 19) | class FastDFSException : public std::runtime_error { method FastDFSException (line 21) | explicit FastDFSException(const std::string& message) class FileNotFoundException (line 28) | class FileNotFoundException : public FastDFSException { method FileNotFoundException (line 30) | explicit FileNotFoundException(const std::string& message) class ConnectionException (line 37) | class ConnectionException : public FastDFSException { method ConnectionException (line 39) | explicit ConnectionException(const std::string& message) class TimeoutException (line 46) | class TimeoutException : public FastDFSException { method TimeoutException (line 48) | explicit TimeoutException(const std::string& message) class InvalidArgumentException (line 55) | class InvalidArgumentException : public FastDFSException { method InvalidArgumentException (line 57) | explicit InvalidArgumentException(const std::string& message) class ProtocolException (line 64) | class ProtocolException : public FastDFSException { method ProtocolException (line 66) | explicit ProtocolException(const std::string& message) class NoStorageServerException (line 73) | class NoStorageServerException : public FastDFSException { method NoStorageServerException (line 75) | explicit NoStorageServerException(const std::string& message) class ClientClosedException (line 82) | class ClientClosedException : public FastDFSException { method ClientClosedException (line 84) | ClientClosedException() FILE: cpp_client/include/fastdfs/types.hpp type fastdfs (line 17) | namespace fastdfs { type TrackerCommand (line 41) | enum class TrackerCommand : uint8_t { type StorageCommand (line 61) | enum class StorageCommand : uint8_t { type MetadataFlag (line 76) | enum class MetadataFlag : uint8_t { type FileInfo (line 82) | struct FileInfo { type ClientConfig (line 93) | struct ClientConfig { FILE: cpp_client/src/client.cpp type fastdfs (line 15) | namespace fastdfs { class ClientImpl (line 17) | class ClientImpl { method ClientImpl (line 19) | ClientImpl(const ClientConfig& config) method close (line 34) | void close() { method is_closed (line 44) | bool is_closed() const { method check_closed (line 49) | void check_closed() const { method upload_file (line 55) | std::string upload_file(const std::string& local_filename, method upload_buffer (line 61) | std::string upload_buffer(const std::vector& data, method upload_appender_file (line 68) | std::string upload_appender_file(const std::string& local_filename, method upload_appender_buffer (line 74) | std::string upload_appender_buffer(const std::vector& data, method upload_slave_file (line 81) | std::string upload_slave_file(const std::string& master_file_id, method download_file (line 91) | std::vector download_file(const std::string& file_id) { method download_file_range (line 96) | std::vector download_file_range(const std::string& file_id, method download_to_file (line 103) | void download_to_file(const std::string& file_id, method delete_file (line 109) | void delete_file(const std::string& file_id) { method append_file (line 114) | void append_file(const std::string& file_id, method modify_file (line 120) | void modify_file(const std::string& file_id, method truncate_file (line 127) | void truncate_file(const std::string& file_id, int64_t size) { method set_metadata (line 132) | void set_metadata(const std::string& file_id, method Metadata (line 139) | Metadata get_metadata(const std::string& file_id) { method FileInfo (line 144) | FileInfo get_file_info(const std::string& file_id) { method file_exists (line 149) | bool file_exists(const std::string& file_id) { function Metadata (line 260) | Metadata Client::get_metadata(const std::string& file_id) { function FileInfo (line 264) | FileInfo Client::get_file_info(const std::string& file_id) { FILE: cpp_client/src/internal/connection.cpp type fastdfs (line 27) | namespace fastdfs { type internal (line 28) | namespace internal { function Connection (line 53) | Connection& Connection::operator=(Connection&& other) noexcept { FILE: cpp_client/src/internal/connection.hpp type fastdfs (line 16) | namespace fastdfs { type internal (line 17) | namespace internal { class Connection (line 22) | class Connection { method Connection (line 30) | Connection(const Connection&) = delete; method Connection (line 31) | Connection& operator=(const Connection&) = delete; method last_used (line 70) | std::chrono::steady_clock::time_point last_used() const { return l... FILE: cpp_client/src/internal/connection_pool.cpp type fastdfs (line 13) | namespace fastdfs { type internal (line 14) | namespace internal { function ConnectionPool (line 42) | ConnectionPool& ConnectionPool::operator=(ConnectionPool&& other) no... FILE: cpp_client/src/internal/connection_pool.hpp type fastdfs (line 18) | namespace fastdfs { type internal (line 19) | namespace internal { class Connection (line 21) | class Connection class ConnectionPool (line 26) | class ConnectionPool { method ConnectionPool (line 36) | ConnectionPool(const ConnectionPool&) = delete; method ConnectionPool (line 37) | ConnectionPool& operator=(const ConnectionPool&) = delete; FILE: cpp_client/src/internal/operations.cpp type fastdfs (line 19) | namespace fastdfs { type internal (line 20) | namespace internal { function pad_string (line 32) | static std::string pad_string(const std::string& str, size_t len) { function unpad_string (line 41) | static std::string unpad_string(const std::vector& data) { function get_file_ext_name (line 52) | static std::string get_file_ext_name(const std::string& filename) { function read_file_content (line 60) | static std::vector read_file_content(const std::string& fil... function Metadata (line 633) | Metadata Operations::get_metadata(const std::string& file_id) { function FileInfo (line 676) | FileInfo Operations::get_file_info(const std::string& file_id) { FILE: cpp_client/src/internal/operations.hpp type fastdfs (line 17) | namespace fastdfs { type internal (line 18) | namespace internal { class Operations (line 23) | class Operations { type StorageServer (line 77) | struct StorageServer { FILE: cpp_client/src/internal/protocol.cpp type fastdfs (line 14) | namespace fastdfs { type internal (line 15) | namespace internal { function encode_header (line 17) | std::vector encode_header(int64_t length, uint8_t cmd, uint... function ProtocolHeader (line 32) | ProtocolHeader decode_header(const std::vector& data) { function split_file_id (line 51) | void split_file_id(const std::string& file_id, function join_file_id (line 75) | std::string join_file_id(const std::string& group_name, function encode_metadata (line 80) | std::vector encode_metadata(const Metadata& metadata) { function Metadata (line 109) | Metadata decode_metadata(const std::vector& data) { FILE: cpp_client/src/internal/protocol.hpp type fastdfs (line 16) | namespace fastdfs { type internal (line 17) | namespace internal { type ProtocolHeader (line 22) | struct ProtocolHeader { FILE: csharp_client/ConnectionPool.cs class ConnectionPool (line 35) | internal class ConnectionPool : IDisposable method ConnectionPool (line 115) | public ConnectionPool( method GetConnectionAsync (line 164) | public async Task GetConnectionAsync( method ReturnConnection (line 222) | public void ReturnConnection(PooledConnection connection) method CreateConnectionAsync (line 268) | private async Task CreateConnectionAsync( method IsConnectionValid (line 316) | private bool IsConnectionValid(PooledConnection connection) method CleanupIdleConnections (line 338) | private void CleanupIdleConnections(object state) method ThrowIfDisposed (line 396) | private void ThrowIfDisposed() method Dispose (line 411) | public void Dispose() method Dispose (line 420) | protected virtual void Dispose(bool disposing) class PooledConnection (line 457) | internal class PooledConnection : IDisposable method Dispose (line 482) | public void Dispose() FILE: csharp_client/FastDFSClient.cs class FastDFSClient (line 59) | public class FastDFSClient : IDisposable method FastDFSClient (line 131) | public FastDFSClient(FastDFSClientConfig config) method UploadFileAsync (line 268) | public async Task UploadFileAsync( method UploadBufferAsync (line 356) | public async Task UploadBufferAsync( method DownloadFileAsync (line 488) | public async Task DownloadFileAsync( method DownloadFileRangeAsync (line 520) | public async Task DownloadFileRangeAsync( method DownloadToFileAsync (line 657) | public async Task DownloadToFileAsync( method DeleteFileAsync (line 728) | public async Task DeleteFileAsync( method GetFileInfoAsync (line 842) | public async Task GetFileInfoAsync( method SetMetadataAsync (line 957) | public async Task SetMetadataAsync( method GetMetadataAsync (line 1095) | public async Task> GetMetadataAsync( method UploadAppenderFileAsync (line 1220) | public async Task UploadAppenderFileAsync( method UploadAppenderBufferAsync (line 1283) | public async Task UploadAppenderBufferAsync( method AppendFileAsync (line 1319) | public async Task AppendFileAsync( method UploadSlaveFileAsync (line 1374) | public async Task UploadSlaveFileAsync( method ThrowIfDisposed (line 1416) | private void ThrowIfDisposed() method GetStorageServerForUploadAsync (line 1441) | private async Task GetStorageServerForUploadAsync( method GetStorageServerForDownloadAsync (line 1476) | private async Task GetStorageServerForDownloadAsync( method GetStorageServerForUpdateAsync (line 1489) | private async Task GetStorageServerForUpdateAsync( method ParseFileId (line 1510) | private FileIdParts ParseFileId(string fileId) method Dispose (line 1541) | public void Dispose() method Dispose (line 1553) | protected virtual void Dispose(bool disposing) class FileIdParts (line 1584) | internal class FileIdParts FILE: csharp_client/FastDFSClientConfig.cs class FastDFSClientConfig (line 41) | public class FastDFSClientConfig method FastDFSClientConfig (line 359) | public FastDFSClientConfig() method FastDFSClientConfig (line 379) | public FastDFSClientConfig(string[] trackerAddresses) method Validate (line 399) | public void Validate() method Clone (line 452) | public FastDFSClientConfig Clone() FILE: csharp_client/FastDFSConstants.cs class FastDFSConstants (line 32) | public static class FastDFSConstants method GetStorageStatusDescription (line 439) | public static string GetStorageStatusDescription(byte status) FILE: csharp_client/FastDFSErrors.cs class FastDFSException (line 29) | public class FastDFSException : Exception method FastDFSException (line 42) | public FastDFSException() method FastDFSException (line 54) | public FastDFSException(string message) method FastDFSException (line 71) | public FastDFSException(string message, Exception innerException) method FastDFSException (line 90) | public FastDFSException(string message, byte errorCode, Exception inne... class FastDFSProtocolException (line 105) | public class FastDFSProtocolException : FastDFSException method FastDFSProtocolException (line 111) | public FastDFSProtocolException() method FastDFSProtocolException (line 123) | public FastDFSProtocolException(string message) method FastDFSProtocolException (line 139) | public FastDFSProtocolException(string message, Exception innerException) class FastDFSNetworkException (line 153) | public class FastDFSNetworkException : FastDFSException method FastDFSNetworkException (line 178) | public FastDFSNetworkException(string operation, string address, Excep... class FastDFSFileNotFoundException (line 193) | public class FastDFSFileNotFoundException : FastDFSException method FastDFSFileNotFoundException (line 207) | public FastDFSFileNotFoundException(string fileId) method FastDFSFileNotFoundException (line 224) | public FastDFSFileNotFoundException(string fileId, Exception innerExce... class FastDFSNoStorageServerException (line 239) | public class FastDFSNoStorageServerException : FastDFSException method FastDFSNoStorageServerException (line 250) | public FastDFSNoStorageServerException() method FastDFSNoStorageServerException (line 262) | public FastDFSNoStorageServerException(string groupName) class FastDFSConnectionTimeoutException (line 276) | public class FastDFSConnectionTimeoutException : FastDFSNetworkException method FastDFSConnectionTimeoutException (line 293) | public FastDFSConnectionTimeoutException(string address, TimeSpan time... class FastDFSNetworkTimeoutException (line 307) | public class FastDFSNetworkTimeoutException : FastDFSNetworkException method FastDFSNetworkTimeoutException (line 327) | public FastDFSNetworkTimeoutException(string operation, string address... FILE: csharp_client/FastDFSTypes.cs type MetadataFlag (line 28) | public enum MetadataFlag : byte class FileInfo (line 52) | public class FileInfo method ToString (line 85) | public override string ToString() class StorageServer (line 98) | public class StorageServer method ToString (line 134) | public override string ToString() class GroupInfo (line 147) | public class GroupInfo method ToString (line 229) | public override string ToString() class StorageInfo (line 243) | public class StorageInfo method ToString (line 356) | public override string ToString() class ProtocolHeader (line 369) | public class ProtocolHeader method ToString (line 396) | public override string ToString() class UploadResponse (line 409) | public class UploadResponse method ToString (line 438) | public override string ToString() FILE: csharp_client/ProtocolBuilder.cs class ProtocolBuilder (line 31) | internal static class ProtocolBuilder method BuildQueryStorageStoreRequest (line 46) | public static byte[] BuildQueryStorageStoreRequest(string groupName) method BuildQueryStorageFetchRequest (line 81) | public static byte[] BuildQueryStorageFetchRequest(string groupName, s... method BuildQueryStorageUpdateRequest (line 114) | public static byte[] BuildQueryStorageUpdateRequest(string groupName, ... method BuildUploadRequest (line 157) | public static byte[] BuildUploadRequest( method BuildDownloadRequest (line 231) | public static byte[] BuildDownloadRequest( method BuildDeleteRequest (line 284) | public static byte[] BuildDeleteRequest(string groupName, string remot... method BuildQueryFileInfoRequest (line 317) | public static byte[] BuildQueryFileInfoRequest(string groupName, strin... method BuildSetMetadataRequest (line 353) | public static byte[] BuildSetMetadataRequest( method BuildGetMetadataRequest (line 397) | public static byte[] BuildGetMetadataRequest(string groupName, string ... method BuildMessage (line 431) | private static byte[] BuildMessage(byte cmd, byte[] body) method EncodeMetadata (line 469) | private static byte[] EncodeMetadata(Dictionary metadata) FILE: csharp_client/ProtocolParser.cs class ProtocolParser (line 31) | internal static class ProtocolParser method ParseHeader (line 49) | public static ProtocolHeader ParseHeader(byte[] data) method ParseStorageServerResponse (line 94) | public static StorageServer ParseStorageServerResponse(byte[] data) method ParseUploadResponse (line 158) | public static string ParseUploadResponse(byte[] data) method ParseFileInfoResponse (line 199) | public static FileInfo ParseFileInfoResponse(byte[] data) method ParseMetadata (line 270) | public static Dictionary ParseMetadata(byte[] data) FILE: csharp_client/examples/AdvancedMetadataExample.cs class AdvancedMetadataExample (line 50) | class AdvancedMetadataExample method Main (line 65) | static async Task Main(string[] args) method ValidateMetadata (line 1197) | static ValidationResult ValidateMetadata(Dictionary me... method ValidateFieldType (line 1251) | static bool ValidateFieldType(string value, MetadataFieldType expected... method ValidateFieldConstraint (line 1271) | static (bool IsValid, string ErrorMessage) ValidateFieldConstraint(str... method ProcessWorkflowStage (line 1305) | static string ProcessWorkflowStage(string currentStage, Dictionary metadata) class MetadataSchema (line 1366) | class MetadataSchema type MetadataFieldType (line 1387) | enum MetadataFieldType class MetadataConstraint (line 1416) | class MetadataConstraint class ValidationResult (line 1440) | class ValidationResult FILE: csharp_client/examples/AppenderFileExample.cs class AppenderFileExample (line 44) | class AppenderFileExample method Main (line 59) | static async Task Main(string[] args) FILE: csharp_client/examples/BasicExample.cs class BasicExample (line 30) | class BasicExample method Main (line 41) | static async Task Main(string[] args) FILE: csharp_client/examples/BatchOperationsExample.cs class BatchOperationsExample (line 52) | class BatchOperationsExample method Main (line 67) | static async Task Main(string[] args) class BatchUploadResult (line 1349) | class BatchUploadResult class BatchDownloadResult (line 1392) | class BatchDownloadResult FILE: csharp_client/examples/CancellationExample.cs class CancellationExample (line 49) | class CancellationExample method Main (line 64) | static async Task Main(string[] args) FILE: csharp_client/examples/ConcurrentOperationsExample.cs class ConcurrentOperationsExample (line 51) | class ConcurrentOperationsExample method Main (line 66) | static async Task Main(string[] args) FILE: csharp_client/examples/ConfigurationExample.cs class ConfigurationExample (line 49) | class ConfigurationExample method Main (line 64) | static async Task Main(string[] args) method CreateDevelopmentConfig (line 850) | static FastDFSClientConfig CreateDevelopmentConfig() method CreateStagingConfig (line 881) | static FastDFSClientConfig CreateStagingConfig() method CreateProductionConfig (line 916) | static FastDFSClientConfig CreateProductionConfig() method CreateTestConfig (line 952) | static FastDFSClientConfig CreateTestConfig() method CreateConfigFromEnvironment (line 984) | static FastDFSClientConfig CreateConfigFromEnvironment() method CreateConfigFromFile (line 1029) | static FastDFSClientConfig CreateConfigFromFile() method GetCurrentLoadLevel (line 1103) | static double GetCurrentLoadLevel() method DisplayConfiguration (line 1122) | static void DisplayConfiguration(string name, FastDFSClientConfig config) FILE: csharp_client/examples/ConnectionPoolExample.cs class ConnectionPoolExample (line 50) | class ConnectionPoolExample method Main (line 65) | static async Task Main(string[] args) FILE: csharp_client/examples/ErrorHandlingExample.cs class ErrorHandlingExample (line 49) | class ErrorHandlingExample method Main (line 64) | static async Task Main(string[] args) method SimpleRetryWithFixedDelay (line 664) | static async Task SimpleRetryWithFixedDelay(FastDFSClient client, stri... method ExponentialBackoffRetry (line 719) | static async Task ExponentialBackoffRetry(FastDFSClient client, string... method RetryWithMaxAttempts (line 777) | static async Task RetryWithMaxAttempts(FastDFSClient client, string fi... method RetryWithCancellation (line 862) | static async Task RetryWithCancellation(FastDFSClient client, string f... method FallbackToAlternativeContent (line 926) | static async Task FallbackToAlternativeContent(FastDFSClient client, s... method GracefulDegradation (line 971) | static async Task GracefulDegradation(FastDFSClient client) method RetryWithDifferentParameters (line 1036) | static async Task RetryWithDifferentParameters(FastDFSClient client, s... FILE: csharp_client/examples/FileInfoExample.cs class FileInfoExample (line 52) | class FileInfoExample method Main (line 67) | static async Task Main(string[] args) method CalculateCRC32 (line 1117) | static uint CalculateCRC32(byte[] data) class ValidationResult (line 1163) | class ValidationResult class AuditRecord (line 1188) | class AuditRecord class ComplianceCheck (line 1243) | class ComplianceCheck FILE: csharp_client/examples/IntegrationExample.cs class IntegrationExample (line 53) | class IntegrationExample method Main (line 68) | static async Task Main(string[] args) class FastDFSOptions (line 1022) | public class FastDFSOptions type IFastDFSService (line 1061) | public interface IFastDFSService method UploadFileAsync (line 1066) | Task UploadFileAsync(string localFilePath, Dictionary DownloadFileAsync(string fileId); method DeleteFileAsync (line 1076) | Task DeleteFileAsync(string fileId); class FastDFSService (line 1085) | public class FastDFSService : IFastDFSService method FastDFSService (line 1095) | public FastDFSService(FastDFSClient client, ILogger lo... method UploadFileAsync (line 1104) | public async Task UploadFileAsync(string localFilePath, Dictio... method DownloadFileAsync (line 1124) | public async Task DownloadFileAsync(string fileId) method DeleteFileAsync (line 1144) | public async Task DeleteFileAsync(string fileId) FILE: csharp_client/examples/MetadataExample.cs class MetadataExample (line 29) | class MetadataExample method Main (line 34) | static async Task Main(string[] args) FILE: csharp_client/examples/PartialDownloadExample.cs class PartialDownloadExample (line 49) | class PartialDownloadExample method Main (line 64) | static async Task Main(string[] args) FILE: csharp_client/examples/PerformanceExample.cs class PerformanceExample (line 50) | class PerformanceExample method Main (line 65) | static async Task Main(string[] args) class BenchmarkResult (line 1100) | class BenchmarkResult FILE: csharp_client/examples/SlaveFileExample.cs class SlaveFileExample (line 48) | class SlaveFileExample method Main (line 63) | static async Task Main(string[] args) FILE: csharp_client/examples/StreamingExample.cs class StreamingExample (line 49) | class StreamingExample method Main (line 73) | static async Task Main(string[] args) method CreateLargeTestFileAsync (line 988) | static async Task CreateLargeTestFileAsync(string filePath, long fileS... FILE: csharp_client/examples/UploadBufferExample.cs class UploadBufferExample (line 53) | class UploadBufferExample method Main (line 72) | static async Task Main(string[] args) FILE: examples/c_examples/01_basic_upload.c function print_usage (line 46) | void print_usage(const char *program_name) function validate_file (line 60) | int validate_file(const char *filepath) function main (line 82) | int main(int argc, char *argv[]) FILE: examples/c_examples/02_basic_download.c function download_callback (line 49) | int download_callback(void *arg, const int64_t file_size, function print_usage (line 83) | void print_usage(const char *program_name) function parse_file_id (line 101) | int parse_file_id(const char *file_id, char *group_name, char *filename) function write_to_file (line 135) | int write_to_file(const char *filename, const char *buff, const int64_t ... function main (line 157) | int main(int argc, char *argv[]) FILE: examples/c_examples/03_metadata_operations.c function print_usage (line 61) | void print_usage(const char *program_name) function parse_file_id (line 95) | int parse_file_id(const char *file_id, char *group_name, char *filename) function parse_metadata (line 124) | int parse_metadata(int argc, char *argv[], int start_index, function display_metadata (line 189) | void display_metadata(const FDFSMetaData *meta_list, int meta_count) function main (line 207) | int main(int argc, char *argv[]) FILE: examples/c_examples/04_appender_file.c function print_usage (line 61) | void print_usage(const char *program_name) function validate_file (line 80) | int validate_file(const char *filepath) function read_file_content (line 101) | int read_file_content(const char *filepath, char **buffer, int64_t *file... function main (line 135) | int main(int argc, char *argv[]) FILE: examples/c_examples/05_slave_file.c function print_usage (line 64) | void print_usage(const char *program_name) function validate_file (line 87) | int validate_file(const char *filepath) function validate_prefix (line 109) | int validate_prefix(const char *prefix) function main (line 129) | int main(int argc, char *argv[]) FILE: examples/c_examples/06_batch_upload.c type UploadResult (line 74) | typedef struct { type BatchStats (line 84) | typedef struct { function print_usage (line 95) | void print_usage(const char *program_name) function is_directory (line 112) | int is_directory(const char *path) function is_regular_file (line 124) | int is_regular_file(const char *path) function get_file_size (line 136) | int64_t get_file_size(const char *filepath) function format_size (line 148) | void format_size(int64_t size, char *buffer, size_t buffer_size) function get_current_time (line 164) | double get_current_time() function upload_single_file (line 174) | int upload_single_file(ConnectionInfo *pTrackerServer, function print_upload_result (line 235) | void print_upload_result(int index, int total, const UploadResult *result) function print_batch_summary (line 253) | void print_batch_summary(const BatchStats *stats, const UploadResult *re... function main (line 290) | int main(int argc, char *argv[]) FILE: examples/c_examples/07_connection_pool.c function get_current_time_ms (line 55) | int64_t get_current_time_ms(void) function print_usage (line 65) | void print_usage(const char *program_name) function perform_operation (line 85) | int perform_operation(ConnectionInfo *pTrackerServer, int op_num, bool *... function demo_with_connection_pool (line 109) | int demo_with_connection_pool(const char *conf_filename, int num_operati... function demo_without_connection_pool (line 192) | int demo_without_connection_pool(const char *conf_filename, int num_oper... function demo_all_connections (line 245) | int demo_all_connections(void) function demo_no_pool_connection (line 292) | int demo_no_pool_connection(void) function main (line 334) | int main(int argc, char *argv[]) FILE: examples/c_examples/08_error_handling.c type ErrorCategory (line 66) | typedef enum { type RecoveryAction (line 78) | typedef enum { function print_usage (line 88) | void print_usage(const char *program_name) function ErrorCategory (line 112) | ErrorCategory categorize_error(int error_code) function is_transient_error (line 168) | int is_transient_error(int error_code) function RecoveryAction (line 181) | RecoveryAction suggest_recovery_action(int error_code) function print_error_details (line 221) | void print_error_details(const char *operation, int error_code, const ch... function retry_operation (line 268) | int retry_operation(operation_func_t operation_func, void *context, function test_connection_errors (line 307) | int test_connection_errors(const char *conf_filename) function test_upload_errors (line 360) | int test_upload_errors(const char *conf_filename) function test_download_errors (line 429) | int test_download_errors(const char *conf_filename) function test_metadata_errors (line 512) | int test_metadata_errors(const char *conf_filename) function test_timeout_errors (line 558) | int test_timeout_errors(const char *conf_filename) function demonstrate_cleanup_patterns (line 585) | void demonstrate_cleanup_patterns(void) function main (line 628) | int main(int argc, char *argv[]) FILE: examples/php_examples/01_basic_upload.php function initializeFastDFS (line 26) | function initializeFastDFS() { function uploadFile (line 52) | function uploadFile($tracker, $localFilePath, $fileExtension = '') { function uploadFromBuffer (line 96) | function uploadFromBuffer($tracker, $fileContent, $fileExtension) { function main (line 123) | function main() { FILE: examples/php_examples/02_basic_download.php function initializeFastDFS (line 27) | function initializeFastDFS() { function downloadToFile (line 52) | function downloadToFile($tracker, $fileId, $localPath) { function downloadToBuffer (line 90) | function downloadToBuffer($tracker, $fileId) { function downloadPartial (line 122) | function downloadPartial($tracker, $fileId, $offset, $length) { function getFileInfo (line 154) | function getFileInfo($tracker, $fileId) { function fileExists (line 193) | function fileExists($tracker, $fileId) { function main (line 215) | function main() { FILE: examples/php_examples/03_metadata_operations.php function initializeFastDFS (line 37) | function initializeFastDFS() { function uploadWithMetadata (line 62) | function uploadWithMetadata($tracker, $localFilePath, $metadata = []) { function getMetadata (line 114) | function getMetadata($tracker, $fileId) { function setMetadata (line 154) | function setMetadata($tracker, $fileId, $metadata, $flag = METADATA_MERG... function deleteMetadata (line 200) | function deleteMetadata($tracker, $fileId) { function demonstrateMergeVsOverwrite (line 233) | function demonstrateMergeVsOverwrite($tracker, $fileId) { function createTestFile (line 273) | function createTestFile() { function main (line 286) | function main() { FILE: examples/php_examples/04_appender_file.php function initializeFastDFS (line 34) | function initializeFastDFS() { function uploadAppenderFile (line 59) | function uploadAppenderFile($tracker, $localFilePath, $metadata = []) { function uploadAppenderFromBuffer (line 109) | function uploadAppenderFromBuffer($tracker, $content, $fileExtension, $m... function appendFromFile (line 148) | function appendFromFile($tracker, $fileId, $localFilePath) { function appendFromBuffer (line 190) | function appendFromBuffer($tracker, $fileId, $content) { function modifyFile (line 226) | function modifyFile($tracker, $fileId, $offset, $content) { function truncateFile (line 263) | function truncateFile($tracker, $fileId, $truncateSize) { function downloadAndDisplay (line 297) | function downloadAndDisplay($tracker, $fileId) { function demonstrateLogFile (line 327) | function demonstrateLogFile($tracker) { function demonstrateModification (line 371) | function demonstrateModification($tracker) { function demonstrateTruncate (line 424) | function demonstrateTruncate($tracker) { function main (line 465) | function main() { FILE: examples/php_examples/05_slave_file.php function initializeFastDFS (line 35) | function initializeFastDFS() { function uploadMasterFile (line 62) | function uploadMasterFile($tracker, $localFilePath, $metadata = []) { function uploadSlaveFile (line 115) | function uploadSlaveFile($tracker, $masterFileId, $localFilePath, $prefi... function uploadSlaveFromBuffer (line 172) | function uploadSlaveFromBuffer($tracker, $masterFileId, $content, $prefi... function downloadSlaveFile (line 215) | function downloadSlaveFile($tracker, $slaveFileId, $localPath) { function downloadSlaveToBuffer (line 256) | function downloadSlaveToBuffer($tracker, $slaveFileId) { function deleteSlaveFile (line 292) | function deleteSlaveFile($tracker, $slaveFileId) { function createTestImage (line 326) | function createTestImage($filename, $width, $height, $text) { function demonstrateImageThumbnails (line 354) | function demonstrateImageThumbnails($tracker) { function demonstrateDocumentConversion (line 435) | function demonstrateDocumentConversion($tracker) { function main (line 531) | function main() { FILE: examples/php_examples/06_advanced_download.php function initializeFastDFS (line 41) | function initializeFastDFS() { function getStorageServerInfo (line 68) | function getStorageServerInfo($tracker, $fileId) { function downloadWithRetry (line 125) | function downloadWithRetry($tracker, $fileId, $localPath, $maxRetries = ... function downloadInChunks (line 185) | function downloadInChunks($tracker, $fileId, $localPath, $chunkSize = CH... function downloadMultipleFiles (line 294) | function downloadMultipleFiles($tracker, $fileIds, $downloadDir) { function downloadWithProgress (line 366) | function downloadWithProgress($tracker, $fileId, $localPath) { function downloadRange (line 407) | function downloadRange($tracker, $fileId, $offset, $length, $localPath) { function formatBytes (line 453) | function formatBytes($bytes, $precision = 2) { function createTestFiles (line 469) | function createTestFiles($tracker) { function main (line 512) | function main() { FILE: examples/php_examples/07_connection_pool_error_handling.php class FastDFSException (line 56) | class FastDFSException extends Exception { method __construct (line 59) | public function __construct($message, $code = 0, Exception $previous =... method getContext (line 64) | public function getContext() { class FastDFSConnectionException (line 72) | class FastDFSConnectionException extends FastDFSException {} class FastDFSUploadException (line 77) | class FastDFSUploadException extends FastDFSException {} class FastDFSDownloadException (line 82) | class FastDFSDownloadException extends FastDFSException {} class FastDFSFileNotFoundException (line 87) | class FastDFSFileNotFoundException extends FastDFSException {} class FastDFSTimeoutException (line 92) | class FastDFSTimeoutException extends FastDFSException {} class FastDFSCircuitBreakerException (line 97) | class FastDFSCircuitBreakerException extends FastDFSException {} class FastDFSConnectionPool (line 105) | class FastDFSConnectionPool { method __construct (line 122) | public function __construct(array $trackerServers, $minSize = 2, $maxS... method warmUp (line 140) | private function warmUp() { method createConnection (line 164) | private function createConnection() { method getNextServer (line 206) | private function getNextServer() { method acquire (line 218) | public function acquire() { method release (line 258) | public function release($connection) { method isConnectionValid (line 284) | private function isConnectionValid($connection) { method closeConnection (line 304) | private function closeConnection($connection) { method getStats (line 315) | public function getStats() { method shutdown (line 327) | public function shutdown() { method __destruct (line 349) | public function __destruct() { class CircuitBreaker (line 360) | class CircuitBreaker { method __construct (line 373) | public function __construct($threshold = 5, $timeout = 30) { method allowRequest (line 384) | public function allowRequest() { method recordSuccess (line 412) | public function recordSuccess() { method recordFailure (line 423) | public function recordFailure() { method getState (line 441) | public function getState() { method reset (line 448) | public function reset() { class FastDFSLogger (line 458) | class FastDFSLogger { method __construct (line 466) | public function __construct($logFile = null) { method logError (line 476) | public function logError(Exception $exception, array $context = []) { method logInfo (line 504) | public function logInfo($message) { class FastDFSClient (line 514) | class FastDFSClient { method __construct (line 526) | public function __construct(FastDFSConnectionPool $pool, CircuitBreake... method uploadFile (line 541) | public function uploadFile($filePath, array $metadata = [], $maxRetrie... method downloadFile (line 632) | public function downloadFile($fileId, $localPath, $maxRetries = MAX_RE... method calculateBackoff (line 706) | private function calculateBackoff($attempt) { method getPoolStats (line 716) | public function getPoolStats() { function demonstrateConnectionPool (line 724) | function demonstrateConnectionPool() { function demonstrateErrorHandling (line 778) | function demonstrateErrorHandling() { function main (line 828) | function main() { FILE: examples/php_examples/08_error_handling.php class ErrorResult (line 47) | class ErrorResult { method success (line 60) | public static function success($data) { method failure (line 78) | public static function failure($error, $errorCode = 'UNKNOWN', array $... method isSuccess (line 93) | public function isSuccess() { method getOrThrow (line 103) | public function getOrThrow() { class ErrorCodes (line 114) | class ErrorCodes { class DetailedLogger (line 134) | class DetailedLogger { method __construct (line 150) | public function __construct($logFile, $minLevel = self::LEVEL_INFO) { method log (line 162) | private function log($level, $message, array $context = []) { method debug (line 194) | public function debug($message, array $context = []) { method info (line 198) | public function info($message, array $context = []) { method warning (line 202) | public function warning($message, array $context = []) { method error (line 207) | public function error($message, array $context = []) { method critical (line 212) | public function critical($message, array $context = []) { class FileValidator (line 221) | class FileValidator { method __construct (line 224) | public function __construct(DetailedLogger $logger) { method validate (line 234) | public function validate($filePath) { method formatBytes (line 336) | private function formatBytes($bytes) { class FastDFSOperations (line 348) | class FastDFSOperations { method __construct (line 359) | public function __construct(DetailedLogger $logger) { method connect (line 369) | public function connect() { method uploadFile (line 427) | public function uploadFile($filePath, array $metadata = []) { method downloadFile (line 531) | public function downloadFile($fileId, $localPath) { method deleteFile (line 659) | public function deleteFile($fileId) { method rollback (line 721) | public function rollback() { method disconnect (line 755) | public function disconnect() { function demonstrateValidationErrors (line 768) | function demonstrateValidationErrors() { function demonstrateTransactionRollback (line 814) | function demonstrateTransactionRollback() { function demonstrateGracefulDegradation (line 878) | function demonstrateGracefulDegradation() { function demonstrateCompleteWorkflow (line 919) | function demonstrateCompleteWorkflow() { function main (line 975) | function main() { FILE: go_client/appender.go method uploadSlaveFileWithRetry (line 11) | func (c *Client) uploadSlaveFileWithRetry(ctx context.Context, masterFil... method uploadSlaveFileInternal (line 36) | func (c *Client) uploadSlaveFileInternal(ctx context.Context, masterFile... method appendFileWithRetry (line 126) | func (c *Client) appendFileWithRetry(ctx context.Context, fileID string,... method appendFileInternal (line 151) | func (c *Client) appendFileInternal(ctx context.Context, fileID string, ... method modifyFileWithRetry (line 206) | func (c *Client) modifyFileWithRetry(ctx context.Context, fileID string,... method modifyFileInternal (line 231) | func (c *Client) modifyFileInternal(ctx context.Context, fileID string, ... method truncateFileWithRetry (line 288) | func (c *Client) truncateFileWithRetry(ctx context.Context, fileID strin... method truncateFileInternal (line 313) | func (c *Client) truncateFileInternal(ctx context.Context, fileID string... FILE: go_client/client.go type Client (line 18) | type Client struct method UploadFile (line 105) | func (c *Client) UploadFile(ctx context.Context, localFilename string,... method UploadBuffer (line 122) | func (c *Client) UploadBuffer(ctx context.Context, data []byte, fileEx... method UploadAppenderFile (line 131) | func (c *Client) UploadAppenderFile(ctx context.Context, localFilename... method UploadAppenderBuffer (line 140) | func (c *Client) UploadAppenderBuffer(ctx context.Context, data []byte... method UploadSlaveFile (line 159) | func (c *Client) UploadSlaveFile(ctx context.Context, masterFileID, pr... method DownloadFile (line 169) | func (c *Client) DownloadFile(ctx context.Context, fileID string) ([]b... method DownloadFileRange (line 184) | func (c *Client) DownloadFileRange(ctx context.Context, fileID string,... method DownloadToFile (line 193) | func (c *Client) DownloadToFile(ctx context.Context, fileID, localFile... method DeleteFile (line 202) | func (c *Client) DeleteFile(ctx context.Context, fileID string) error { method AppendFile (line 211) | func (c *Client) AppendFile(ctx context.Context, fileID string, data [... method ModifyFile (line 220) | func (c *Client) ModifyFile(ctx context.Context, fileID string, offset... method TruncateFile (line 229) | func (c *Client) TruncateFile(ctx context.Context, fileID string, size... method SetMetadata (line 244) | func (c *Client) SetMetadata(ctx context.Context, fileID string, metad... method GetMetadata (line 253) | func (c *Client) GetMetadata(ctx context.Context, fileID string) (map[... method GetFileInfo (line 262) | func (c *Client) GetFileInfo(ctx context.Context, fileID string) (*Fil... method FileExists (line 271) | func (c *Client) FileExists(ctx context.Context, fileID string) (bool,... method Close (line 287) | func (c *Client) Close() error { method checkClosed (line 316) | func (c *Client) checkClosed() error { type ClientConfig (line 27) | type ClientConfig struct function NewClient (line 51) | func NewClient(config *ClientConfig) (*Client, error) { function validateConfig (line 327) | func validateConfig(config *ClientConfig) error { FILE: go_client/client_test.go function TestNewClient (line 12) | func TestNewClient(t *testing.T) { function TestClientDefaults (line 63) | func TestClientDefaults(t *testing.T) { function TestSplitFileID (line 79) | func TestSplitFileID(t *testing.T) { function TestJoinFileID (line 130) | func TestJoinFileID(t *testing.T) { function TestGetFileExtName (line 153) | func TestGetFileExtName(t *testing.T) { function TestEncodeDecodeMetadata (line 189) | func TestEncodeDecodeMetadata(t *testing.T) { function TestEncodeDecodeHeader (line 230) | func TestEncodeDecodeHeader(t *testing.T) { function TestMapStatusToError (line 271) | func TestMapStatusToError(t *testing.T) { function TestClientClose (line 316) | func TestClientClose(t *testing.T) { FILE: go_client/connection.go type Connection (line 14) | type Connection struct method Send (line 57) | func (c *Connection) Send(data []byte, timeout time.Duration) error { method Receive (line 97) | func (c *Connection) Receive(size int, timeout time.Duration) ([]byte,... method ReceiveFull (line 130) | func (c *Connection) ReceiveFull(size int, timeout time.Duration) ([]b... method Close (line 162) | func (c *Connection) Close() error { method IsAlive (line 179) | func (c *Connection) IsAlive() bool { method LastUsed (line 207) | func (c *Connection) LastUsed() time.Time { method Addr (line 216) | func (c *Connection) Addr() string { function NewConnection (line 31) | func NewConnection(addr string, timeout time.Duration) (*Connection, err... type ConnectionPool (line 226) | type ConnectionPool struct method Get (line 291) | func (p *ConnectionPool) Get(ctx context.Context, addr string) (*Conne... method Put (line 361) | func (p *ConnectionPool) Put(conn *Connection) error { method cleanPool (line 409) | func (p *ConnectionPool) cleanPool(sp *serverPool) { method AddAddr (line 432) | func (p *ConnectionPool) AddAddr(addr string) { method Close (line 460) | func (p *ConnectionPool) Close() error { type serverPool (line 238) | type serverPool struct function NewConnectionPool (line 258) | func NewConnectionPool(addrs []string, maxConns int, connectTimeout, idl... FILE: go_client/errors.go type ProtocolError (line 60) | type ProtocolError struct method Error (line 66) | func (e *ProtocolError) Error() string { type NetworkError (line 73) | type NetworkError struct method Error (line 80) | func (e *NetworkError) Error() string { method Unwrap (line 85) | func (e *NetworkError) Unwrap() error { type StorageError (line 91) | type StorageError struct method Error (line 97) | func (e *StorageError) Error() string { method Unwrap (line 102) | func (e *StorageError) Unwrap() error { type TrackerError (line 108) | type TrackerError struct method Error (line 114) | func (e *TrackerError) Error() string { method Unwrap (line 119) | func (e *TrackerError) Unwrap() error { function mapStatusToError (line 138) | func mapStatusToError(status byte) error { FILE: go_client/examples/appender/main.go function main (line 12) | func main() { FILE: go_client/examples/basic/main.go function main (line 12) | func main() { FILE: go_client/examples/batch/main.go type BatchResult (line 17) | type BatchResult struct type BatchStats (line 26) | type BatchStats struct function createTestData (line 36) | func createTestData(size int) []byte { function main (line 44) | func main() { FILE: go_client/examples/concurrent/main.go type OperationResult (line 17) | type OperationResult struct function createTestData (line 27) | func createTestData(size int) []byte { function main (line 35) | func main() { FILE: go_client/examples/connection_pool/main.go type PoolStats (line 17) | type PoolStats struct function createTestData (line 27) | func createTestData(size int) []byte { function main (line 35) | func main() { FILE: go_client/examples/error_handling/main.go function logError (line 16) | func logError(operation string, err error) { function retryWithBackoff (line 23) | func retryWithBackoff(ctx context.Context, maxRetries int, operation fun... function retryWithFixedDelay (line 49) | func retryWithFixedDelay(ctx context.Context, maxRetries int, delay time... function main (line 71) | func main() { FILE: go_client/examples/metadata/main.go function main (line 12) | func main() { FILE: go_client/examples/performance/main.go type PerformanceMetrics (line 19) | type PerformanceMetrics struct method RecordOperation (line 32) | func (pm *PerformanceMetrics) RecordOperation(success bool, duration t... method Print (line 54) | func (pm *PerformanceMetrics) Print(title string) { method Reset (line 104) | func (pm *PerformanceMetrics) Reset() { type MemoryStats (line 119) | type MemoryStats struct method Start (line 125) | func (ms *MemoryStats) Start() { method Update (line 133) | func (ms *MemoryStats) Update() { method GetPeakDelta (line 142) | func (ms *MemoryStats) GetPeakDelta() uint64 { function FormatMemory (line 150) | func FormatMemory(bytes uint64) string { function CreateTestData (line 164) | func CreateTestData(size int) []byte { function main (line 172) | func main() { FILE: go_client/metadata.go method setMetadataWithRetry (line 11) | func (c *Client) setMetadataWithRetry(ctx context.Context, fileID string... method setMetadataInternal (line 36) | func (c *Client) setMetadataInternal(ctx context.Context, fileID string,... method getMetadataWithRetry (line 97) | func (c *Client) getMetadataWithRetry(ctx context.Context, fileID string... method getMetadataInternal (line 122) | func (c *Client) getMetadataInternal(ctx context.Context, fileID string)... method getFileInfoWithRetry (line 187) | func (c *Client) getFileInfoWithRetry(ctx context.Context, fileID string... method getFileInfoInternal (line 212) | func (c *Client) getFileInfoInternal(ctx context.Context, fileID string)... FILE: go_client/operations.go method uploadFileWithRetry (line 11) | func (c *Client) uploadFileWithRetry(ctx context.Context, localFilename ... method uploadFileInternal (line 38) | func (c *Client) uploadFileInternal(ctx context.Context, localFilename s... method uploadBufferWithRetry (line 52) | func (c *Client) uploadBufferWithRetry(ctx context.Context, data []byte,... method uploadBufferInternal (line 77) | func (c *Client) uploadBufferInternal(ctx context.Context, data []byte, ... method getStorageServer (line 172) | func (c *Client) getStorageServer(ctx context.Context, groupName string)... method downloadFileWithRetry (line 252) | func (c *Client) downloadFileWithRetry(ctx context.Context, fileID strin... method downloadFileInternal (line 277) | func (c *Client) downloadFileInternal(ctx context.Context, fileID string... method getDownloadStorageServer (line 342) | func (c *Client) getDownloadStorageServer(ctx context.Context, groupName... method downloadToFileWithRetry (line 403) | func (c *Client) downloadToFileWithRetry(ctx context.Context, fileID, lo... method deleteFileWithRetry (line 413) | func (c *Client) deleteFileWithRetry(ctx context.Context, fileID string)... method deleteFileInternal (line 438) | func (c *Client) deleteFileInternal(ctx context.Context, fileID string) ... FILE: go_client/protocol.go function encodeHeader (line 25) | func encodeHeader(length int64, cmd byte, status byte) []byte { function decodeHeader (line 42) | func decodeHeader(data []byte) (*TrackerHeader, error) { function splitFileID (line 67) | func splitFileID(fileID string) (string, string, error) { function joinFileID (line 99) | func joinFileID(groupName, remoteFilename string) string { function encodeMetadata (line 116) | func encodeMetadata(metadata map[string]string) []byte { function decodeMetadata (line 150) | func decodeMetadata(data []byte) (map[string]string, error) { function getFileExtName (line 190) | func getFileExtName(filename string) string { function readFileContent (line 210) | func readFileContent(filename string) ([]byte, error) { function writeFileContent (line 243) | func writeFileContent(filename string, data []byte) error { function padString (line 272) | func padString(s string, length int) []byte { function unpadString (line 286) | func unpadString(data []byte) string { function encodeInt64 (line 297) | func encodeInt64(n int64) []byte { function decodeInt64 (line 310) | func decodeInt64(data []byte) int64 { function encodeInt32 (line 323) | func encodeInt32(n int32) []byte { function decodeInt32 (line 335) | func decodeInt32(data []byte) int32 { FILE: go_client/types.go constant TrackerDefaultPort (line 15) | TrackerDefaultPort = 22122 constant StorageDefaultPort (line 16) | StorageDefaultPort = 23000 constant TrackerProtoCmdServiceQueryStoreWithoutGroupOne (line 19) | TrackerProtoCmdServiceQueryStoreWithoutGroupOne = 101 constant TrackerProtoCmdServiceQueryFetchOne (line 20) | TrackerProtoCmdServiceQueryFetchOne = 102 constant TrackerProtoCmdServiceQueryUpdate (line 21) | TrackerProtoCmdServiceQueryUpdate = 103 constant TrackerProtoCmdServiceQueryStoreWithGroupOne (line 22) | TrackerProtoCmdServiceQueryStoreWithGroupOne = 104 constant TrackerProtoCmdServiceQueryFetchAll (line 23) | TrackerProtoCmdServiceQueryFetchAll = 105 constant TrackerProtoCmdServiceQueryStoreWithoutGroupAll (line 24) | TrackerProtoCmdServiceQueryStoreWithoutGroupAll = 106 constant TrackerProtoCmdServiceQueryStoreWithGroupAll (line 25) | TrackerProtoCmdServiceQueryStoreWithGroupAll = 107 constant TrackerProtoCmdServerListOneGroup (line 26) | TrackerProtoCmdServerListOneGroup = 90 constant TrackerProtoCmdServerListAllGroups (line 27) | TrackerProtoCmdServerListAllGroups = 91 constant TrackerProtoCmdServerListStorage (line 28) | TrackerProtoCmdServerListStorage = 92 constant TrackerProtoCmdServerDeleteStorage (line 29) | TrackerProtoCmdServerDeleteStorage = 93 constant TrackerProtoCmdStorageReportIPChanged (line 30) | TrackerProtoCmdStorageReportIPChanged = 94 constant TrackerProtoCmdStorageReportStatus (line 31) | TrackerProtoCmdStorageReportStatus = 95 constant TrackerProtoCmdStorageReportDiskUsage (line 32) | TrackerProtoCmdStorageReportDiskUsage = 96 constant TrackerProtoCmdStorageSyncTimestamp (line 33) | TrackerProtoCmdStorageSyncTimestamp = 97 constant TrackerProtoCmdStorageSyncReport (line 34) | TrackerProtoCmdStorageSyncReport = 98 constant StorageProtoCmdUploadFile (line 37) | StorageProtoCmdUploadFile = 11 constant StorageProtoCmdDeleteFile (line 38) | StorageProtoCmdDeleteFile = 12 constant StorageProtoCmdSetMetadata (line 39) | StorageProtoCmdSetMetadata = 13 constant StorageProtoCmdDownloadFile (line 40) | StorageProtoCmdDownloadFile = 14 constant StorageProtoCmdGetMetadata (line 41) | StorageProtoCmdGetMetadata = 15 constant StorageProtoCmdUploadSlaveFile (line 42) | StorageProtoCmdUploadSlaveFile = 21 constant StorageProtoCmdQueryFileInfo (line 43) | StorageProtoCmdQueryFileInfo = 22 constant StorageProtoCmdUploadAppenderFile (line 44) | StorageProtoCmdUploadAppenderFile = 23 constant StorageProtoCmdAppendFile (line 45) | StorageProtoCmdAppendFile = 24 constant StorageProtoCmdModifyFile (line 46) | StorageProtoCmdModifyFile = 34 constant StorageProtoCmdTruncateFile (line 47) | StorageProtoCmdTruncateFile = 36 constant TrackerProtoResp (line 50) | TrackerProtoResp = 100 constant FdfsProtoResp (line 51) | FdfsProtoResp = TrackerProtoResp constant FdfsStorageProtoResp (line 52) | FdfsStorageProtoResp = TrackerProtoResp constant FdfsGroupNameMaxLen (line 55) | FdfsGroupNameMaxLen = 16 constant FdfsFileExtNameMaxLen (line 56) | FdfsFileExtNameMaxLen = 6 constant FdfsMaxMetaNameLen (line 57) | FdfsMaxMetaNameLen = 64 constant FdfsMaxMetaValueLen (line 58) | FdfsMaxMetaValueLen = 256 constant FdfsFilePrefixMaxLen (line 59) | FdfsFilePrefixMaxLen = 16 constant FdfsStorageIDMaxSize (line 60) | FdfsStorageIDMaxSize = 16 constant FdfsVersionSize (line 61) | FdfsVersionSize = 8 constant IPAddressSize (line 62) | IPAddressSize = 16 constant FdfsRecordSeparator (line 65) | FdfsRecordSeparator = '\x01' constant FdfsFieldSeparator (line 66) | FdfsFieldSeparator = '\x02' constant FdfsProtoHeaderLen (line 69) | FdfsProtoHeaderLen = 10 constant FdfsStorageStatusInit (line 72) | FdfsStorageStatusInit = 0 constant FdfsStorageStatusWaitSync (line 73) | FdfsStorageStatusWaitSync = 1 constant FdfsStorageStatusSyncing (line 74) | FdfsStorageStatusSyncing = 2 constant FdfsStorageStatusIPChanged (line 75) | FdfsStorageStatusIPChanged = 3 constant FdfsStorageStatusDeleted (line 76) | FdfsStorageStatusDeleted = 4 constant FdfsStorageStatusOffline (line 77) | FdfsStorageStatusOffline = 5 constant FdfsStorageStatusOnline (line 78) | FdfsStorageStatusOnline = 6 constant FdfsStorageStatusActive (line 79) | FdfsStorageStatusActive = 7 constant FdfsStorageStatusRecovery (line 80) | FdfsStorageStatusRecovery = 9 constant FdfsStorageStatusNone (line 81) | FdfsStorageStatusNone = 99 type MetadataFlag (line 86) | type MetadataFlag constant MetadataOverwrite (line 91) | MetadataOverwrite MetadataFlag = 'O' constant MetadataMerge (line 95) | MetadataMerge MetadataFlag = 'M' type FileInfo (line 101) | type FileInfo struct type StorageServer (line 117) | type StorageServer struct type GroupInfo (line 125) | type GroupInfo struct type StorageInfo (line 142) | type StorageInfo struct type TrackerHeader (line 165) | type TrackerHeader struct type UploadResponse (line 173) | type UploadResponse struct type ConnectionInfo (line 180) | type ConnectionInfo struct FILE: javascript_client/examples/01_basic_upload.js function main (line 22) | async function main() { FILE: javascript_client/examples/02_metadata_operations.js function main (line 20) | async function main() { FILE: javascript_client/examples/03_appender_file.js function main (line 22) | async function main() { FILE: javascript_client/examples/04_slave_file.js function createThumbnail (line 26) | function createThumbnail(imageData) { function createPreview (line 38) | function createPreview(imageData) { function main (line 46) | async function main() { FILE: javascript_client/src/client.js class Client (line 59) | class Client { method constructor (line 78) | constructor(config) { method _validateConfig (line 130) | _validateConfig(config) { method _checkClosed (line 152) | _checkClosed() { method uploadFile (line 183) | async uploadFile(localFilename, metadata = null) { method uploadBuffer (line 224) | async uploadBuffer(data, fileExtName, metadata = null) { method uploadAppenderFile (line 256) | async uploadAppenderFile(localFilename, metadata = null) { method uploadAppenderBuffer (line 282) | async uploadAppenderBuffer(data, fileExtName, metadata = null) { method uploadSlaveFile (line 319) | async uploadSlaveFile(masterFileId, prefixName, fileExtName, data, met... method downloadFile (line 353) | async downloadFile(fileId) { method downloadFileRange (line 380) | async downloadFileRange(fileId, offset, length) { method downloadToFile (line 409) | async downloadToFile(fileId, localFilename) { method deleteFile (line 434) | async deleteFile(fileId) { method appendFile (line 466) | async appendFile(fileId, data) { method modifyFile (line 499) | async modifyFile(fileId, offset, data) { method truncateFile (line 534) | async truncateFile(fileId, size) { method setMetadata (line 573) | async setMetadata(fileId, metadata, flag = 'OVERWRITE') { method getMetadata (line 602) | async getMetadata(fileId) { method getFileInfo (line 629) | async getFileInfo(fileId) { method fileExists (line 660) | async fileExists(fileId) { method close (line 697) | async close() { FILE: javascript_client/src/connection.js class Connection (line 25) | class Connection { method constructor (line 32) | constructor(socket, addr) { method send (line 50) | async send(data, timeout = 30000) { method receive (line 85) | async receive(size, timeout = 30000) { method receiveFull (line 131) | async receiveFull(size, timeout = 30000) { method close (line 185) | close() { method isAlive (line 200) | isAlive() { method getLastUsed (line 215) | getLastUsed() { method getAddr (line 224) | getAddr() { class ConnectionPool (line 242) | class ConnectionPool { method constructor (line 251) | constructor(addrs, maxConns = 10, connectTimeout = 5000, idleTimeout =... method get (line 278) | async get(addr) { method _createConnection (line 324) | async _createConnection(addr) { method put (line 367) | put(conn) { method _cleanPool (line 422) | _cleanPool(addr) { method addAddr (line 450) | addAddr(addr) { method close (line 469) | close() { FILE: javascript_client/src/errors.js class FastDFSError (line 21) | class FastDFSError extends Error { method constructor (line 22) | constructor(message) { class ClientClosedError (line 35) | class ClientClosedError extends FastDFSError { method constructor (line 36) | constructor() { class FileNotFoundError (line 48) | class FileNotFoundError extends FastDFSError { method constructor (line 49) | constructor(fileId) { class NoStorageServerError (line 62) | class NoStorageServerError extends FastDFSError { method constructor (line 63) | constructor() { class ConnectionTimeoutError (line 74) | class ConnectionTimeoutError extends FastDFSError { method constructor (line 75) | constructor(addr) { class NetworkTimeoutError (line 87) | class NetworkTimeoutError extends FastDFSError { method constructor (line 88) | constructor(operation) { class InvalidFileIDError (line 100) | class InvalidFileIDError extends FastDFSError { method constructor (line 101) | constructor(fileId) { class InvalidResponseError (line 114) | class InvalidResponseError extends FastDFSError { method constructor (line 115) | constructor(details) { class StorageServerOfflineError (line 127) | class StorageServerOfflineError extends FastDFSError { method constructor (line 128) | constructor(addr) { class TrackerServerOfflineError (line 140) | class TrackerServerOfflineError extends FastDFSError { method constructor (line 141) | constructor(addr) { class InsufficientSpaceError (line 153) | class InsufficientSpaceError extends FastDFSError { method constructor (line 154) | constructor() { class FileAlreadyExistsError (line 165) | class FileAlreadyExistsError extends FastDFSError { method constructor (line 166) | constructor(fileId) { class InvalidMetadataError (line 178) | class InvalidMetadataError extends FastDFSError { method constructor (line 179) | constructor(details) { class OperationNotSupportedError (line 192) | class OperationNotSupportedError extends FastDFSError { method constructor (line 193) | constructor(operation) { class InvalidArgumentError (line 205) | class InvalidArgumentError extends FastDFSError { method constructor (line 206) | constructor(details) { class ProtocolError (line 219) | class ProtocolError extends FastDFSError { method constructor (line 220) | constructor(code, message) { class NetworkError (line 233) | class NetworkError extends FastDFSError { method constructor (line 234) | constructor(operation, addr, originalError) { function mapStatusToError (line 259) | function mapStatusToError(status) { FILE: javascript_client/src/operations.js class Operations (line 45) | class Operations { method constructor (line 54) | constructor(trackerPool, storagePool, networkTimeout, retryCount) { method _withRetry (line 68) | async _withRetry(operation) { method _queryStorageForUpload (line 105) | async _queryStorageForUpload(groupName = null) { method _queryStorageForUpdate (line 162) | async _queryStorageForUpdate(groupName, remoteFilename) { method uploadBuffer (line 214) | async uploadBuffer(fileData, fileExtName, metadata, isAppender) { method uploadSlaveFile (line 270) | async uploadSlaveFile(masterFileId, prefixName, fileExtName, fileData,... method downloadFile (line 360) | async downloadFile(fileId, offset, downloadBytes) { method deleteFile (line 402) | async deleteFile(fileId) { method appendFile (line 448) | async appendFile(fileId, data) { method modifyFile (line 509) | async modifyFile(fileId, offset, data) { method truncateFile (line 576) | async truncateFile(fileId, truncatedFileSize) { method setMetadata (line 633) | async setMetadata(fileId, metadata, flag) { method getMetadata (line 703) | async getMetadata(fileId) { method getFileInfo (line 751) | async getFileInfo(fileId) { FILE: javascript_client/src/protocol.js function encodeHeader (line 40) | function encodeHeader(bodyLength, cmd, status = 0) { function decodeHeader (line 64) | function decodeHeader(headerBuf) { function padString (line 90) | function padString(str, maxLen) { function readString (line 107) | function readString(buf, offset = 0, maxLen) { function parseFileId (line 130) | function parseFileId(fileId) { function encodeMetadata (line 160) | function encodeMetadata(metadata) { function decodeMetadata (line 194) | function decodeMetadata(metaBuf) { function encodeUploadRequest (line 239) | function encodeUploadRequest(storePathIndex, fileSize, fileExtName, file... function decodeUploadResponse (line 274) | function decodeUploadResponse(responseBuf) { function encodeDownloadRequest (line 294) | function encodeDownloadRequest(offset, downloadBytes, groupName, remoteF... function decodeFileInfo (line 333) | function decodeFileInfo(responseBuf) { FILE: javascript_client/src/types.js constant TRACKER_DEFAULT_PORT (line 23) | const TRACKER_DEFAULT_PORT = 22122; constant STORAGE_DEFAULT_PORT (line 29) | const STORAGE_DEFAULT_PORT = 23000; constant FDFS_PROTO_HEADER_LEN (line 35) | const FDFS_PROTO_HEADER_LEN = 10; constant FDFS_GROUP_NAME_MAX_LEN (line 45) | const FDFS_GROUP_NAME_MAX_LEN = 16; constant FDFS_FILE_EXT_NAME_MAX_LEN (line 51) | const FDFS_FILE_EXT_NAME_MAX_LEN = 6; constant FDFS_MAX_META_NAME_LEN (line 57) | const FDFS_MAX_META_NAME_LEN = 64; constant FDFS_MAX_META_VALUE_LEN (line 63) | const FDFS_MAX_META_VALUE_LEN = 256; constant FDFS_FILE_PREFIX_MAX_LEN (line 69) | const FDFS_FILE_PREFIX_MAX_LEN = 16; constant FDFS_STORAGE_ID_MAX_SIZE (line 75) | const FDFS_STORAGE_ID_MAX_SIZE = 16; constant FDFS_VERSION_SIZE (line 81) | const FDFS_VERSION_SIZE = 8; constant IP_ADDRESS_SIZE (line 87) | const IP_ADDRESS_SIZE = 16; constant FDFS_RECORD_SEPARATOR (line 97) | const FDFS_RECORD_SEPARATOR = 0x01; constant FDFS_FIELD_SEPARATOR (line 103) | const FDFS_FIELD_SEPARATOR = 0x02; FILE: monitoring/health_check/health_checker.c type HealthStatus (line 34) | typedef enum { type ClusterHealth (line 41) | typedef struct { type AlertState (line 51) | typedef struct { function should_suppress_alert (line 64) | static int should_suppress_alert(const char *message) { function send_alert (line 81) | static void send_alert(const char *level, const char *message) { function signal_handler (line 107) | static void signal_handler(int sig) { function HealthStatus (line 114) | static HealthStatus check_storage_health(FDFSStorageBrief *pStorage, function perform_health_check (line 172) | static int perform_health_check(ClusterHealth *cluster_health) { function print_health_status (line 274) | static void print_health_status(ClusterHealth *cluster_health) { function main (line 308) | int main(int argc, char *argv[]) { FILE: monitoring/prometheus_exporter/fdfs_exporter.c function format_metric_name (line 40) | static void format_metric_name(char *buffer, size_t size, function append_metric (line 48) | static int append_metric(char *response, size_t *offset, size_t max_size, function export_group_metrics (line 85) | static int export_group_metrics(char *response, size_t *offset, size_t m... function export_storage_metrics (line 130) | static int export_storage_metrics(char *response, size_t *offset, size_t... function collect_metrics (line 270) | static int collect_metrics(char *response, size_t max_size) { function handle_request (line 328) | static void handle_request(int client_socket) { function signal_handler (line 391) | static void signal_handler(int sig) { function main (line 402) | int main(int argc, char *argv[]) { FILE: php_client/fastdfs_callback_test.php function my_upload_file_callback (line 78) | function my_upload_file_callback($sock, $args) function my_download_file_callback (line 86) | function my_download_file_callback($args, $file_size, $data) FILE: php_client/fastdfs_client.c type FDFSConfigInfo (line 19) | typedef struct type FDFSPhpContext (line 24) | typedef struct type php_fdfs_t (line 30) | typedef struct type php_fdfs_callback_t (line 42) | typedef struct type php_fdfs_upload_callback_t (line 48) | typedef struct function php_fdfs_tracker_get_connection_impl (line 831) | static void php_fdfs_tracker_get_connection_impl(INTERNAL_FUNCTION_PARAM... function php_fdfs_tracker_make_all_connections_impl (line 865) | static void php_fdfs_tracker_make_all_connections_impl( \ function php_fdfs_tracker_close_all_connections_impl (line 892) | static void php_fdfs_tracker_close_all_connections_impl( \ function php_fdfs_connect_server_impl (line 912) | static void php_fdfs_connect_server_impl(INTERNAL_FUNCTION_PARAMETERS, \ function php_fdfs_disconnect_server_impl (line 959) | static void php_fdfs_disconnect_server_impl(INTERNAL_FUNCTION_PARAMETERS, \ function php_fdfs_get_callback_from_hash (line 1018) | static int php_fdfs_get_callback_from_hash(HashTable *callback_hash, \ function php_fdfs_get_upload_callback_from_hash (line 1052) | static int php_fdfs_get_upload_callback_from_hash(HashTable *callback_ha... function php_fdfs_get_server_from_hash (line 1090) | static int php_fdfs_get_server_from_hash(HashTable *tracker_hash, \ function php_fastdfs_active_test_impl (line 1157) | static void php_fastdfs_active_test_impl(INTERNAL_FUNCTION_PARAMETERS, \ function php_fdfs_tracker_list_groups_impl (line 1202) | static void php_fdfs_tracker_list_groups_impl(INTERNAL_FUNCTION_PARAMETE... function php_fdfs_tracker_query_storage_store_impl (line 1630) | static void php_fdfs_tracker_query_storage_store_impl( \ function php_fdfs_tracker_query_storage_store_list_impl (line 1736) | static void php_fdfs_tracker_query_storage_store_list_impl( \ function php_fdfs_tracker_do_query_storage_impl (line 1859) | static void php_fdfs_tracker_do_query_storage_impl( \ function php_fdfs_tracker_delete_storage_impl (line 1996) | static void php_fdfs_tracker_delete_storage_impl( \ function php_fdfs_storage_delete_file_impl (line 2047) | static void php_fdfs_storage_delete_file_impl( \ function php_fdfs_storage_truncate_file_impl (line 2206) | static void php_fdfs_storage_truncate_file_impl( \ function php_fdfs_storage_download_file_to_callback_impl (line 2368) | static void php_fdfs_storage_download_file_to_callback_impl( \ function php_fdfs_storage_download_file_to_buff_impl (line 2549) | static void php_fdfs_storage_download_file_to_buff_impl( \ function php_fdfs_storage_download_file_to_file_impl (line 2717) | static void php_fdfs_storage_download_file_to_file_impl( \ function php_fdfs_storage_get_metadata_impl (line 2888) | static void php_fdfs_storage_get_metadata_impl( \ function php_fdfs_storage_file_exist_impl (line 3063) | static void php_fdfs_storage_file_exist_impl( \ function php_fdfs_tracker_query_storage_list_impl (line 3220) | static void php_fdfs_tracker_query_storage_list_impl( \ function php_fdfs_upload_callback (line 3370) | static int php_fdfs_upload_callback(void *arg, const int64_t file_size, ... function php_fdfs_download_callback (line 3425) | static int php_fdfs_download_callback(void *arg, const int64_t file_size, \ function php_fdfs_storage_upload_file_impl (line 3505) | static void php_fdfs_storage_upload_file_impl(INTERNAL_FUNCTION_PARAMETE... function php_fdfs_storage_upload_slave_file_impl (line 3786) | static void php_fdfs_storage_upload_slave_file_impl( \ function php_fdfs_storage_append_file_impl (line 4100) | static void php_fdfs_storage_append_file_impl( \ function php_fdfs_storage_modify_file_impl (line 4328) | static void php_fdfs_storage_modify_file_impl( \ function php_fdfs_storage_regenerate_appender_filename_impl (line 4560) | static void php_fdfs_storage_regenerate_appender_filename_impl( function php_fdfs_storage_set_metadata_impl (line 4744) | static void php_fdfs_storage_set_metadata_impl(INTERNAL_FUNCTION_PARAMET... function php_fdfs_http_gen_token_impl (line 4954) | static void php_fdfs_http_gen_token_impl(INTERNAL_FUNCTION_PARAMETERS, \ function php_fdfs_send_data_impl (line 4994) | static void php_fdfs_send_data_impl(INTERNAL_FUNCTION_PARAMETERS, \ function php_fdfs_get_file_info_impl (line 5030) | static void php_fdfs_get_file_info_impl(INTERNAL_FUNCTION_PARAMETERS, \ function php_fdfs_gen_slave_filename_impl (line 5138) | static void php_fdfs_gen_slave_filename_impl(INTERNAL_FUNCTION_PARAMETER... function ZEND_FUNCTION (line 5225) | ZEND_FUNCTION(fastdfs_tracker_get_connection) function ZEND_FUNCTION (line 5235) | ZEND_FUNCTION(fastdfs_tracker_make_all_connections) function ZEND_FUNCTION (line 5245) | ZEND_FUNCTION(fastdfs_tracker_close_all_connections) function ZEND_FUNCTION (line 5255) | ZEND_FUNCTION(fastdfs_connect_server) function ZEND_FUNCTION (line 5265) | ZEND_FUNCTION(fastdfs_disconnect_server) function ZEND_FUNCTION (line 5275) | ZEND_FUNCTION(fastdfs_active_test) function ZEND_FUNCTION (line 5285) | ZEND_FUNCTION(fastdfs_get_last_error_no) function ZEND_FUNCTION (line 5294) | ZEND_FUNCTION(fastdfs_get_last_error_info) function ZEND_FUNCTION (line 5306) | ZEND_FUNCTION(fastdfs_client_version) function ZEND_FUNCTION (line 5322) | ZEND_FUNCTION(fastdfs_tracker_list_groups) function ZEND_FUNCTION (line 5333) | ZEND_FUNCTION(fastdfs_tracker_query_storage_store) function ZEND_FUNCTION (line 5344) | ZEND_FUNCTION(fastdfs_tracker_query_storage_store_list) function ZEND_FUNCTION (line 5355) | ZEND_FUNCTION(fastdfs_tracker_query_storage_update) function ZEND_FUNCTION (line 5367) | ZEND_FUNCTION(fastdfs_tracker_query_storage_fetch) function ZEND_FUNCTION (line 5379) | ZEND_FUNCTION(fastdfs_tracker_query_storage_list) function ZEND_FUNCTION (line 5391) | ZEND_FUNCTION(fastdfs_tracker_query_storage_update1) function ZEND_FUNCTION (line 5403) | ZEND_FUNCTION(fastdfs_tracker_query_storage_fetch1) function ZEND_FUNCTION (line 5415) | ZEND_FUNCTION(fastdfs_tracker_query_storage_list1) function ZEND_FUNCTION (line 5426) | ZEND_FUNCTION(fastdfs_tracker_delete_storage) function ZEND_FUNCTION (line 5439) | ZEND_FUNCTION(fastdfs_storage_upload_by_filename) function ZEND_FUNCTION (line 5452) | ZEND_FUNCTION(fastdfs_storage_upload_by_filename1) function ZEND_FUNCTION (line 5465) | ZEND_FUNCTION(fastdfs_storage_upload_by_filebuff) function ZEND_FUNCTION (line 5478) | ZEND_FUNCTION(fastdfs_storage_upload_by_filebuff1) function ZEND_FUNCTION (line 5491) | ZEND_FUNCTION(fastdfs_storage_upload_by_callback) function ZEND_FUNCTION (line 5504) | ZEND_FUNCTION(fastdfs_storage_upload_by_callback1) function ZEND_FUNCTION (line 5517) | ZEND_FUNCTION(fastdfs_storage_append_by_filename) function ZEND_FUNCTION (line 5529) | ZEND_FUNCTION(fastdfs_storage_append_by_filename1) function ZEND_FUNCTION (line 5541) | ZEND_FUNCTION(fastdfs_storage_append_by_filebuff) function ZEND_FUNCTION (line 5553) | ZEND_FUNCTION(fastdfs_storage_append_by_filebuff1) function ZEND_FUNCTION (line 5565) | ZEND_FUNCTION(fastdfs_storage_append_by_callback) function ZEND_FUNCTION (line 5577) | ZEND_FUNCTION(fastdfs_storage_append_by_callback1) function ZEND_FUNCTION (line 5589) | ZEND_FUNCTION(fastdfs_storage_modify_by_filename) function ZEND_FUNCTION (line 5601) | ZEND_FUNCTION(fastdfs_storage_modify_by_filename1) function ZEND_FUNCTION (line 5613) | ZEND_FUNCTION(fastdfs_storage_modify_by_filebuff) function ZEND_FUNCTION (line 5625) | ZEND_FUNCTION(fastdfs_storage_modify_by_filebuff1) function ZEND_FUNCTION (line 5637) | ZEND_FUNCTION(fastdfs_storage_modify_by_callback) function ZEND_FUNCTION (line 5649) | ZEND_FUNCTION(fastdfs_storage_modify_by_callback1) function ZEND_FUNCTION (line 5660) | ZEND_FUNCTION(fastdfs_storage_regenerate_appender_filename) function ZEND_FUNCTION (line 5671) | ZEND_FUNCTION(fastdfs_storage_regenerate_appender_filename1) function ZEND_FUNCTION (line 5683) | ZEND_FUNCTION(fastdfs_storage_upload_appender_by_filename) function ZEND_FUNCTION (line 5696) | ZEND_FUNCTION(fastdfs_storage_upload_appender_by_filename1) function ZEND_FUNCTION (line 5709) | ZEND_FUNCTION(fastdfs_storage_upload_appender_by_filebuff) function ZEND_FUNCTION (line 5722) | ZEND_FUNCTION(fastdfs_storage_upload_appender_by_filebuff1) function ZEND_FUNCTION (line 5735) | ZEND_FUNCTION(fastdfs_storage_upload_appender_by_callback) function ZEND_FUNCTION (line 5748) | ZEND_FUNCTION(fastdfs_storage_upload_appender_by_callback1) function ZEND_FUNCTION (line 5762) | ZEND_FUNCTION(fastdfs_storage_upload_slave_by_filename) function ZEND_FUNCTION (line 5775) | ZEND_FUNCTION(fastdfs_storage_upload_slave_by_filename1) function ZEND_FUNCTION (line 5789) | ZEND_FUNCTION(fastdfs_storage_upload_slave_by_filebuff) function ZEND_FUNCTION (line 5802) | ZEND_FUNCTION(fastdfs_storage_upload_slave_by_filebuff1) function ZEND_FUNCTION (line 5816) | ZEND_FUNCTION(fastdfs_storage_upload_slave_by_callback) function ZEND_FUNCTION (line 5830) | ZEND_FUNCTION(fastdfs_storage_upload_slave_by_callback1) function ZEND_FUNCTION (line 5842) | ZEND_FUNCTION(fastdfs_storage_delete_file) function ZEND_FUNCTION (line 5853) | ZEND_FUNCTION(fastdfs_storage_delete_file1) function ZEND_FUNCTION (line 5865) | ZEND_FUNCTION(fastdfs_storage_truncate_file) function ZEND_FUNCTION (line 5877) | ZEND_FUNCTION(fastdfs_storage_truncate_file1) function ZEND_FUNCTION (line 5889) | ZEND_FUNCTION(fastdfs_storage_download_file_to_buff) function ZEND_FUNCTION (line 5901) | ZEND_FUNCTION(fastdfs_storage_download_file_to_buff1) function ZEND_FUNCTION (line 5913) | ZEND_FUNCTION(fastdfs_storage_download_file_to_callback) function ZEND_FUNCTION (line 5925) | ZEND_FUNCTION(fastdfs_storage_download_file_to_callback1) function ZEND_FUNCTION (line 5937) | ZEND_FUNCTION(fastdfs_storage_download_file_to_file) function ZEND_FUNCTION (line 5949) | ZEND_FUNCTION(fastdfs_storage_download_file_to_file1) function ZEND_FUNCTION (line 5961) | ZEND_FUNCTION(fastdfs_storage_set_metadata) function ZEND_FUNCTION (line 5972) | ZEND_FUNCTION(fastdfs_storage_set_metadata1) function ZEND_FUNCTION (line 5983) | ZEND_FUNCTION(fastdfs_storage_get_metadata) function ZEND_FUNCTION (line 5994) | ZEND_FUNCTION(fastdfs_storage_get_metadata1) function ZEND_FUNCTION (line 6005) | ZEND_FUNCTION(fastdfs_storage_file_exist) function ZEND_FUNCTION (line 6016) | ZEND_FUNCTION(fastdfs_storage_file_exist1) function ZEND_FUNCTION (line 6026) | ZEND_FUNCTION(fastdfs_http_gen_token) function ZEND_FUNCTION (line 6037) | ZEND_FUNCTION(fastdfs_get_file_info) function ZEND_FUNCTION (line 6047) | ZEND_FUNCTION(fastdfs_get_file_info1) function ZEND_FUNCTION (line 6057) | ZEND_FUNCTION(fastdfs_send_data) function ZEND_FUNCTION (line 6068) | ZEND_FUNCTION(fastdfs_gen_slave_filename) function php_fdfs_close (line 6074) | static void php_fdfs_close(php_fdfs_t *i_obj TSRMLS_DC) function php_fdfs_destroy (line 6087) | static void php_fdfs_destroy(php_fdfs_t *i_obj TSRMLS_DC) function php_fdfs_free_storage (line 7374) | static void php_fdfs_free_storage(void *object TSRMLS_DC) function php_fdfs_free_storage (line 7382) | static void php_fdfs_free_storage(zend_object *object) function zend_object_value (line 7392) | zend_object_value php_fdfs_new(zend_class_entry *ce TSRMLS_DC) function zend_object (line 7410) | zend_object* php_fdfs_new(zend_class_entry *ce) function PHP_FASTDFS_API (line 7424) | PHP_FASTDFS_API zend_class_entry *php_fdfs_get_ce(void) function PHP_FASTDFS_API (line 7429) | PHP_FASTDFS_API zend_class_entry *php_fdfs_get_exception(void) function PHP_FASTDFS_API (line 7434) | PHP_FASTDFS_API zend_class_entry *php_fdfs_get_exception_base(int root T... function load_config_files (line 7470) | static int load_config_files() function PHP_MINIT_FUNCTION (line 7741) | PHP_MINIT_FUNCTION(fastdfs_client) function PHP_MSHUTDOWN_FUNCTION (line 7816) | PHP_MSHUTDOWN_FUNCTION(fastdfs_client) function PHP_RINIT_FUNCTION (line 7846) | PHP_RINIT_FUNCTION(fastdfs_client) function PHP_RSHUTDOWN_FUNCTION (line 7851) | PHP_RSHUTDOWN_FUNCTION(fastdfs_client) function PHP_MINFO_FUNCTION (line 7857) | PHP_MINFO_FUNCTION(fastdfs_client) FILE: python_client/examples/appender_example.py function main (line 12) | def main(): FILE: python_client/examples/basic_usage.py function main (line 13) | def main(): FILE: python_client/examples/meta_example.py function main (line 15) | def main(): FILE: python_client/fdfs/client.py class ClientConfig (line 18) | class ClientConfig: class Client (line 38) | class Client: method __init__ (line 54) | def __init__(self, config: ClientConfig): method _validate_config (line 93) | def _validate_config(self, config: ClientConfig) -> None: method _check_closed (line 105) | def _check_closed(self) -> None: method upload_file (line 111) | def upload_file(self, local_filename: str, metadata: Optional[Dict[str... method upload_buffer (line 130) | def upload_buffer(self, data: bytes, file_ext_name: str, method upload_appender_file (line 150) | def upload_appender_file(self, local_filename: str, method upload_appender_buffer (line 172) | def upload_appender_buffer(self, data: bytes, file_ext_name: str, method download_file (line 192) | def download_file(self, file_id: str) -> bytes: method download_file_range (line 211) | def download_file_range(self, file_id: str, offset: int, length: int) ... method download_to_file (line 232) | def download_to_file(self, file_id: str, local_filename: str) -> None: method delete_file (line 250) | def delete_file(self, file_id: str) -> None: method set_metadata (line 266) | def set_metadata(self, file_id: str, metadata: Dict[str, str], method get_metadata (line 285) | def get_metadata(self, file_id: str) -> Dict[str, str]: method get_file_info (line 304) | def get_file_info(self, file_id: str) -> FileInfo: method file_exists (line 323) | def file_exists(self, file_id: str) -> bool: method close (line 345) | def close(self) -> None: method __enter__ (line 364) | def __enter__(self): method __exit__ (line 368) | def __exit__(self, exc_type, exc_val, exc_tb): FILE: python_client/fdfs/connection.py class Connection (line 17) | class Connection: method __init__ (line 25) | def __init__(self, sock: socket.socket, addr: str): method send (line 38) | def send(self, data: bytes, timeout: float = 30.0) -> None: method receive (line 70) | def receive(self, size: int, timeout: float = 30.0) -> bytes: method receive_full (line 104) | def receive_full(self, size: int, timeout: float = 30.0) -> bytes: method close (line 141) | def close(self) -> None: method is_alive (line 154) | def is_alive(self) -> bool: method get_last_used (line 174) | def get_last_used(self) -> float: method get_addr (line 184) | def get_addr(self) -> str: class ConnectionPool (line 194) | class ConnectionPool: method __init__ (line 205) | def __init__(self, addrs: List[str], max_conns: int = 10, method get (line 228) | def get(self, addr: Optional[str] = None) -> Connection: method _create_connection (line 271) | def _create_connection(self, addr: str) -> Connection: method put (line 299) | def put(self, conn: Optional[Connection]) -> None: method _clean_pool (line 344) | def _clean_pool(self, addr: str) -> None: method add_addr (line 366) | def add_addr(self, addr: str) -> None: method close (line 386) | def close(self) -> None: FILE: python_client/fdfs/errors.py class FastDFSError (line 9) | class FastDFSError(Exception): class ClientClosedError (line 14) | class ClientClosedError(FastDFSError): method __init__ (line 16) | def __init__(self): class FileNotFoundError (line 20) | class FileNotFoundError(FastDFSError): method __init__ (line 22) | def __init__(self, file_id: str = ""): class NoStorageServerError (line 27) | class NoStorageServerError(FastDFSError): method __init__ (line 29) | def __init__(self): class ConnectionTimeoutError (line 33) | class ConnectionTimeoutError(FastDFSError): method __init__ (line 35) | def __init__(self, addr: str = ""): class NetworkTimeoutError (line 40) | class NetworkTimeoutError(FastDFSError): method __init__ (line 42) | def __init__(self, operation: str = ""): class InvalidFileIDError (line 47) | class InvalidFileIDError(FastDFSError): method __init__ (line 49) | def __init__(self, file_id: str = ""): class InvalidResponseError (line 54) | class InvalidResponseError(FastDFSError): method __init__ (line 56) | def __init__(self, details: str = ""): class StorageServerOfflineError (line 61) | class StorageServerOfflineError(FastDFSError): method __init__ (line 63) | def __init__(self, addr: str = ""): class TrackerServerOfflineError (line 68) | class TrackerServerOfflineError(FastDFSError): method __init__ (line 70) | def __init__(self, addr: str = ""): class InsufficientSpaceError (line 75) | class InsufficientSpaceError(FastDFSError): method __init__ (line 77) | def __init__(self): class FileAlreadyExistsError (line 81) | class FileAlreadyExistsError(FastDFSError): method __init__ (line 83) | def __init__(self, file_id: str = ""): class InvalidMetadataError (line 88) | class InvalidMetadataError(FastDFSError): method __init__ (line 90) | def __init__(self, details: str = ""): class OperationNotSupportedError (line 95) | class OperationNotSupportedError(FastDFSError): method __init__ (line 97) | def __init__(self, operation: str = ""): class InvalidArgumentError (line 102) | class InvalidArgumentError(FastDFSError): method __init__ (line 104) | def __init__(self, details: str = ""): class ProtocolError (line 109) | class ProtocolError(FastDFSError): method __init__ (line 117) | def __init__(self, code: int, message: str = ""): class NetworkError (line 123) | class NetworkError(FastDFSError): method __init__ (line 132) | def __init__(self, operation: str, addr: str, original_error: Exception): function map_status_to_error (line 139) | def map_status_to_error(status: int) -> Optional[FastDFSError]: FILE: python_client/fdfs/operations.py class Operations (line 46) | class Operations: method __init__ (line 53) | def __init__(self, tracker_pool: ConnectionPool, storage_pool: Connect... method upload_file (line 69) | def upload_file(self, local_filename: str, metadata: Optional[Dict[str... method upload_buffer (line 86) | def upload_buffer(self, data: bytes, file_ext_name: str, method _upload_buffer_internal (line 109) | def _upload_buffer_internal(self, data: bytes, file_ext_name: str, method _get_storage_server (line 172) | def _get_storage_server(self, group_name: str) -> StorageServer: method download_file (line 235) | def download_file(self, file_id: str, offset: int = 0, length: int = 0... method _download_file_internal (line 255) | def _download_file_internal(self, file_id: str, offset: int, length: i... method _get_download_storage_server (line 297) | def _get_download_storage_server(self, group_name: str, remote_filenam... method download_to_file (line 347) | def download_to_file(self, file_id: str, local_filename: str) -> None: method delete_file (line 358) | def delete_file(self, file_id: str) -> None: method _delete_file_internal (line 374) | def _delete_file_internal(self, file_id: str) -> None: method set_metadata (line 409) | def set_metadata(self, file_id: str, metadata: Dict[str, str], flag: M... method get_metadata (line 460) | def get_metadata(self, file_id: str) -> Dict[str, str]: method get_file_info (line 511) | def get_file_info(self, file_id: str) -> FileInfo: FILE: python_client/fdfs/protocol.py function encode_header (line 26) | def encode_header(length: int, cmd: int, status: int = 0) -> bytes: function decode_header (line 49) | def decode_header(data: bytes) -> TrackerHeader: function split_file_id (line 74) | def split_file_id(file_id: str) -> Tuple[str, str]: function join_file_id (line 108) | def join_file_id(group_name: str, remote_filename: str) -> str: function encode_metadata (line 124) | def encode_metadata(metadata: Optional[Dict[str, str]]) -> bytes: function decode_metadata (line 159) | def decode_metadata(data: bytes) -> Dict[str, str]: function get_file_ext_name (line 195) | def get_file_ext_name(filename: str) -> str: function read_file_content (line 224) | def read_file_content(filename: str) -> bytes: function write_file_content (line 242) | def write_file_content(filename: str, data: bytes) -> None: function pad_string (line 262) | def pad_string(s: str, length: int) -> bytes: function unpad_string (line 283) | def unpad_string(data: bytes) -> str: function encode_int64 (line 299) | def encode_int64(n: int) -> bytes: function decode_int64 (line 314) | def decode_int64(data: bytes) -> int: function encode_int32 (line 331) | def encode_int32(n: int) -> bytes: function decode_int32 (line 344) | def decode_int32(data: bytes) -> int: FILE: python_client/fdfs/types.py class TrackerCommand (line 36) | class TrackerCommand(IntEnum): class StorageCommand (line 56) | class StorageCommand(IntEnum): class StorageStatus (line 71) | class StorageStatus(IntEnum): class MetadataFlag (line 85) | class MetadataFlag(IntEnum): class FileInfo (line 92) | class FileInfo: class StorageServer (line 109) | class StorageServer: class TrackerHeader (line 124) | class TrackerHeader: class UploadResponse (line 139) | class UploadResponse: FILE: python_client/tests/test_client.py class TestClientConfig (line 15) | class TestClientConfig(unittest.TestCase): method test_config_defaults (line 18) | def test_config_defaults(self): method test_config_custom_values (line 28) | def test_config_custom_values(self): class TestClient (line 46) | class TestClient(unittest.TestCase): method test_client_creation_valid_config (line 49) | def test_client_creation_valid_config(self): method test_client_creation_invalid_config (line 59) | def test_client_creation_invalid_config(self): method test_client_close (line 71) | def test_client_close(self): method test_client_close_idempotent (line 83) | def test_client_close_idempotent(self): method test_client_context_manager (line 91) | def test_client_context_manager(self): method test_upload_buffer (line 101) | def test_upload_buffer(self, mock_upload): method test_download_file (line 116) | def test_download_file(self, mock_download): method test_delete_file (line 131) | def test_delete_file(self, mock_delete): method test_file_exists (line 143) | def test_file_exists(self, mock_get_info): FILE: python_client/tests/test_connection.py class TestConnection (line 13) | class TestConnection(unittest.TestCase): method test_connection_creation (line 16) | def test_connection_creation(self): method test_connection_last_used (line 50) | def test_connection_last_used(self): class TestConnectionPool (line 64) | class TestConnectionPool(unittest.TestCase): method test_pool_creation (line 67) | def test_pool_creation(self): method test_pool_add_addr (line 77) | def test_pool_add_addr(self): method test_pool_close (line 90) | def test_pool_close(self): method test_pool_close_idempotent (line 99) | def test_pool_close_idempotent(self): FILE: python_client/tests/test_integration.py class TestIntegration (line 20) | class TestIntegration(unittest.TestCase): method setUpClass (line 24) | def setUpClass(cls): method tearDownClass (line 31) | def tearDownClass(cls): method test_upload_download_delete_cycle (line 35) | def test_upload_download_delete_cycle(self): method test_upload_file_from_disk (line 55) | def test_upload_file_from_disk(self): method test_download_to_file (line 77) | def test_download_to_file(self): method test_metadata_operations (line 99) | def test_metadata_operations(self): method test_file_info (line 131) | def test_file_info(self): method test_file_exists (line 148) | def test_file_exists(self): method test_download_range (line 161) | def test_download_range(self): FILE: python_client/tests/test_protocol.py class TestProtocol (line 22) | class TestProtocol(unittest.TestCase): method test_encode_decode_header (line 25) | def test_encode_decode_header(self): method test_decode_header_short_data (line 39) | def test_decode_header_short_data(self): method test_split_file_id_valid (line 44) | def test_split_file_id_valid(self): method test_split_file_id_invalid (line 52) | def test_split_file_id_invalid(self): method test_join_file_id (line 66) | def test_join_file_id(self): method test_encode_decode_metadata (line 74) | def test_encode_decode_metadata(self): method test_encode_metadata_empty (line 91) | def test_encode_metadata_empty(self): method test_decode_metadata_empty (line 99) | def test_decode_metadata_empty(self): method test_get_file_ext_name (line 104) | def test_get_file_ext_name(self): method test_pad_unpad_string (line 118) | def test_pad_unpad_string(self): method test_pad_string_truncate (line 129) | def test_pad_string_truncate(self): method test_encode_decode_int64 (line 137) | def test_encode_decode_int64(self): method test_decode_int64_short_data (line 148) | def test_decode_int64_short_data(self): FILE: ruby_client/examples/basic_usage.rb function main (line 18) | def main FILE: ruby_client/examples/metadata_example.rb function main (line 18) | def main FILE: ruby_client/examples/upload_buffer.rb function main (line 18) | def main FILE: ruby_client/lib/fastdfs.rb type FastDFS (line 67) | module FastDFS FILE: ruby_client/lib/fastdfs/client.rb type FastDFS (line 54) | module FastDFS class Client (line 78) | class Client method initialize (line 109) | def initialize(config) method upload_file (line 190) | def upload_file(local_filename, metadata = nil) method upload_buffer (line 228) | def upload_buffer(data, file_ext_name, metadata = nil) method upload_appender_file (line 264) | def upload_appender_file(local_filename, metadata = nil) method upload_appender_buffer (line 289) | def upload_appender_buffer(data, file_ext_name, metadata = nil) method upload_slave_file (line 335) | def upload_slave_file(master_file_id, prefix_name, file_ext_name, da... method download_file (line 369) | def download_file(file_id) method download_file_range (line 408) | def download_file_range(file_id, offset, length) method download_to_file (line 441) | def download_to_file(file_id, local_filename) method delete_file (line 469) | def delete_file(file_id) method append_file (line 507) | def append_file(file_id, data) method modify_file (line 545) | def modify_file(file_id, offset, data) method truncate_file (line 582) | def truncate_file(file_id, size) method set_metadata (line 626) | def set_metadata(file_id, metadata, flag = :overwrite) method get_metadata (line 664) | def get_metadata(file_id) method get_file_info (line 697) | def get_file_info(file_id) method file_exists? (line 732) | def file_exists?(file_id) method close (line 770) | def close method closed? (line 825) | def closed? method _validate_config (line 843) | def _validate_config(config) method _check_closed (line 933) | def _check_closed FILE: ruby_client/lib/fastdfs/client_config.rb type FastDFS (line 12) | module FastDFS class ClientConfig (line 33) | class ClientConfig method initialize (line 120) | def initialize(options = {}) method to_s (line 196) | def to_s method to_h (line 214) | def to_h method == (line 233) | def ==(other) method hash (line 251) | def hash method eql? (line 263) | def eql?(other) FILE: ruby_client/lib/fastdfs/connection_pool.rb type FastDFS (line 19) | module FastDFS class Connection (line 28) | class Connection method initialize (line 36) | def initialize(sock, addr) method send (line 70) | def send(data, timeout = 30.0) method receive (line 132) | def receive(size, timeout = 30.0) method receive_full (line 185) | def receive_full(size, timeout = 30.0) method close (line 250) | def close method alive? (line 284) | def alive? class ConnectionPool (line 338) | class ConnectionPool method initialize (line 349) | def initialize(addrs:, max_conns: 10, connect_timeout: 5.0, idle_tim... method get (line 405) | def get(addr = nil) method put (line 529) | def put(conn) method close (line 611) | def close method closed? (line 652) | def closed? FILE: ruby_client/lib/fastdfs/errors.rb type FastDFS (line 15) | module FastDFS class Error (line 27) | class Error < StandardError class ClientClosedError (line 42) | class ClientClosedError < Error method initialize (line 46) | def initialize(message = "client is closed") class FileNotFoundError (line 63) | class FileNotFoundError < Error method initialize (line 67) | def initialize(message = "file not found") class NoStorageServerError (line 84) | class NoStorageServerError < Error method initialize (line 88) | def initialize(message = "no storage server available") class ConnectionTimeoutError (line 104) | class ConnectionTimeoutError < Error method initialize (line 108) | def initialize(message = "connection timeout") class NetworkTimeoutError (line 124) | class NetworkTimeoutError < Error method initialize (line 128) | def initialize(message = "network timeout") class InvalidFileIDError (line 145) | class InvalidFileIDError < Error method initialize (line 149) | def initialize(message = "invalid file ID") class InvalidResponseError (line 166) | class InvalidResponseError < Error method initialize (line 170) | def initialize(message = "invalid response from server") class StorageServerOfflineError (line 186) | class StorageServerOfflineError < Error method initialize (line 190) | def initialize(message = "storage server is offline") class TrackerServerOfflineError (line 206) | class TrackerServerOfflineError < Error method initialize (line 210) | def initialize(message = "tracker server is offline") class InsufficientSpaceError (line 226) | class InsufficientSpaceError < Error method initialize (line 230) | def initialize(message = "insufficient storage space") class FileAlreadyExistsError (line 247) | class FileAlreadyExistsError < Error method initialize (line 251) | def initialize(message = "file already exists") class InvalidMetadataError (line 268) | class InvalidMetadataError < Error method initialize (line 272) | def initialize(message = "invalid metadata") class OperationNotSupportedError (line 290) | class OperationNotSupportedError < Error method initialize (line 294) | def initialize(message = "operation not supported") class InvalidArgumentError (line 311) | class InvalidArgumentError < Error method initialize (line 315) | def initialize(message = "invalid argument") class ProtocolError (line 335) | class ProtocolError < Error method initialize (line 345) | def initialize(code, message) class NetworkError (line 366) | class NetworkError < Error method initialize (line 387) | def initialize(op, addr, original_error) class StorageError (line 406) | class StorageError < Error method initialize (line 421) | def initialize(server, original_error) class TrackerError (line 439) | class TrackerError < Error method initialize (line 454) | def initialize(server, original_error) function map_status_to_error (line 480) | def self.map_status_to_error(status) FILE: ruby_client/lib/fastdfs/operations.rb type FastDFS (line 21) | module FastDFS class Operations (line 30) | class Operations method initialize (line 40) | def initialize(tracker_pool:, storage_pool:, network_timeout:, retry... method upload_file (line 73) | def upload_file(local_filename, metadata, is_appender: false) method upload_buffer (line 125) | def upload_buffer(data, file_ext_name, metadata, is_appender: false) method download_file (line 194) | def download_file(file_id, offset: 0, length: 0) method download_to_file (line 256) | def download_to_file(file_id, local_filename) method delete_file (line 295) | def delete_file(file_id) method upload_slave_file (line 341) | def upload_slave_file(master_file_id, prefix_name, file_ext_name, da... method append_file (line 348) | def append_file(file_id, data) method modify_file (line 355) | def modify_file(file_id, offset, data) method truncate_file (line 362) | def truncate_file(file_id, size) method set_metadata (line 369) | def set_metadata(file_id, metadata, flag) method get_metadata (line 376) | def get_metadata(file_id) method get_file_info (line 383) | def get_file_info(file_id) method _upload_buffer_internal (line 392) | def _upload_buffer_internal(data, file_ext_name, metadata, is_appender) method _download_file_internal (line 399) | def _download_file_internal(file_id, offset, length) method _delete_file_internal (line 406) | def _delete_file_internal(file_id) FILE: ruby_client/lib/fastdfs/protocol.rb type FastDFS (line 18) | module FastDFS type Protocol (line 26) | module Protocol function encode_header (line 39) | def encode_header(body_len, cmd, status = 0) function decode_header (line 78) | def decode_header(header) function encode_int64 (line 118) | def encode_int64(value) function decode_int64 (line 146) | def decode_int64(data) function pad_string (line 181) | def pad_string(str, len) function unpad_string (line 217) | def unpad_string(str) function split_file_id (line 241) | def split_file_id(file_id) function join_file_id (line 291) | def join_file_id(group_name, remote_filename) function encode_metadata (line 319) | def encode_metadata(metadata) function decode_metadata (line 389) | def decode_metadata(data) FILE: ruby_client/lib/fastdfs/types.rb type FastDFS (line 16) | module FastDFS type TrackerCommand (line 54) | module TrackerCommand type StorageCommand (line 108) | module StorageCommand type StorageStatus (line 146) | module StorageStatus type MetadataFlag (line 181) | module MetadataFlag class FileInfo (line 201) | class FileInfo method initialize (line 232) | def initialize(file_size, create_time, crc32, source_ip_addr) method to_s (line 253) | def to_s method == (line 262) | def ==(other) method hash (line 274) | def hash method eql? (line 283) | def eql?(other) class StorageServer (line 297) | class StorageServer method initialize (line 321) | def initialize(ip_addr, port, store_path_index = 0) method address (line 338) | def address method to_s (line 345) | def to_s method == (line 354) | def ==(other) method hash (line 365) | def hash method eql? (line 374) | def eql?(other) class TrackerHeader (line 385) | class TrackerHeader method initialize (line 406) | def initialize(length, cmd, status = 0) method to_s (line 423) | def to_s method == (line 432) | def ==(other) method hash (line 443) | def hash method eql? (line 452) | def eql?(other) class UploadResponse (line 461) | class UploadResponse method initialize (line 476) | def initialize(group_name, remote_filename) method file_id (line 489) | def file_id method to_s (line 496) | def to_s method == (line 505) | def ==(other) method hash (line 515) | def hash method eql? (line 524) | def eql?(other) FILE: rust_client/benches/benchmark.rs function bench_upload_small_file (line 19) | fn bench_upload_small_file(c: &mut Criterion) { function bench_upload_medium_file (line 53) | fn bench_upload_medium_file(c: &mut Criterion) { function bench_download_file (line 95) | fn bench_download_file(c: &mut Criterion) { function bench_metadata_operations (line 127) | fn bench_metadata_operations(c: &mut Criterion) { function bench_concurrent_uploads (line 179) | fn bench_concurrent_uploads(c: &mut Criterion) { FILE: rust_client/examples/advanced_metadata_example.rs type MetadataSchema (line 42) | struct MetadataSchema { method new (line 55) | fn new() -> Self { method validate (line 93) | fn validate(&self, metadata: &HashMap) -> Vec { type MetadataFilter (line 126) | struct MetadataFilter { method new (line 141) | fn new() -> Self { method with_exact_match (line 152) | fn with_exact_match(mut self, key: &str, value: &str) -> Self { method with_required_key (line 159) | fn with_required_key(mut self, key: &str) -> Self { method with_excluded_key (line 166) | fn with_excluded_key(mut self, key: &str) -> Self { method with_partial_match (line 173) | fn with_partial_match(mut self, key: &str, value: &str) -> Self { method matches (line 180) | fn matches(&self, metadata: &HashMap) -> bool { type WorkflowAction (line 228) | enum WorkflowAction { type WorkflowRule (line 243) | struct WorkflowRule { type WorkflowEngine (line 254) | struct WorkflowEngine { method new (line 263) | fn new() -> Self { method add_rule (line 271) | fn add_rule(mut self, rule: WorkflowRule) -> Self { method process (line 278) | fn process(&self, metadata: &HashMap) -> Option<&Workf... function main (line 298) | async fn main() -> Result<(), Box> { FILE: rust_client/examples/appender_example.rs function main (line 19) | async fn main() -> Result<(), Box> { FILE: rust_client/examples/basic_usage.rs function main (line 18) | async fn main() -> Result<(), Box> { FILE: rust_client/examples/batch_operations_example.rs function main (line 31) | async fn main() -> Result<(), Box> { FILE: rust_client/examples/cancellation_example.rs function check_cancellation (line 50) | fn check_cancellation(token: &CancellationToken) -> Result<(), Box Result<(), Box> { FILE: rust_client/examples/concurrent_operations_example.rs function main (line 30) | async fn main() -> Result<(), Box> { FILE: rust_client/examples/configuration_example.rs type Environment (line 45) | enum Environment { function get_environment (line 56) | fn get_environment() -> Environment { function create_development_config (line 85) | fn create_development_config() -> ClientConfig { function create_staging_config (line 113) | fn create_staging_config() -> ClientConfig { function create_production_config (line 144) | fn create_production_config() -> ClientConfig { function create_high_performance_config (line 182) | fn create_high_performance_config() -> ClientConfig { function create_high_availability_config (line 212) | fn create_high_availability_config() -> ClientConfig { function create_low_latency_config (line 243) | fn create_low_latency_config() -> ClientConfig { function create_resource_constrained_config (line 273) | fn create_resource_constrained_config() -> ClientConfig { function main (line 302) | async fn main() -> Result<(), Box> { FILE: rust_client/examples/connection_pool_example.rs function main (line 30) | async fn main() -> Result<(), Box> { FILE: rust_client/examples/error_handling_example.rs function main (line 30) | async fn main() -> Result<(), Box> { FILE: rust_client/examples/file_info_example.rs function main (line 38) | async fn main() -> Result<(), Box> { FILE: rust_client/examples/integration_example.rs type AppConfig (line 35) | pub struct AppConfig { method from_env (line 53) | pub fn from_env() -> Result> { method to_client_config (line 92) | pub fn to_client_config(&self) -> ClientConfig { type AppState (line 107) | pub struct AppState { method new (line 117) | pub fn new(config: AppConfig) -> Result) -> Self { method upload_file (line 141) | pub async fn upload_file( method download_file (line 153) | pub async fn download_file(&self, file_id: &str) -> Result, Se... method get_file_info (line 162) | pub async fn get_file_info(&self, file_id: &str) -> Result Result<(), ServiceEr... type ServiceError (line 185) | pub enum ServiceError { method from (line 197) | fn from(err: FastDFSError) -> Self { method fmt (line 212) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { function init_logging (line 230) | pub fn init_logging(config: &AppConfig) { function log_info (line 242) | fn log_info(event: &str, message: &str) { function log_error (line 247) | fn log_error(event: &str, error: &dyn std::error::Error) { function log_warn (line 252) | fn log_warn(event: &str, message: &str) { function main (line 263) | async fn main() -> Result<(), Box> { method clone (line 503) | fn clone(&self) -> Self { FILE: rust_client/examples/metadata_example.rs function main (line 22) | async fn main() -> Result<(), Box> { FILE: rust_client/examples/partial_download_example.rs function main (line 30) | async fn main() -> Result<(), Box> { FILE: rust_client/examples/performance_example.rs type OperationMetrics (line 38) | pub struct OperationMetrics { type PerformanceStats (line 53) | pub struct PerformanceStats { method from_metrics (line 78) | pub fn from_metrics(metrics: &[OperationMetrics]) -> Self { method print (line 137) | pub fn print(&self) { function benchmark_connection_pool_sizes (line 161) | async fn benchmark_connection_pool_sizes( function benchmark_batch_operations (line 246) | async fn benchmark_batch_operations( function benchmark_concurrent_batch (line 307) | async fn benchmark_concurrent_batch( function benchmark_memory_patterns (line 388) | async fn benchmark_memory_patterns( function benchmark_optimization_techniques (line 451) | async fn benchmark_optimization_techniques( function demonstrate_criterion_usage (line 566) | fn demonstrate_criterion_usage() { function main (line 615) | async fn main() -> Result<(), Box> { FILE: rust_client/examples/slave_file_example.rs function main (line 28) | async fn main() -> Result<(), Box> { FILE: rust_client/examples/streaming_example.rs type Progress (line 57) | struct Progress { method new (line 70) | fn new(total: u64) -> Self { method update (line 80) | fn update(&mut self, bytes: u64) { method percentage (line 86) | fn percentage(&self) -> f64 { method bytes_per_second (line 95) | fn bytes_per_second(&self) -> f64 { method format_bytes (line 105) | fn format_bytes(bytes: u64) -> String { method print (line 119) | fn print(&self) { function upload_file_chunked (line 149) | async fn upload_file_chunked( function download_file_chunked (line 208) | async fn download_file_chunked( function create_chunk_stream (line 279) | fn create_chunk_stream( function process_stream_with_progress (line 294) | async fn process_stream_with_progress( type MemoryReader (line 336) | struct MemoryReader { method poll_read (line 344) | fn poll_read( type MemoryWriter (line 365) | struct MemoryWriter { method poll_write (line 372) | fn poll_write( method poll_flush (line 382) | fn poll_flush( method poll_shutdown (line 390) | fn poll_shutdown( function copy_with_progress (line 401) | async fn copy_with_progress( function stream_with_backpressure (line 456) | async fn stream_with_backpressure( function main (line 518) | async fn main() -> Result<(), Box> { FILE: rust_client/examples/upload_buffer_example.rs function generate_json_content (line 49) | fn generate_json_content() -> String { function generate_xml_content (line 68) | fn generate_xml_content() -> String { function generate_csv_content (line 92) | fn generate_csv_content() -> String { function generate_binary_content (line 110) | fn generate_binary_content(size: usize) -> Vec { function generate_text_content (line 118) | fn generate_text_content() -> String { function main (line 146) | async fn main() -> Result<(), Box> { FILE: rust_client/src/client.rs type Client (line 37) | pub struct Client { method new (line 47) | pub fn new(config: ClientConfig) -> Result { method validate_config (line 81) | fn validate_config(config: &ClientConfig) -> Result<()> { method check_closed (line 101) | async fn check_closed(&self) -> Result<()> { method upload_file (line 110) | pub async fn upload_file(&self, local_filename: &str, metadata: Option... method upload_buffer (line 116) | pub async fn upload_buffer( method upload_appender_file (line 127) | pub async fn upload_appender_file( method upload_appender_buffer (line 137) | pub async fn upload_appender_buffer( method download_file (line 148) | pub async fn download_file(&self, file_id: &str) -> Result { method download_file_range (line 154) | pub async fn download_file_range(&self, file_id: &str, offset: u64, le... method download_to_file (line 160) | pub async fn download_to_file(&self, file_id: &str, local_filename: &s... method delete_file (line 166) | pub async fn delete_file(&self, file_id: &str) -> Result<()> { method set_metadata (line 172) | pub async fn set_metadata( method get_metadata (line 183) | pub async fn get_metadata(&self, file_id: &str) -> Result { method get_file_info (line 189) | pub async fn get_file_info(&self, file_id: &str) -> Result { method file_exists (line 195) | pub async fn file_exists(&self, file_id: &str) -> bool { method close (line 203) | pub async fn close(&self) { FILE: rust_client/src/connection.rs type Connection (line 21) | pub struct Connection { method new (line 29) | pub fn new(stream: TcpStream, addr: String) -> Self { method send (line 40) | pub async fn send(&mut self, data: &[u8], timeout_ms: u64) -> Result<(... method receive_full (line 65) | pub async fn receive_full(&mut self, size: usize, timeout_ms: u64) -> ... method last_used (line 89) | pub fn last_used(&self) -> Instant { method addr (line 94) | pub fn addr(&self) -> &str { type ConnectionPool (line 106) | pub struct ConnectionPool { method new (line 119) | pub fn new( method get (line 144) | pub async fn get(&self, addr: Option<&str>) -> Result { method create_connection (line 192) | async fn create_connection(&self, addr: &str) -> Result { method put (line 217) | pub async fn put(&self, conn: Connection) { method clean_pool (line 250) | fn clean_pool(&self, pool: &mut Vec) { method add_addr (line 259) | pub async fn add_addr(&self, addr: String) { method close (line 276) | pub async fn close(&self) { FILE: rust_client/src/errors.rs type Result (line 9) | pub type Result = std::result::Result; type FastDFSError (line 13) | pub enum FastDFSError { function map_status_to_error (line 103) | pub fn map_status_to_error(status: u8) -> Option { FILE: rust_client/src/operations.rs type Operations (line 18) | pub struct Operations { method new (line 27) | pub fn new( method upload_file (line 42) | pub async fn upload_file( method upload_buffer (line 55) | pub async fn upload_buffer( method upload_buffer_internal (line 82) | async fn upload_buffer_internal( method get_storage_server (line 162) | async fn get_storage_server(&self, group_name: &str) -> Result Result<()> { method delete_file_internal (line 375) | async fn delete_file_internal(&self, file_id: &str) -> Result<()> { method set_metadata (line 415) | pub async fn set_metadata( method get_metadata (line 467) | pub async fn get_metadata(&self, file_id: &str) -> Result { method get_file_info (line 517) | pub async fn get_file_info(&self, file_id: &str) -> Result { FILE: rust_client/src/protocol.rs function encode_header (line 19) | pub fn encode_header(length: u64, cmd: u8, status: u8) -> Bytes { function decode_header (line 30) | pub fn decode_header(data: &[u8]) -> Result { function split_file_id (line 50) | pub fn split_file_id(file_id: &str) -> Result<(String, String)> { function join_file_id (line 77) | pub fn join_file_id(group_name: &str, remote_filename: &str) -> String { function encode_metadata (line 90) | pub fn encode_metadata(metadata: &Metadata) -> Bytes { function decode_metadata (line 120) | pub fn decode_metadata(data: &[u8]) -> Result { function get_file_ext_name (line 156) | pub fn get_file_ext_name(filename: &str) -> String { function read_file_content (line 172) | pub fn read_file_content(filename: &str) -> Result { function write_file_content (line 180) | pub fn write_file_content(filename: &str, data: &[u8]) -> Result<()> { function pad_string (line 193) | pub fn pad_string(s: &str, length: usize) -> Bytes { function unpad_string (line 206) | pub fn unpad_string(data: &[u8]) -> String { function encode_int64 (line 214) | pub fn encode_int64(n: u64) -> Bytes { function decode_int64 (line 223) | pub fn decode_int64(data: &[u8]) -> u64 { function encode_int32 (line 232) | pub fn encode_int32(n: u32) -> Bytes { function decode_int32 (line 239) | pub fn decode_int32(data: &[u8]) -> u32 { function test_encode_decode_header (line 252) | fn test_encode_decode_header() { function test_split_file_id (line 267) | fn test_split_file_id() { function test_join_file_id (line 276) | fn test_join_file_id() { function test_encode_decode_metadata (line 285) | fn test_encode_decode_metadata() { function test_get_file_ext_name (line 299) | fn test_get_file_ext_name() { function test_pad_unpad_string (line 306) | fn test_pad_unpad_string() { FILE: rust_client/src/types.rs constant TRACKER_DEFAULT_PORT (line 9) | pub const TRACKER_DEFAULT_PORT: u16 = 22122; constant STORAGE_DEFAULT_PORT (line 10) | pub const STORAGE_DEFAULT_PORT: u16 = 23000; constant FDFS_PROTO_HEADER_LEN (line 13) | pub const FDFS_PROTO_HEADER_LEN: usize = 10; constant FDFS_GROUP_NAME_MAX_LEN (line 16) | pub const FDFS_GROUP_NAME_MAX_LEN: usize = 16; constant FDFS_FILE_EXT_NAME_MAX_LEN (line 17) | pub const FDFS_FILE_EXT_NAME_MAX_LEN: usize = 6; constant FDFS_MAX_META_NAME_LEN (line 18) | pub const FDFS_MAX_META_NAME_LEN: usize = 64; constant FDFS_MAX_META_VALUE_LEN (line 19) | pub const FDFS_MAX_META_VALUE_LEN: usize = 256; constant FDFS_FILE_PREFIX_MAX_LEN (line 20) | pub const FDFS_FILE_PREFIX_MAX_LEN: usize = 16; constant FDFS_STORAGE_ID_MAX_SIZE (line 21) | pub const FDFS_STORAGE_ID_MAX_SIZE: usize = 16; constant FDFS_VERSION_SIZE (line 22) | pub const FDFS_VERSION_SIZE: usize = 8; constant IP_ADDRESS_SIZE (line 23) | pub const IP_ADDRESS_SIZE: usize = 16; constant FDFS_RECORD_SEPARATOR (line 26) | pub const FDFS_RECORD_SEPARATOR: u8 = 0x01; constant FDFS_FIELD_SEPARATOR (line 27) | pub const FDFS_FIELD_SEPARATOR: u8 = 0x02; type TrackerCommand (line 32) | pub enum TrackerCommand { function from (line 52) | fn from(cmd: TrackerCommand) -> u8 { type StorageCommand (line 60) | pub enum StorageCommand { function from (line 75) | fn from(cmd: StorageCommand) -> u8 { type StorageStatus (line 83) | pub enum StorageStatus { type MetadataFlag (line 99) | pub enum MetadataFlag { function from (line 107) | fn from(flag: MetadataFlag) -> u8 { type FileInfo (line 114) | pub struct FileInfo { type StorageServer (line 127) | pub struct StorageServer { type TrackerHeader (line 138) | pub struct TrackerHeader { type UploadResponse (line 149) | pub struct UploadResponse { type ClientConfig (line 158) | pub struct ClientConfig { method new (line 188) | pub fn new(tracker_addrs: Vec) -> Self { method with_max_conns (line 196) | pub fn with_max_conns(mut self, max_conns: usize) -> Self { method with_connect_timeout (line 202) | pub fn with_connect_timeout(mut self, timeout: u64) -> Self { method with_network_timeout (line 208) | pub fn with_network_timeout(mut self, timeout: u64) -> Self { method with_idle_timeout (line 214) | pub fn with_idle_timeout(mut self, timeout: u64) -> Self { method with_retry_count (line 220) | pub fn with_retry_count(mut self, count: usize) -> Self { method default (line 174) | fn default() -> Self { type Metadata (line 227) | pub type Metadata = std::collections::HashMap; FILE: rust_client/tests/client_tests.rs function test_client_creation_valid_config (line 21) | fn test_client_creation_valid_config() { function test_client_creation_empty_trackers (line 40) | fn test_client_creation_empty_trackers() { function test_client_creation_invalid_address (line 59) | fn test_client_creation_invalid_address() { function test_config_builder (line 78) | fn test_config_builder() { function test_config_defaults (line 109) | fn test_config_defaults() { function test_client_close (line 147) | async fn test_client_close() { function test_client_close_idempotent (line 168) | async fn test_client_close_idempotent() { function test_invalid_file_id (line 195) | async fn test_invalid_file_id() { FILE: rust_client/tests/integration_tests.rs function get_tracker_addr (line 16) | fn get_tracker_addr() -> String { function should_run_integration_tests (line 24) | fn should_run_integration_tests() -> bool { function test_upload_download_delete_cycle (line 37) | async fn test_upload_download_delete_cycle() { function test_upload_file_from_disk (line 99) | async fn test_upload_file_from_disk() { function test_download_to_file (line 149) | async fn test_download_to_file() { function test_metadata_operations (line 196) | async fn test_metadata_operations() { function test_get_file_info (line 284) | async fn test_get_file_info() { function test_file_exists (line 333) | async fn test_file_exists() { function test_download_range (line 381) | async fn test_download_range() { FILE: rust_client/tests/protocol_tests.rs function test_encode_decode_header (line 23) | fn test_encode_decode_header() { function test_decode_header_short_data (line 59) | fn test_decode_header_short_data() { function test_encode_header_max_values (line 76) | fn test_encode_header_max_values() { function test_encode_header_zero_values (line 102) | fn test_encode_header_zero_values() { function test_split_file_id_valid (line 138) | fn test_split_file_id_valid() { function test_split_file_id_invalid (line 158) | fn test_split_file_id_invalid() { function test_join_file_id (line 184) | fn test_join_file_id() { function test_file_id_round_trip (line 204) | fn test_file_id_round_trip() { function test_encode_decode_metadata (line 233) | fn test_encode_decode_metadata() { function test_encode_metadata_empty (line 273) | fn test_encode_metadata_empty() { function test_decode_metadata_empty (line 292) | fn test_decode_metadata_empty() { function test_metadata_with_special_chars (line 311) | fn test_metadata_with_special_chars() { function test_metadata_truncation (line 333) | fn test_metadata_truncation() { function test_get_file_ext_name (line 367) | fn test_get_file_ext_name() { function test_get_file_ext_name_truncation (line 396) | fn test_get_file_ext_name_truncation() { function test_get_file_ext_name_with_path (line 417) | fn test_get_file_ext_name_with_path() { function test_pad_unpad_string (line 442) | fn test_pad_unpad_string() { function test_pad_string_truncate (line 472) | fn test_pad_string_truncate() { function test_pad_empty_string (line 493) | fn test_pad_empty_string() { function test_unpad_string_no_padding (line 514) | fn test_unpad_string_no_padding() { function test_encode_decode_int64 (line 539) | fn test_encode_decode_int64() { function test_decode_int64_short_data (line 579) | fn test_decode_int64_short_data() { function test_encode_decode_int32 (line 595) | fn test_encode_decode_int32() { function test_decode_int32_short_data (line 629) | fn test_decode_int32_short_data() { FILE: storage/fdfs_storaged.c function main (line 78) | int main(int argc, char *argv[]) function sigQuitHandler (line 319) | static void sigQuitHandler(int sig) function sigAlarmHandler (line 335) | static void sigAlarmHandler(int sig) function sigHupHandler (line 387) | static void sigHupHandler(int sig) function sigUsrHandler (line 403) | static void sigUsrHandler(int sig) function sigDumpHandler (line 410) | static void sigDumpHandler(int sig) function setup_schedule_tasks (line 430) | static int setup_schedule_tasks() function setupSignalHandlers (line 479) | static int setupSignalHandlers() FILE: storage/fdht_client/fdht_client.c function fdht_proxy_extra_deal (line 29) | static void fdht_proxy_extra_deal(GroupArray *pGroupArray, bool *bKeepAl... function fdht_client_init (line 60) | int fdht_client_init(const char *filename) function fdht_load_conf (line 160) | int fdht_load_conf(const char *filename, GroupArray *pGroupArray, \ function fdht_client_destroy (line 188) | void fdht_client_destroy() function FDHTServerInfo (line 199) | static FDHTServerInfo *get_connection(ServerArray *pServerArray, \ function fdht_get_ex1 (line 357) | int fdht_get_ex1(GroupArray *pGroupArray, const bool bKeepAlive, \ function fdht_batch_set_ex (line 513) | int fdht_batch_set_ex(GroupArray *pGroupArray, const bool bKeepAlive, \ function fdht_batch_delete_ex (line 702) | int fdht_batch_delete_ex(GroupArray *pGroupArray, const bool bKeepAlive, \ function fdht_batch_get_ex1 (line 853) | int fdht_batch_get_ex1(GroupArray *pGroupArray, const bool bKeepAlive, \ function fdht_set_ex (line 1083) | int fdht_set_ex(GroupArray *pGroupArray, const bool bKeepAlive, \ function fdht_inc_ex (line 1152) | int fdht_inc_ex(GroupArray *pGroupArray, const bool bKeepAlive, \ function fdht_delete_ex (line 1267) | int fdht_delete_ex(GroupArray *pGroupArray, const bool bKeepAlive, \ function fdht_connect_all_servers (line 1319) | int fdht_connect_all_servers(GroupArray *pGroupArray, const bool bKeepAl... function fdht_disconnect_all_servers (line 1366) | void fdht_disconnect_all_servers(GroupArray *pGroupArray) function fdht_stat_ex (line 1390) | int fdht_stat_ex(GroupArray *pGroupArray, const bool bKeepAlive, \ function fdht_get_sub_keys_ex (line 1486) | int fdht_get_sub_keys_ex(GroupArray *pGroupArray, const bool bKeepAlive, \ FILE: storage/fdht_client/fdht_func.c function fdht_split_ids (line 30) | int fdht_split_ids(const char *szIds, int **ppIds, int *id_count) function fdht_cmp_by_ip_and_port_p (line 293) | static int fdht_cmp_by_ip_and_port_p(const void *p1, const void *p2) function fdht_cmp_by_ip_and_port_pp (line 308) | static int fdht_cmp_by_ip_and_port_pp(const void *p1, const void *p2) function fdht_insert_sorted_servers (line 323) | static void fdht_insert_sorted_servers(GroupArray *pGroupArray, \ function fdht_load_groups_ex (line 342) | int fdht_load_groups_ex(IniContext *pIniContext, \ function fdht_copy_group_array (line 648) | int fdht_copy_group_array(GroupArray *pDestGroupArray, \ function fdht_free_group_array (line 736) | void fdht_free_group_array(GroupArray *pGroupArray) FILE: storage/fdht_client/fdht_proto.c function fdht_recv_header (line 27) | int fdht_recv_header(FDHTServerInfo *pServer, fdht_pkg_size_t *in_bytes) function fdht_recv_response (line 66) | int fdht_recv_response(FDHTServerInfo *pServer, \ function fdht_quit (line 136) | int fdht_quit(FDHTServerInfo *pServer) function fdht_disconnect_server (line 158) | void fdht_disconnect_server(FDHTServerInfo *pServer) function fdht_connect_server_nb (line 167) | int fdht_connect_server_nb(FDHTServerInfo *pServer, const int connect_ti... function fdht_connect_server (line 218) | int fdht_connect_server(FDHTServerInfo *pServer) function fdht_client_set (line 282) | int fdht_client_set(FDHTServerInfo *pServer, const char keep_alive, \ function fdht_client_delete (line 381) | int fdht_client_delete(FDHTServerInfo *pServer, const char keep_alive, \ function fdht_client_heart_beat (line 448) | int fdht_client_heart_beat(FDHTServerInfo *pServer) FILE: storage/fdht_client/fdht_proto_types.h type fdht_pkg_size_t (line 38) | typedef int fdht_pkg_size_t; type FDHTProtoHeader (line 72) | typedef struct FILE: storage/fdht_client/fdht_types.h type FDHTKeyInfo (line 53) | typedef struct type FDHTObjectInfo (line 63) | typedef struct type FDHTSubKey (line 71) | typedef struct type FDHTKeyValuePair (line 77) | typedef struct type FDHTServerInfo (line 86) | typedef struct type FDHTGroupServer (line 93) | typedef struct type FDHTServerStat (line 102) | typedef struct { type ServerArray (line 113) | typedef struct type GroupArray (line 119) | typedef struct FILE: storage/file_id_hashtable.c type FileIdInfo (line 22) | typedef struct file_id_info { type FileIdHashtable (line 32) | typedef struct { type FileIdSharedLockArray (line 40) | typedef struct { type FileIdHTableContext (line 45) | typedef struct { function file_id_hashtable_init (line 63) | int file_id_hashtable_init() function file_id_hashtable_destroy (line 122) | void file_id_hashtable_destroy() function file_id_hashtable_add (line 159) | int file_id_hashtable_add(const string_t *file_id) function file_id_hashtable_del (line 241) | static int file_id_hashtable_del(FileIdInfo *finfo) function clear_expired_file_id_func (line 285) | static int clear_expired_file_id_func(void *args) FILE: storage/storage_bulk_import.c function storage_bulk_import_init (line 43) | int storage_bulk_import_init() function storage_bulk_import_destroy (line 54) | void storage_bulk_import_destroy() function storage_validate_file_path (line 64) | int storage_validate_file_path(const char *file_path, function calculate_crc32_for_file (line 106) | static uint32_t calculate_crc32_for_file(const char *file_path, int64_t ... function storage_calculate_file_metadata (line 146) | int storage_calculate_file_metadata(const char *file_path, function storage_generate_file_id (line 200) | int storage_generate_file_id(BulkImportFileInfo *file_info, function storage_get_full_file_path (line 241) | int storage_get_full_file_path(int store_path_index, const char *file_id, function storage_check_available_space (line 273) | bool storage_check_available_space(int store_path_index, int64_t require... function copy_file_content (line 293) | static int copy_file_content(const char *src_path, const char *dest_path... function storage_transfer_file_to_storage (line 363) | int storage_transfer_file_to_storage(BulkImportFileInfo *file_info, int ... function storage_update_index_for_bulk_file (line 446) | int storage_update_index_for_bulk_file(BulkImportFileInfo *file_info) function storage_register_bulk_file (line 459) | int storage_register_bulk_file(BulkImportContext *context, BulkImportFil... FILE: storage/storage_bulk_import.h type BulkImportFileInfo (line 52) | typedef struct { type BulkImportContext (line 68) | typedef struct { FILE: storage/storage_dio.c type storage_dio_context (line 35) | struct storage_dio_context function storage_dio_init (line 41) | int storage_dio_init() function storage_dio_terminate (line 149) | void storage_dio_terminate() function storage_dio_queue_push (line 161) | int storage_dio_queue_push(struct fast_task_info *pTask) function storage_dio_get_thread_index (line 180) | int storage_dio_get_thread_index(struct fast_task_info *pTask, \ function dio_delete_normal_file (line 212) | int dio_delete_normal_file(struct fast_task_info *pTask) function dio_delete_trunk_file (line 232) | int dio_delete_trunk_file(struct fast_task_info *pTask) function dio_discard_file (line 249) | int dio_discard_file(struct fast_task_info *pTask) function dio_open_file (line 268) | int dio_open_file(StorageFileContext *pFileContext) function dio_read_file (line 313) | int dio_read_file(struct fast_task_info *pTask) function dio_write_file (line 406) | int dio_write_file(struct fast_task_info *pTask) function dio_truncate_file (line 538) | int dio_truncate_file(struct fast_task_info *pTask) function dio_read_finish_clean_up (line 607) | void dio_read_finish_clean_up(struct fast_task_info *pTask) function dio_write_finish_clean_up (line 619) | void dio_write_finish_clean_up(struct fast_task_info *pTask) function dio_append_finish_clean_up (line 646) | void dio_append_finish_clean_up(struct fast_task_info *pTask) function dio_modify_finish_clean_up (line 686) | void dio_modify_finish_clean_up(struct fast_task_info *pTask) function dio_trunk_write_finish_clean_up (line 709) | void dio_trunk_write_finish_clean_up(struct fast_task_info *pTask) function dio_thread_deal_task (line 734) | static void dio_thread_deal_task(struct fast_task_info *head) type storage_dio_context (line 756) | struct storage_dio_context type fast_task_info (line 757) | struct fast_task_info type storage_dio_context (line 759) | struct storage_dio_context function dio_check_trunk_file_when_upload (line 787) | int dio_check_trunk_file_when_upload(struct fast_task_info *pTask) function dio_check_trunk_file_when_sync (line 818) | int dio_check_trunk_file_when_sync(struct fast_task_info *pTask) function dio_check_trunk_file_ex (line 826) | int dio_check_trunk_file_ex(int fd, const char *filename, const int64_t ... function dio_write_chunk_header (line 876) | int dio_write_chunk_header(struct fast_task_info *pTask) FILE: storage/storage_dio.h type storage_dio_context (line 22) | struct storage_dio_context type storage_dio_thread_data (line 30) | struct storage_dio_thread_data type fast_task_info (line 50) | struct fast_task_info type fast_task_info (line 52) | struct fast_task_info type fast_task_info (line 54) | struct fast_task_info type fast_task_info (line 55) | struct fast_task_info type fast_task_info (line 56) | struct fast_task_info type fast_task_info (line 57) | struct fast_task_info type fast_task_info (line 58) | struct fast_task_info type fast_task_info (line 59) | struct fast_task_info type fast_task_info (line 61) | struct fast_task_info type fast_task_info (line 62) | struct fast_task_info type fast_task_info (line 63) | struct fast_task_info type fast_task_info (line 64) | struct fast_task_info type fast_task_info (line 65) | struct fast_task_info type fast_task_info (line 70) | struct fast_task_info type fast_task_info (line 71) | struct fast_task_info type fast_task_info (line 72) | struct fast_task_info FILE: storage/storage_disk_recovery.c type FDFSTrunkFileIdInfo (line 40) | typedef struct { type RecoveryThreadData (line 46) | typedef struct recovery_thread_data { function storage_do_fetch_binlog (line 150) | static int storage_do_fetch_binlog(ConnectionInfo *pSrcStorage, \ function recovery_get_src_storage_server (line 226) | static int recovery_get_src_storage_server(ConnectionInfo *pSrcStorage) function storage_disk_recovery_delete_thread_files (line 432) | static int storage_disk_recovery_delete_thread_files(const string_t *bas... function storage_disk_recovery_finish (line 479) | static int storage_disk_recovery_finish(const string_t *base_path) function do_write_to_flag_file (line 501) | static int do_write_to_flag_file(const char *flag_filename, function do_write_to_mark_file (line 532) | static int do_write_to_mark_file(const char *mark_filename, function recovery_write_to_mark_file (line 548) | static inline int recovery_write_to_mark_file(StorageBinLogReader *pReader) function recovery_init_global_binlog_file (line 554) | static int recovery_init_global_binlog_file(const string_t *base_path) function recovery_init_flag_file (line 567) | static int recovery_init_flag_file(const string_t *base_path, function recovery_load_params_from_flag_file (line 577) | static int recovery_load_params_from_flag_file(const char *full_flag_fil... function recovery_reader_init (line 625) | static int recovery_reader_init(const RecoveryThreadData *pThreadData, function recovery_reader_check_init (line 685) | static int recovery_reader_check_init(const RecoveryThreadData *pThreadD... function recovery_download_file_to_local (line 696) | static int recovery_download_file_to_local(StorageBinLogRecord *pRecord, function storage_do_recovery (line 778) | static int storage_do_recovery(RecoveryThreadData *pThreadData, function storage_disk_recovery_old_version_migrate (line 1062) | static int storage_disk_recovery_old_version_migrate(const string_t *bas... function do_dispatch_binlog_for_threads (line 1127) | static int do_dispatch_binlog_for_threads(const string_t *base_path) function storage_disk_recovery_dispatch_binlog_for_threads (line 1282) | static int storage_disk_recovery_dispatch_binlog_for_threads( function storage_disk_recovery_do_restore (line 1355) | static int storage_disk_recovery_do_restore(const string_t *base_path) function storage_disk_recovery_check_restore (line 1505) | int storage_disk_recovery_check_restore(const string_t *base_path) function storage_compare_trunk_id_info (line 1535) | static int storage_compare_trunk_id_info(void *p1, void *p2) function tree_write_file_walk_callback (line 1549) | static int tree_write_file_walk_callback(void *data, void *args) function disk_recovery_write_to_binlog (line 1569) | static int disk_recovery_write_to_binlog(FILE *fp, function storage_do_split_trunk_binlog (line 1609) | static int storage_do_split_trunk_binlog(const int store_path_index, function storage_disk_recovery_split_trunk_binlog (line 1770) | static int storage_disk_recovery_split_trunk_binlog(const int store_path... function storage_disk_recovery_prepare (line 1797) | int storage_disk_recovery_prepare(const int store_path_index) FILE: storage/storage_dump.c function fdfs_dump_global_vars (line 27) | static int fdfs_dump_global_vars(char *buff, const int buffSize) function fdfs_dump_tracker_servers (line 241) | static int fdfs_dump_tracker_servers(char *buff, const int buffSize) function fdfs_dump_storage_servers (line 273) | static int fdfs_dump_storage_servers(char *buff, const int buffSize) function fdfs_dump_storage_stat (line 310) | static int fdfs_dump_storage_stat(char *buff, const int buffSize) function fdfs_dump_storage_global_vars_to_file (line 386) | int fdfs_dump_storage_global_vars_to_file(const char *filename) FILE: storage/storage_func.c type FDFSStorePathMarkInfo (line 277) | typedef struct function storage_do_get_group_name (line 289) | static int storage_do_get_group_name(ConnectionInfo *pTrackerServer) function storage_get_group_name_from_tracker (line 337) | static int storage_get_group_name_from_tracker() function get_my_server_id_by_local_ip (line 370) | static int get_my_server_id_by_local_ip() function tracker_get_my_server_id (line 393) | static int tracker_get_my_server_id(const char *conf_filename, function load_from_stat_file (line 498) | static int load_from_stat_file() function storage_write_to_stat_file (line 627) | int storage_write_to_stat_file() function storage_write_to_sync_ini_file (line 952) | int storage_write_to_sync_ini_file() function storage_check_and_make_global_data_path (line 1100) | int storage_check_and_make_global_data_path() function storage_load_store_path_marks (line 1126) | static int storage_load_store_path_marks(IniContext *pIniContext) function storage_generate_store_path_mark (line 1158) | static int storage_generate_store_path_mark(const int store_path_index) function storage_check_store_path_mark (line 1220) | static int storage_check_store_path_mark(const int store_path_index, function storage_check_and_make_data_dirs (line 1391) | static int storage_check_and_make_data_dirs() function storage_make_data_dirs (line 1576) | static int storage_make_data_dirs(const string_t *base_path, bool *pathC... function storage_load_paths (line 1728) | static int storage_load_paths(IniContext *pItemContext, function storage_set_access_log_header (line 1743) | void storage_set_access_log_header(struct log_context *pContext) function storage_check_tracker_ipaddr (line 1752) | static int storage_check_tracker_ipaddr(const char *filename) function init_my_result_per_tracker (line 1781) | static int init_my_result_per_tracker() function access_log_config_to_string (line 1814) | static void access_log_config_to_string(char *output, const int size) function storage_func_init (line 1828) | int storage_func_init(const char *filename) function storage_func_destroy (line 2465) | int storage_func_destroy() function storage_server_is_myself (line 2502) | bool storage_server_is_myself(const FDFSStorageBrief *pStorageBrief) function storage_id_is_myself (line 2514) | bool storage_id_is_myself(const char *storage_id) function storage_get_my_ip_from_tracker (line 2526) | static int storage_get_my_ip_from_tracker(ConnectionInfo *conn, function storage_set_tracker_client_ips (line 2567) | int storage_set_tracker_client_ips(ConnectionInfo *conn, function storage_logic_to_local_full_filename (line 2636) | int storage_logic_to_local_full_filename(const char *logic_filename, FILE: storage/storage_global.c type storage_dio_thread_data (line 101) | struct storage_dio_thread_data function storage_cmp_by_server_id (line 105) | int storage_cmp_by_server_id(const void *p1, const void *p2) function storage_insert_ip_addr_to_multi_ips (line 112) | int storage_insert_ip_addr_to_multi_ips(FDFSMultiIP *multi_ip, FILE: storage/storage_global.h type StorageAccessLogContext (line 41) | typedef struct storage_access_log_context { type storage_dio_thread_data (line 139) | struct storage_dio_thread_data FILE: storage/storage_ip_changed_dealer.c function storage_do_changelog_req (line 31) | static int storage_do_changelog_req(ConnectionInfo *pTrackerServer) function storage_report_ip_changed (line 62) | static int storage_report_ip_changed(ConnectionInfo *pTrackerServer) function storage_get_my_tracker_client_ip (line 122) | int storage_get_my_tracker_client_ip() function storage_report_storage_ip_addr (line 197) | static int storage_report_storage_ip_addr() function storage_changelog_req (line 284) | int storage_changelog_req() function storage_check_ip_changed (line 356) | int storage_check_ip_changed() FILE: storage/storage_param_getter.c function storage_convert_src_server_id (line 34) | static int storage_convert_src_server_id() function storage_get_params_from_tracker (line 69) | int storage_get_params_from_tracker() FILE: storage/storage_service.c type StorageFileInfoForCRC32 (line 97) | typedef struct type fast_mblock_man (line 107) | struct fast_mblock_man type fast_task_info (line 117) | struct fast_task_info type fast_task_info (line 119) | struct fast_task_info type fast_task_info (line 124) | struct fast_task_info type fast_task_info (line 130) | struct fast_task_info type fast_task_info (line 135) | struct fast_task_info type SourceFileInfo (line 175) | typedef struct type TrunkCreateLinkArg (line 182) | typedef struct type fast_task_info (line 188) | struct fast_task_info type fast_task_info (line 195) | struct fast_task_info function FDFSStorageServer (line 198) | static FDFSStorageServer *get_storage_server(const char *storage_server_id) function storage_log_access_log (line 289) | static void storage_log_access_log(struct fast_task_info *pTask, \ function storage_delete_file_auto (line 377) | static int storage_delete_file_auto(StorageFileContext *pFileContext) function storage_is_slave_file (line 397) | static bool storage_is_slave_file(const char *remote_filename, \ function storage_delete_file_log_error (line 428) | static void storage_delete_file_log_error(struct fast_task_info *pTask, \ function storage_sync_delete_file_log_error (line 441) | static void storage_sync_delete_file_log_error(struct fast_task_info *pT... function storage_sync_delete_file_done_callback (line 466) | static void storage_sync_delete_file_done_callback( \ function storage_sync_truncate_file_done_callback (line 505) | static void storage_sync_truncate_file_done_callback( \ function storage_sync_copy_file_rename_filename (line 546) | static int storage_sync_copy_file_rename_filename( function storage_sync_copy_file_done_callback (line 575) | static void storage_sync_copy_file_done_callback(struct fast_task_info *... function storage_sync_modify_file_done_callback (line 652) | static void storage_sync_modify_file_done_callback( \ function storage_get_metadata_done_callback (line 729) | static void storage_get_metadata_done_callback(struct fast_task_info *pT... function storage_download_file_done_callback (line 761) | static void storage_download_file_done_callback( \ function storage_do_delete_meta_file (line 800) | static int storage_do_delete_meta_file(struct fast_task_info *pTask) function storage_delete_fdfs_file_done_callback (line 1103) | static void storage_delete_fdfs_file_done_callback( \ function storage_upload_file_done_callback (line 1185) | static void storage_upload_file_done_callback(struct fast_task_info *pTa... function storage_server_get_logic_filename (line 1278) | static int storage_server_get_logic_filename(const int store_path_index, function storage_trunk_create_link_file_done_callback (line 1306) | static void storage_trunk_create_link_file_done_callback( \ function storage_append_file_done_callback (line 1401) | static void storage_append_file_done_callback(struct fast_task_info *pTa... function storage_modify_file_done_callback (line 1478) | static void storage_modify_file_done_callback(struct fast_task_info *pTa... function storage_do_truncate_file_done_callback (line 1555) | static void storage_do_truncate_file_done_callback(struct fast_task_info... function storage_set_metadata_done_callback (line 1626) | static void storage_set_metadata_done_callback( \ function storage_set_body_length (line 1682) | int storage_set_body_length(struct fast_task_info *pTask) function sock_accept_done_callback (line 1715) | static int sock_accept_done_callback(struct fast_task_info *task, function sock_send_done_callback (line 1734) | static int sock_send_done_callback(struct fast_task_info *pTask, function storage_clear_task (line 1788) | static void storage_clear_task(struct fast_task_info *pTask) function storage_service_init (line 1801) | int storage_service_init() function storage_service_destroy (line 1831) | void storage_service_destroy() function storage_get_storage_path_index (line 1835) | int storage_get_storage_path_index(int *store_path_index) function storage_get_store_path (line 1898) | void storage_get_store_path(const char *filename, const int filename_len, \ function storage_gen_filename (line 1953) | static int storage_gen_filename(StorageClientInfo *pClientInfo, function storage_sort_metadata_buff (line 2023) | static int storage_sort_metadata_buff(char *meta_buff, const int meta_size) function storage_format_ext_name (line 2045) | static void storage_format_ext_name(const char *file_ext_name, function storage_get_filename_ex (line 2078) | static int storage_get_filename_ex(StorageClientInfo *pClientInfo, function storage_client_create_link_wrapper (line 2141) | static int storage_client_create_link_wrapper(struct fast_task_info *pTa... function storage_service_upload_file_done (line 2254) | static int storage_service_upload_file_done(struct fast_task_info *pTask) function storage_nio_notify (line 2653) | static int storage_nio_notify(struct fast_task_info *pTask, const int st... function calc_crc32_continue_callback (line 2677) | static int calc_crc32_continue_callback(struct fast_task_info *pTask, function storage_trunk_do_create_link (line 2684) | static int storage_trunk_do_create_link(struct fast_task_info *pTask, function storage_trunk_create_link (line 2722) | static int storage_trunk_create_link(struct fast_task_info *pTask, \ function storage_service_do_create_link (line 2772) | static int storage_service_do_create_link(struct fast_task_info *pTask, \ function storage_set_link_file_meta (line 2838) | static int storage_set_link_file_meta(struct fast_task_info *pTask, \ function storage_do_set_metadata (line 2917) | static int storage_do_set_metadata(struct fast_task_info *pTask) function storage_server_set_metadata (line 3136) | static int storage_server_set_metadata(struct fast_task_info *pTask) function storage_server_report_server_id (line 3309) | static int storage_server_report_server_id(struct fast_task_info *pTask) function storage_server_trunk_sync_binlog (line 3351) | static int storage_server_trunk_sync_binlog(struct fast_task_info *pTask) function query_file_info_response (line 3394) | static int query_file_info_response(struct fast_task_info *pTask, function calc_crc32_done_callback_for_query_finfo (line 3438) | static void calc_crc32_done_callback_for_query_finfo( function push_calc_crc32_to_dio_queue (line 3477) | static int push_calc_crc32_to_dio_queue(struct fast_task_info *pTask, function query_file_info_deal_response (line 3510) | static int query_file_info_deal_response(struct fast_task_info *pTask, function storage_server_query_file_info (line 3565) | static int storage_server_query_file_info(struct fast_task_info *pTask) function storage_server_trunk_alloc_space (line 3798) | static int storage_server_trunk_alloc_space(struct fast_task_info *pTask) function storage_server_trunk_get_binlog_size (line 3881) | static int storage_server_trunk_get_binlog_size(struct fast_task_info *p... function storage_server_trunk_truncate_binlog_file (line 3932) | static int storage_server_trunk_truncate_binlog_file(struct fast_task_in... function storage_server_trunk_delete_binlog_marks (line 3973) | static int storage_server_trunk_delete_binlog_marks(struct fast_task_inf... function storage_server_trunk_confirm_or_free (line 4031) | static int storage_server_trunk_confirm_or_free(struct fast_task_info *p... function storage_server_fetch_one_path_binlog_dealer (line 4100) | static int storage_server_fetch_one_path_binlog_dealer( function fetch_one_path_binlog_finish_clean_up (line 4366) | static void fetch_one_path_binlog_finish_clean_up(struct fast_task_info ... function storage_server_do_fetch_one_path_binlog (line 4398) | static int storage_server_do_fetch_one_path_binlog( function storage_server_fetch_one_path_binlog (line 4461) | static int storage_server_fetch_one_path_binlog(struct fast_task_info *p... function storage_upload_file (line 4517) | static int storage_upload_file(struct fast_task_info *pTask, bool bAppen... function storage_deal_active_test (line 4721) | static int storage_deal_active_test(struct fast_task_info *pTask) function storage_server_check_appender_file (line 4743) | static int storage_server_check_appender_file(struct fast_task_info *pTask, function calc_crc32_done_callback_for_regenerate (line 4828) | static void calc_crc32_done_callback_for_regenerate( function storage_server_regenerate_appender_filename (line 4968) | static int storage_server_regenerate_appender_filename(struct fast_task_... function storage_append_file (line 5030) | static int storage_append_file(struct fast_task_info *pTask) function storage_modify_file (line 5136) | static int storage_modify_file(struct fast_task_info *pTask) function storage_do_truncate_file (line 5263) | static int storage_do_truncate_file(struct fast_task_info *pTask) function storage_upload_slave_file (line 5443) | static int storage_upload_slave_file(struct fast_task_info *pTask) function storage_sync_copy_file (line 5679) | static int storage_sync_copy_file(struct fast_task_info *pTask, \ function set_fname2log_for_modify (line 5997) | static inline void set_fname2log_for_modify( function storage_sync_append_file (line 6041) | static int storage_sync_append_file(struct fast_task_info *pTask) function storage_sync_modify_file (line 6260) | static int storage_sync_modify_file(struct fast_task_info *pTask) function storage_sync_truncate_file (line 6452) | static int storage_sync_truncate_file(struct fast_task_info *pTask) function storage_do_sync_link_file (line 6629) | static int storage_do_sync_link_file(struct fast_task_info *pTask) function storage_sync_link_file (line 6883) | static int storage_sync_link_file(struct fast_task_info *pTask) function storage_sync_rename_file (line 6981) | static int storage_sync_rename_file(struct fast_task_info *pTask) function storage_server_get_metadata (line 7117) | static int storage_server_get_metadata(struct fast_task_info *pTask) function storage_server_download_file (line 7248) | static int storage_server_download_file(struct fast_task_info *pTask) function storage_do_delete_file (line 7430) | static int storage_do_delete_file(struct fast_task_info *pTask, \ function storage_read_from_file (line 7457) | static int storage_read_from_file(struct fast_task_info *pTask, \ function storage_write_to_file (line 7507) | static int storage_write_to_file(struct fast_task_info *pTask, \ function storage_sync_delete_file (line 7564) | static int storage_sync_delete_file(struct fast_task_info *pTask) function storage_server_delete_file (line 7693) | static int storage_server_delete_file(struct fast_task_info *pTask) function storage_create_link_core (line 7918) | static int storage_create_link_core(struct fast_task_info *pTask, \ function storage_do_create_link (line 8139) | static int storage_do_create_link(struct fast_task_info *pTask) function storage_create_link (line 8335) | static int storage_create_link(struct fast_task_info *pTask) function fdfs_stat_file_sync_func (line 8405) | int fdfs_stat_file_sync_func(void *args) function storage_deal_task (line 8439) | static int storage_deal_task(struct fast_task_info *pTask, const int stage) FILE: storage/storage_sync.c type storage_dispatch_context (line 117) | struct storage_dispatch_context type StorageSyncTaskInfo (line 118) | typedef struct { type StorageSyncTaskArray (line 131) | typedef struct { type StorageDispatchContext (line 137) | typedef struct storage_dispatch_context { type fc_list_head (line 160) | struct fc_list_head function storage_sync_copy_file (line 185) | static int storage_sync_copy_file(ConnectionInfo *pStorageServer, function storage_sync_modify_file (line 406) | static int storage_sync_modify_file(ConnectionInfo *pStorageServer, \ function storage_sync_truncate_file (line 577) | static int storage_sync_truncate_file(ConnectionInfo *pStorageServer, \ function storage_sync_delete_file (line 719) | static int storage_sync_delete_file(ConnectionInfo *pStorageServer, \ function storage_report_my_server_id (line 794) | static int storage_report_my_server_id(ConnectionInfo *pStorageServer) function storage_sync_link_file (line 841) | static int storage_sync_link_file(ConnectionInfo *pStorageServer, \ function storage_sync_rename_file (line 1082) | static int storage_sync_rename_file(ConnectionInfo *pStorageServer, function storage_check_need_sync (line 1195) | static int storage_check_need_sync(StorageBinLogReader *pReader, function storage_sync_data (line 1232) | static int storage_sync_data(StorageBinLogReader *pReader, function sync_data_func (line 1318) | static void sync_data_func(StorageSyncTaskInfo *task, void *thread_data) function storage_batch_sync_data (line 1339) | static int storage_batch_sync_data(StorageDispatchContext *dispatch_ctx) function write_to_binlog_index (line 1421) | static int write_to_binlog_index(const int binlog_index) function get_binlog_index_from_file_old (line 1478) | static int get_binlog_index_from_file_old() function get_binlog_index_from_file (line 1521) | static int get_binlog_index_from_file() function open_next_writable_binlog (line 1637) | static int open_next_writable_binlog() function storage_sync_init (line 1681) | int storage_sync_init() function storage_sync_destroy (line 1789) | int storage_sync_destroy() function kill_storage_sync_threads (line 1817) | int kill_storage_sync_threads() function fdfs_binlog_sync_func (line 1854) | int fdfs_binlog_sync_func(void *args) function storage_binlog_fsync (line 1866) | static int storage_binlog_fsync(const bool bNeedLock) function storage_binlog_write_ex (line 1944) | int storage_binlog_write_ex(const time_t timestamp, const char op_type, function get_binlog_flag_file (line 1997) | static void get_binlog_flag_file(const char *filepath, function uncompress_binlog_file (line 2048) | static int uncompress_binlog_file(StorageBinLogReader *pReader, function compress_binlog_file (line 2124) | static int compress_binlog_file(const char *filename) function storage_open_readable_binlog (line 2196) | int storage_open_readable_binlog(StorageBinLogReader *pReader, \ function storage_report_storage_status (line 2334) | int storage_report_storage_status(const char *storage_id, \ function storage_reader_sync_init_req (line 2437) | static int storage_reader_sync_init_req(StorageBinLogReader *pReader) function storage_reader_init (line 2543) | int storage_reader_init(FDFSStorageBrief *pStorage, function storage_reader_destroy (line 2748) | void storage_reader_destroy(StorageBinLogReader *pReader) function storage_write_to_mark_file (line 2765) | static int storage_write_to_mark_file(StorageBinLogReader *pReader) function rewind_to_prev_rec_end_ex (line 2853) | static int rewind_to_prev_rec_end_ex(StorageBinLogReader *pReader, function rewind_to_prev_rec_end (line 2870) | static inline int rewind_to_prev_rec_end(StorageBinLogReader *pReader) function storage_binlog_preread (line 2875) | static int storage_binlog_preread(StorageBinLogReader *pReader) function storage_binlog_do_line_read (line 2923) | static int storage_binlog_do_line_read(StorageBinLogReader *pReader, function storage_binlog_read_line (line 2963) | static int storage_binlog_read_line(StorageBinLogReader *pReader, \ function storage_binlog_read (line 2985) | int storage_binlog_read(StorageBinLogReader *pReader, function storage_binlog_reader_skip (line 3115) | static int storage_binlog_reader_skip(StorageBinLogReader *pReader) function storage_check_conflict (line 3155) | static inline int storage_check_conflict( function storage_binlog_rewind_buff (line 3204) | static inline void storage_binlog_rewind_buff(StorageBinLogReader *pReader, function storage_binlog_batch_read (line 3211) | static int storage_binlog_batch_read(StorageDispatchContext *dispatch_ctx) function storage_unlink_mark_file (line 3325) | int storage_unlink_mark_file(const char *storage_id) function storage_rename_mark_file (line 3358) | int storage_rename_mark_file(const char *old_ip_addr, const int old_port, \ function storage_sync_get_start_end_times (line 3395) | static void storage_sync_get_start_end_times(time_t current_time, \ function storage_sync_thread_exit (line 3428) | static void storage_sync_thread_exit(const FDFSStorageBrief *pStorage) function init_task_array (line 3478) | static int init_task_array(StorageDispatchContext *dispatch_ctx, function init_dispatch_ctx (line 3506) | static int init_dispatch_ctx(StorageDispatchContext *dispatch_ctx, function dispatch_ctx_close (line 3535) | static void dispatch_ctx_close(StorageDispatchContext *dispatch_ctx) function storage_sync_thread_start (line 3868) | int storage_sync_thread_start(const FDFSStorageBrief *pStorage) function storage_reader_add_to_list (line 3956) | void storage_reader_add_to_list(StorageBinLogReader *pReader) function storage_reader_remove_from_list (line 3963) | void storage_reader_remove_from_list(StorageBinLogReader *pReader) function calc_compress_until_binlog_index (line 3970) | static int calc_compress_until_binlog_index() function fdfs_binlog_compress_func (line 3991) | int fdfs_binlog_compress_func(void *args) FILE: storage/storage_sync.h type StorageBinLogReader (line 41) | typedef struct type StorageBinLogRecord (line 61) | typedef struct FILE: storage/storage_sync_func.c function storage_sync_connect_storage_server_ex (line 48) | int storage_sync_connect_storage_server_ex(const char *module_name, FILE: storage/storage_sync_func.h function storage_sync_connect_storage_server_always (line 24) | static inline int storage_sync_connect_storage_server_always( function storage_sync_connect_storage_server_once (line 33) | static inline int storage_sync_connect_storage_server_once( FILE: storage/storage_types.h type fast_task_info (line 34) | struct fast_task_info type fast_task_info (line 37) | struct fast_task_info type fast_task_info (line 39) | struct fast_task_info type fast_task_info (line 42) | struct fast_task_info type fast_task_info (line 45) | struct fast_task_info type fast_task_info (line 48) | struct fast_task_info type fast_task_info (line 49) | struct fast_task_info type FDFSStorageServer (line 57) | typedef struct type StorageStatusPerTracker (line 63) | typedef struct type StorageUploadInfo (line 72) | typedef struct type StorageSetMetaInfo (line 88) | typedef struct type StorageFileContext (line 95) | typedef struct type StorageClientInfo (line 137) | typedef struct FILE: storage/tracker_client_thread.c function tracker_report_init (line 69) | int tracker_report_init() function tracker_report_destroy (line 83) | int tracker_report_destroy() function kill_tracker_report_threads (line 99) | int kill_tracker_report_threads() function thracker_report_thread_exit (line 130) | static void thracker_report_thread_exit(TrackerServerInfo *pTrackerServer) function tracker_unlink_mark_files (line 178) | static int tracker_unlink_mark_files(const char *storage_id) function tracker_rename_mark_files (line 188) | static int tracker_rename_mark_files(const char *old_ip_addr, \ function tracker_insert_into_sorted_servers (line 571) | static bool tracker_insert_into_sorted_servers( \ function tracker_sync_diff_servers (line 606) | int tracker_sync_diff_servers(ConnectionInfo *pTrackerServer, \ function tracker_report_storage_status (line 672) | int tracker_report_storage_status(ConnectionInfo *pTrackerServer, \ function tracker_start_sync_threads (line 728) | static int tracker_start_sync_threads(const FDFSStorageBrief *pStorage) function tracker_check_my_status (line 749) | static void tracker_check_my_status(const int tracker_index) function tracker_merge_servers (line 788) | static int tracker_merge_servers(ConnectionInfo *pTrackerServer, function _notify_reselect_tleader (line 1051) | static int _notify_reselect_tleader(ConnectionInfo *conn) function notify_reselect_tracker_leader (line 1094) | static int notify_reselect_tracker_leader(TrackerServerInfo *pTrackerSer... function check_my_status_for_all_trackers (line 1110) | static void check_my_status_for_all_trackers() function set_tracker_leader (line 1125) | static void set_tracker_leader(const int leader_index) function get_tracker_leader (line 1172) | static void get_tracker_leader() function set_trunk_server (line 1202) | static void set_trunk_server(const char *ip_addr, const int port) function do_set_trunk_server_myself (line 1231) | static int do_set_trunk_server_myself(ConnectionInfo *pTrackerServer) function do_unset_trunk_server_myself (line 1277) | static void do_unset_trunk_server_myself(ConnectionInfo *pTrackerServer) function tracker_check_response (line 1297) | static int tracker_check_response(ConnectionInfo *pTrackerServer, function tracker_sync_src_req (line 1587) | int tracker_sync_src_req(ConnectionInfo *pTrackerServer, \ function tracker_sync_dest_req (line 1657) | static int tracker_sync_dest_req(ConnectionInfo *pTrackerServer) function tracker_sync_dest_query (line 1712) | static int tracker_sync_dest_query(ConnectionInfo *pTrackerServer) function tracker_report_trunk_fid (line 1768) | static int tracker_report_trunk_fid(ConnectionInfo *pTrackerServer) function tracker_report_trunk_free_space (line 1815) | static int tracker_report_trunk_free_space(ConnectionInfo *pTrackerServer) function tracker_fetch_trunk_fid (line 1861) | static int tracker_fetch_trunk_fid(ConnectionInfo *pTrackerServer) function tracker_sync_notify (line 1931) | static int tracker_sync_notify(ConnectionInfo *pTrackerServer, const int... function tracker_report_join (line 2001) | int tracker_report_join(ConnectionInfo *pTrackerServer, function tracker_report_sync_timestamp (line 2150) | static int tracker_report_sync_timestamp(ConnectionInfo *pTrackerServer, function tracker_report_df_stat (line 2200) | static int tracker_report_df_stat(ConnectionInfo *pTrackerServer, function tracker_heart_beat (line 2316) | static int tracker_heart_beat(ConnectionInfo *pTrackerServer, function tracker_storage_change_status (line 2448) | static int tracker_storage_change_status(ConnectionInfo *pTrackerServer, function tracker_storage_changelog_req (line 2526) | static int tracker_storage_changelog_req(ConnectionInfo *pTrackerServer) function tracker_deal_changelog_response (line 2553) | int tracker_deal_changelog_response(ConnectionInfo *pTrackerServer) function tracker_report_thread_start (line 2674) | int tracker_report_thread_start() FILE: storage/trunk_mgr/trunk_client.c function trunk_client_trunk_do_alloc_space (line 31) | static int trunk_client_trunk_do_alloc_space(ConnectionInfo *pTrunkServe... function trunk_client_connect_trunk_server (line 96) | static int trunk_client_connect_trunk_server(TrackerServerInfo *trunk_se... function trunk_client_trunk_alloc_space (line 129) | int trunk_client_trunk_alloc_space(const int file_size, \ function trunk_client_trunk_confirm_or_free (line 162) | static int trunk_client_trunk_confirm_or_free(ConnectionInfo *pTrunkServ... function trunk_client_trunk_alloc_confirm (line 222) | int trunk_client_trunk_alloc_confirm(const FDFSTrunkFullInfo *pTrunkInfo, \ function trunk_client_trunk_free_space (line 247) | int trunk_client_trunk_free_space(const FDFSTrunkFullInfo *pTrunkInfo) FILE: storage/trunk_mgr/trunk_free_block_checker.c function storage_trunk_node_compare_entry (line 35) | static int storage_trunk_node_compare_entry(void *p1, void *p2) function trunk_free_block_checker_init (line 42) | int trunk_free_block_checker_init() function trunk_free_block_checker_destroy (line 58) | void trunk_free_block_checker_destroy() function trunk_free_block_tree_node_count (line 63) | int trunk_free_block_tree_node_count() function block_tree_count_walk_callback (line 68) | static int block_tree_count_walk_callback(void *data, void *args) function trunk_free_block_total_count (line 77) | int trunk_free_block_total_count() function trunk_free_block_check_duplicate (line 90) | int trunk_free_block_check_duplicate(FDFSTrunkFullInfo *pTrunkInfo) function trunk_free_block_realloc (line 205) | static int trunk_free_block_realloc(FDFSBlockArray *pArray, const int ne... function trunk_free_block_do_insert (line 228) | static int trunk_free_block_do_insert(FDFSTrunkFullInfo *pTrunkInfo, \ function trunk_free_block_insert (line 310) | int trunk_free_block_insert(FDFSTrunkFullInfo *pTrunkInfo) function trunk_free_block_delete (line 351) | int trunk_free_block_delete(FDFSTrunkFullInfo *pTrunkInfo) function block_tree_print_walk_callback (line 449) | static int block_tree_print_walk_callback(void *data, void *args) function trunk_free_block_tree_print (line 525) | int trunk_free_block_tree_print(const char *filename) FILE: storage/trunk_mgr/trunk_free_block_checker.h type FDFSTrunkFileIdentifier (line 27) | typedef struct { type FDFSBlockArray (line 32) | typedef struct { type FDFSTrunksById (line 38) | typedef struct { FILE: storage/trunk_mgr/trunk_mem.c type fast_mblock_man (line 81) | struct fast_mblock_man type fast_mblock_man (line 82) | struct fast_mblock_man function trunk_mem_binlog_write (line 107) | static int trunk_mem_binlog_write(const int timestamp, const char op_type, function storage_trunk_node_compare_size (line 122) | static int storage_trunk_node_compare_size(void *p1, void *p2) function storage_trunk_node_compare_offset (line 127) | static int storage_trunk_node_compare_offset(void *p1, void *p2) function storage_trunk_init (line 183) | int storage_trunk_init() function storage_trunk_destroy_ex (line 290) | int storage_trunk_destroy_ex(const bool bNeedSleep, function storage_trunk_get_binlog_size (line 345) | static int64_t storage_trunk_get_binlog_size() type trunk_info_array (line 369) | struct trunk_info_array { type walk_callback_args (line 375) | struct walk_callback_args { function trunk_alloc_trunk_array (line 385) | static int trunk_alloc_trunk_array(struct trunk_info_array *trunk_array) function trunk_merge_add_to_array (line 426) | static inline int trunk_merge_add_to_array(struct trunk_info_array function save_one_trunk (line 442) | static inline int save_one_trunk(BufferedFileWriter *writer, function tree_walk_callback_to_file (line 461) | static int tree_walk_callback_to_file(void *data, void *args) function tree_walk_callback_to_list (line 485) | static int tree_walk_callback_to_list(void *data, void *args) function trunk_compare_id_offset (line 510) | static int trunk_compare_id_offset(const void *p1, const void *p2) function trunk_compare_path_and_id (line 535) | static int trunk_compare_path_and_id(const FDFSTrunkFullInfo *pTrunkInfo1, type TrunkMergeStat (line 550) | typedef struct trunk_merge_stat function trunk_merge_spaces (line 559) | static int trunk_merge_spaces(FDFSTrunkFullInfo **ppMergeFirst, function trunk_save_merged_spaces (line 646) | static int trunk_save_merged_spaces(struct walk_callback_args *pCallback... function trunk_open_file_writers (line 739) | static int trunk_open_file_writers(struct walk_callback_args *pCallbackA... function trunk_rename_writers_filename (line 767) | static int trunk_rename_writers_filename(struct walk_callback_args *pCal... function do_save_trunk_data (line 788) | static int do_save_trunk_data() function storage_trunk_do_save (line 868) | static int storage_trunk_do_save() function storage_trunk_binlog_compress_check_recovery (line 887) | int storage_trunk_binlog_compress_check_recovery() function storage_trunk_compress (line 966) | static int storage_trunk_compress() function storage_trunk_save (line 1089) | static int storage_trunk_save() function trunk_binlog_compress_func (line 1121) | int trunk_binlog_compress_func(void *args) function storage_trunk_is_space_occupied (line 1146) | static bool storage_trunk_is_space_occupied(const FDFSTrunkFullInfo *pTr... function trunk_add_space_by_trunk (line 1188) | static int trunk_add_space_by_trunk(const FDFSTrunkFullInfo *pTrunkInfo) function trunk_add_space_by_node (line 1203) | static int trunk_add_space_by_node(FDFSTrunkNode *pTrunkNode) function storage_trunk_do_add_space (line 1228) | static int storage_trunk_do_add_space(const FDFSTrunkFullInfo *pTrunkInfo) function storage_trunk_free_node (line 1249) | static void storage_trunk_free_node(void *ptr) function storage_trunk_add_free_blocks_callback (line 1255) | static int storage_trunk_add_free_blocks_callback(void *data, void *args) function storage_trunk_restore (line 1267) | static int storage_trunk_restore(const int64_t restore_offset) function storage_trunk_load (line 1529) | static int storage_trunk_load() function FDFSTrunkFullInfo (line 1721) | static FDFSTrunkFullInfo *free_space_by_trunk(const FDFSTrunkFullInfo function trunk_free_space (line 1750) | int trunk_free_space(const FDFSTrunkFullInfo *pTrunkInfo, function trunk_add_free_block_ex (line 1783) | static int trunk_add_free_block_ex(FDFSTrunkNode *pNode, function trunk_delete_size_tree_entry (line 1874) | static void trunk_delete_size_tree_entry(const int store_path_index, \ function trunk_delete_space_ex (line 1890) | static int trunk_delete_space_ex(const FDFSTrunkFullInfo *pTrunkInfo, function trunk_restore_node (line 1982) | static int trunk_restore_node(const FDFSTrunkFullInfo *pTrunkInfo) function trunk_split (line 2027) | static int trunk_split(FDFSTrunkNode *pNode, const int size) function FDFSTrunkNode (line 2078) | static FDFSTrunkNode *trunk_create_trunk_file(const int store_path_index, \ function trunk_alloc_space (line 2136) | int trunk_alloc_space(const int size, FDFSTrunkFullInfo *pResult) function trunk_alloc_confirm (line 2248) | int trunk_alloc_confirm(const FDFSTrunkFullInfo *pTrunkInfo, const int s... function trunk_create_next_file (line 2285) | static int trunk_create_next_file(FDFSTrunkFullInfo *pTrunkInfo) function trunk_wait_file_ready (line 2331) | static int trunk_wait_file_ready(const char *filename, const int64_t fil... function trunk_init_file_ex (line 2385) | int trunk_init_file_ex(const char *filename, const int64_t file_size) function trunk_check_and_init_file_ex (line 2440) | int trunk_check_and_init_file_ex(const char *filename, const int64_t fil... function trunk_file_delete (line 2506) | int trunk_file_delete(const char *trunk_filename, function trunk_create_trunk_file_advance (line 2546) | int trunk_create_trunk_file_advance(void *args) FILE: storage/trunk_mgr/trunk_mem.h type FDFSTrunkNode (line 68) | typedef struct tagFDFSTrunkNode { type FDFSTrunkSlot (line 74) | typedef struct { function trunk_check_size (line 92) | static inline bool trunk_check_size(const int64_t file_size) FILE: storage/trunk_mgr/trunk_shared.c function trunk_shared_init (line 30) | int trunk_shared_init() function FDFSStorePathInfo (line 47) | FDFSStorePathInfo *storage_load_paths_from_conf_file_ex( function storage_load_paths_from_conf_file (line 187) | int storage_load_paths_from_conf_file(IniContext *pItemContext, function storage_split_filename_ex (line 278) | int storage_split_filename_ex(const char *logic_filename, \ function storage_split_filename_no_check (line 287) | int storage_split_filename_no_check(const char *logic_filename, \ function trunk_pack_header (line 373) | void trunk_pack_header(const FDFSTrunkHeader *pTrunkHeader, char *buff) function trunk_unpack_header (line 389) | void trunk_unpack_header(const char *buff, FDFSTrunkHeader *pTrunkHeader) function trunk_file_info_encode (line 406) | void trunk_file_info_encode(const FDFSTrunkFileInfo *pTrunkFile, char *str) function trunk_file_info_decode (line 418) | void trunk_file_info_decode(const char *str, FDFSTrunkFileInfo *pTrunkFile) function trunk_file_get_content_ex (line 431) | int trunk_file_get_content_ex(const FDFSStorePaths *pStorePaths, \ function trunk_file_stat_func_ex (line 486) | int trunk_file_stat_func_ex(const FDFSStorePaths *pStorePaths, \ function trunk_file_do_lstat_func_ex (line 564) | int trunk_file_do_lstat_func_ex(const FDFSStorePaths *pStorePaths, function fdfs_is_trunk_file (line 748) | bool fdfs_is_trunk_file(const char *remote_filename, const int filename_... function fdfs_decode_trunk_info (line 768) | int fdfs_decode_trunk_info(const int store_path_index, \ FILE: storage/trunk_mgr/trunk_shared.h type FDFSStorePathInfo (line 55) | typedef struct type FDFSStorePaths (line 64) | typedef struct { type stat (line 76) | struct stat type FDFSTrunkHeader (line 78) | typedef struct tagFDFSTrunkHeader { type FDFSTrunkPathInfo (line 87) | typedef struct tagFDFSTrunkPathInfo { type FDFSTrunkFileInfo (line 93) | typedef struct tagFDFSTrunkFileInfo { type FDFSTrunkFullInfo (line 99) | typedef struct tagFDFSTrunkFullInfo { type stat (line 188) | struct stat type stat (line 194) | struct stat FILE: storage/trunk_mgr/trunk_sync.c type TrunkSyncThreadInfo (line 77) | typedef struct type TrunkSyncThreadInfoArray (line 86) | typedef struct function trunk_binlog_open_writer (line 159) | static int trunk_binlog_open_writer(const char *binlog_filename) function trunk_binlog_close_writer (line 176) | static int trunk_binlog_close_writer(const bool needLock) function trunk_sync_init (line 191) | int trunk_sync_init() function trunk_sync_destroy (line 262) | int trunk_sync_destroy() function kill_trunk_sync_threads (line 274) | int kill_trunk_sync_threads() function trunk_sync_notify_thread_reset_offset (line 326) | int trunk_sync_notify_thread_reset_offset() function trunk_binlog_sync_func (line 424) | int trunk_binlog_sync_func(void *args) type TrunkBinlogBackupFileInfo (line 438) | typedef struct type TrunkBinlogBackupFileArray (line 443) | typedef struct function trunk_binlog_check_alloc_filename_array (line 450) | static int trunk_binlog_check_alloc_filename_array( function trunk_binlog_compare_filename (line 496) | static int trunk_binlog_compare_filename(const void *p1, const void *p2) function trunk_binlog_delete_overflow_backups (line 502) | static int trunk_binlog_delete_overflow_backups() function trunk_binlog_backup_and_truncate (line 578) | static int trunk_binlog_backup_and_truncate() function storage_delete_trunk_data_file (line 623) | int storage_delete_trunk_data_file() function trunk_binlog_truncate (line 631) | int trunk_binlog_truncate() function trunk_binlog_delete_rollback_file (line 673) | static int trunk_binlog_delete_rollback_file(const char *filename, function trunk_binlog_compress_delete_binlog_rollback_file (line 712) | int trunk_binlog_compress_delete_binlog_rollback_file(const bool silence) function trunk_binlog_compress_delete_rollback_files (line 726) | int trunk_binlog_compress_delete_rollback_files(const bool silence) function trunk_binlog_rename_file (line 753) | static int trunk_binlog_rename_file(const char *src_filename, function trunk_binlog_open_read (line 789) | static int trunk_binlog_open_read(const char *filename, function trunk_binlog_merge_file (line 819) | static int trunk_binlog_merge_file(int old_fd, const int stage) function trunk_compress_rollback_data_file (line 915) | static int trunk_compress_rollback_data_file() function trunk_compress_rollback_binlog_file (line 977) | static int trunk_compress_rollback_binlog_file(const char *binlog_filename) function trunk_binlog_compress_delete_temp_files_after_commit (line 1066) | int trunk_binlog_compress_delete_temp_files_after_commit() function trunk_binlog_compress_apply (line 1088) | int trunk_binlog_compress_apply() function trunk_binlog_compress_commit (line 1178) | int trunk_binlog_compress_commit() function do_compress_rollback (line 1235) | static int do_compress_rollback() function trunk_binlog_compress_rollback (line 1272) | int trunk_binlog_compress_rollback() function trunk_binlog_fsync_ex (line 1286) | static int trunk_binlog_fsync_ex(const bool bNeedLock, function trunk_binlog_flush (line 1345) | int trunk_binlog_flush(const bool bNeedLock) function trunk_binlog_pack (line 1352) | int trunk_binlog_pack(const time_t timestamp, const char op_type, function trunk_binlog_write (line 1377) | int trunk_binlog_write(const int timestamp, const char op_type, function trunk_binlog_write_buffer (line 1418) | int trunk_binlog_write_buffer(const char *buff, const int length) function trunk_open_readable_binlog (line 1495) | int trunk_open_readable_binlog(TrunkBinLogReader *pReader, \ function trunk_reader_init (line 1655) | int trunk_reader_init(const FDFSStorageBrief *pStorage, function trunk_reader_destroy (line 1793) | void trunk_reader_destroy(TrunkBinLogReader *pReader) function trunk_write_to_mark_file (line 1810) | static int trunk_write_to_mark_file(TrunkBinLogReader *pReader) function trunk_binlog_preread (line 1832) | static int trunk_binlog_preread(TrunkBinLogReader *pReader) function trunk_binlog_do_line_read (line 1885) | static int trunk_binlog_do_line_read(TrunkBinLogReader *pReader, \ function trunk_binlog_read_line (line 1924) | static int trunk_binlog_read_line(TrunkBinLogReader *pReader, \ function trunk_binlog_read (line 1946) | int trunk_binlog_read(TrunkBinLogReader *pReader, \ function trunk_unlink_mark_file (line 1984) | int trunk_unlink_mark_file(const char *storage_id) function trunk_rename_mark_file (line 2018) | int trunk_rename_mark_file(const char *old_ip_addr, const int old_port, \ function trunk_sync_thread_exit (line 2055) | static void trunk_sync_thread_exit(TrunkSyncThreadInfo *thread_data, function trunk_sync_data (line 2086) | static int trunk_sync_data(TrunkBinLogReader *pReader, \ function trunk_sync_thread_start_all (line 2378) | int trunk_sync_thread_start_all() function TrunkSyncThreadInfo (line 2399) | TrunkSyncThreadInfo *trunk_sync_alloc_thread_data() function trunk_sync_thread_start (line 2486) | int trunk_sync_thread_start(const FDFSStorageBrief *pStorage) function trunk_waiting_sync_thread_exit (line 2557) | void trunk_waiting_sync_thread_exit() function trunk_unlink_all_mark_files (line 2593) | int trunk_unlink_all_mark_files() function trunk_binlog_get_write_version (line 2659) | int trunk_binlog_get_write_version() FILE: storage/trunk_mgr/trunk_sync.h type TrunkBinLogReader (line 28) | typedef struct type TrunkBinLogRecord (line 38) | typedef struct FILE: test/combine_result.c function main (line 20) | int main(int argc, char **argv) function print_stat_by (line 109) | static void print_stat_by(EntryStat *stats, const int entry_count) function combine_stat_by (line 127) | static int combine_stat_by(const char *file_prefix, EntryStat *stats, co... function combine_stat_overall (line 222) | static int combine_stat_overall(int *ptotal_count, int *psuccess_count, ... FILE: test/common_func.c function my_daemon_init (line 13) | int my_daemon_init() FILE: test/dfs_func.c function dfs_init (line 13) | int dfs_init(const int proccess_index, const char *conf_filename) function dfs_destroy (line 18) | void dfs_destroy() function downloadFileCallback (line 23) | static int downloadFileCallback(void *arg, const int64_t file_size, cons... function upload_file (line 29) | int upload_file(const char *file_buff, const int file_size, char *file_i... function download_file (line 69) | int download_file(const char *file_id, int *file_size, char *storage_ip) function delete_file (line 108) | int delete_file(const char *file_id, char *storage_ip) function upload_appender_file_by_buff (line 144) | int upload_appender_file_by_buff(const char *file_buff, const int file_s... function append_file_by_buff (line 186) | int append_file_by_buff(const char *append_buff, const int append_size, FILE: test/dfs_func_pc.c function ConnectionInfo (line 17) | static ConnectionInfo *getConnectedStorageServer( function dfs_init (line 61) | int dfs_init(const int proccess_index, const char *conf_filename) function dfs_destroy (line 78) | void dfs_destroy() function downloadFileCallback (line 94) | static int downloadFileCallback(void *arg, const int64_t file_size, function upload_file (line 100) | int upload_file(const char *file_buff, const int file_size, char *file_id, function download_file (line 130) | int download_file(const char *file_id, int *file_size, char *storage_ip) function delete_file (line 157) | int delete_file(const char *file_id, char *storage_ip) function upload_appender_file_by_buff (line 181) | int upload_appender_file_by_buff(const char *file_buff, const int file_s... function append_file_by_buff (line 216) | int append_file_by_buff(const char *append_buff, const int append_size, FILE: test/gen_files.c type TestFileInfo (line 9) | typedef struct { function main (line 23) | int main() FILE: test/test_append.c type TestAppendInfo (line 18) | typedef struct { function main (line 72) | int main(int argc, char **argv) function create_base_appender_file (line 230) | static int create_base_appender_file() function generate_append_buffers (line 255) | static int generate_append_buffers() function save_stats_by_append_type (line 282) | static int save_stats_by_append_type() function save_stats_by_storage_ip (line 308) | static int save_stats_by_storage_ip() function save_stats_by_overall (line 334) | static int save_stats_by_overall() function add_to_storage_stat (line 354) | static int add_to_storage_stat(const char *storage_ip, const int result,... function test_init (line 390) | static int test_init() FILE: test/test_concurrent.c type OperationType (line 20) | typedef enum { type TestFileInfo (line 28) | typedef struct { function main (line 52) | int main(int argc, char **argv) function perform_operation (line 146) | static int perform_operation(OperationType op_type, char *file_id, char ... function save_stats (line 250) | static void save_stats() function load_file_contents (line 272) | static int load_file_contents() function test_init (line 318) | static int test_init() FILE: test/test_delete.c type FileEntry (line 18) | typedef struct { type TestFileInfo (line 23) | typedef struct { function main (line 73) | int main(int argc, char **argv) function save_stats_by_file_type (line 197) | static int save_stats_by_file_type() function save_stats_by_storage_ip (line 223) | static int save_stats_by_storage_ip() function save_stats_by_overall (line 249) | static int save_stats_by_overall() function add_to_storage_stat (line 269) | static int add_to_storage_stat(const char *storage_ip, const int result,... function get_file_type_index (line 305) | static int get_file_type_index(const int file_bytes) function load_file_ids (line 322) | static int load_file_ids() function test_init (line 451) | static int test_init() FILE: test/test_download.c type FileEntry (line 25) | typedef struct { type TestFileInfo (line 30) | typedef struct { function main (line 80) | int main(int argc, char **argv) function save_stats_by_file_type (line 221) | static int save_stats_by_file_type() function save_stats_by_storage_ip (line 247) | static int save_stats_by_storage_ip() function save_stats_by_overall (line 273) | static int save_stats_by_overall() function add_to_storage_stat (line 293) | static int add_to_storage_stat(const char *storage_ip, const int result,... function get_file_type_index (line 329) | static int get_file_type_index(const int file_bytes) function load_file_ids (line 346) | static int load_file_ids() function test_init (line 488) | static int test_init() FILE: test/test_file_exist.c type FileEntry (line 19) | typedef struct { type CaseStat (line 24) | typedef struct { type TestFileInfo (line 39) | typedef struct { function main (line 77) | int main(int argc, char **argv) function file_exist_test (line 205) | static int file_exist_test(const char *file_id, bool expect_exist, char ... function save_stats_by_case_type (line 251) | static int save_stats_by_case_type() function save_stats_by_file_type (line 277) | static int save_stats_by_file_type() function save_stats_by_storage_ip (line 303) | static int save_stats_by_storage_ip() function save_stats_by_overall (line 329) | static int save_stats_by_overall() function add_to_storage_stat (line 350) | static int add_to_storage_stat(const char *storage_ip, const int result,... function get_file_type_index (line 391) | static int get_file_type_index(const int file_bytes) function load_file_ids (line 408) | static int load_file_ids() function test_init (line 550) | static int test_init() FILE: test/test_fileinfo.c function print_test_result (line 24) | static void print_test_result(const char *test_name, int passed) { function create_test_file (line 35) | static int create_test_file(const char *filename, int size) { function test_query_existing_file (line 52) | static void test_query_existing_file(ConnectionInfo *pTrackerServer, function test_query_nonexistent_file (line 95) | static void test_query_nonexistent_file(ConnectionInfo *pTrackerServer, function test_file_exist_true (line 111) | static void test_file_exist_true(ConnectionInfo *pTrackerServer, function test_file_exist_false (line 144) | static void test_file_exist_false(ConnectionInfo *pTrackerServer, function test_query_after_modify (line 158) | static void test_query_after_modify(ConnectionInfo *pTrackerServer, function test_query_large_file (line 217) | static void test_query_large_file(ConnectionInfo *pTrackerServer, function test_query_source_ip (line 255) | static void test_query_source_ip(ConnectionInfo *pTrackerServer, function test_exist_after_delete (line 292) | static void test_exist_after_delete(ConnectionInfo *pTrackerServer, function test_query_multiple_files (line 333) | static void test_query_multiple_files(ConnectionInfo *pTrackerServer, function test_query_invalid_format (line 382) | static void test_query_invalid_format(ConnectionInfo *pTrackerServer, function test_exist_empty_id (line 397) | static void test_exist_empty_id(ConnectionInfo *pTrackerServer, function test_query_timestamp (line 410) | static void test_query_timestamp(ConnectionInfo *pTrackerServer, function main (line 448) | int main(int argc, char *argv[]) { FILE: test/test_metadata.c type TestFileInfo (line 20) | typedef struct { function main (line 73) | int main(int argc, char **argv) function set_metadata_test (line 249) | static int set_metadata_test(const char *file_id, const char *storage_ip) function get_metadata_test (line 299) | static int get_metadata_test(const char *file_id, const char *storage_ip) function save_stats_by_file_type (line 346) | static int save_stats_by_file_type() function save_stats_by_storage_ip (line 372) | static int save_stats_by_storage_ip() function save_stats_by_overall (line 398) | static int save_stats_by_overall() function add_to_storage_stat (line 418) | static int add_to_storage_stat(const char *storage_ip, const int result,... function load_file_contents (line 454) | static int load_file_contents() function test_init (line 506) | static int test_init() FILE: test/test_modify.c function print_test_result (line 32) | static void print_test_result(const char *test_name, int passed) { function create_test_file (line 44) | static int create_test_file(const char *filename, int size) { function verify_file_content (line 60) | static int verify_file_content(const char *filename, int64_t offset, function test_modify_by_filename_basic (line 95) | static void test_modify_by_filename_basic(ConnectionInfo *pTrackerServer, function test_modify_by_filebuff (line 142) | static void test_modify_by_filebuff(ConnectionInfo *pTrackerServer, function test_modify_at_offset_zero (line 184) | static void test_modify_at_offset_zero(ConnectionInfo *pTrackerServer, function test_modify_near_end (line 226) | static void test_modify_near_end(ConnectionInfo *pTrackerServer, function test_multiple_modifications (line 269) | static void test_multiple_modifications(ConnectionInfo *pTrackerServer, function test_modify_large_data (line 333) | static void test_modify_large_data(ConnectionInfo *pTrackerServer, function test_modify_overlapping (line 384) | static void test_modify_overlapping(ConnectionInfo *pTrackerServer, function test_modify_invalid_file_id (line 436) | static void test_modify_invalid_file_id(ConnectionInfo *pTrackerServer, function test_modify_offset_beyond_size (line 456) | static void test_modify_offset_beyond_size(ConnectionInfo *pTrackerServer, function test_modify_single_byte (line 498) | static void test_modify_single_byte(ConnectionInfo *pTrackerServer, function main (line 533) | int main(int argc, char *argv[]) { FILE: test/test_range_download.c type RangeType (line 20) | typedef enum { type FileEntry (line 29) | typedef struct { type TestFileInfo (line 34) | typedef struct { function main (line 87) | int main(int argc, char **argv) function download_range_test (line 229) | static int download_range_test(const char *file_id, int file_size, Range... function save_stats_by_file_type (line 337) | static int save_stats_by_file_type() function save_stats_by_range_type (line 372) | static int save_stats_by_range_type() function save_stats_by_storage_ip (line 408) | static int save_stats_by_storage_ip() function save_stats_by_overall (line 434) | static int save_stats_by_overall() function add_to_storage_stat (line 454) | static int add_to_storage_stat(const char *storage_ip, const int result,... function get_file_type_index (line 490) | static int get_file_type_index(const int file_bytes) function load_file_ids (line 507) | static int load_file_ids() function test_init (line 649) | static int test_init() FILE: test/test_slave.c function print_test_result (line 27) | static void print_test_result(const char *test_name, int passed) { function create_test_file (line 38) | static int create_test_file(const char *filename, int size) { function verify_slave_prefix (line 52) | static int verify_slave_prefix(const char *master_id, const char *slave_id, function test_upload_slave_by_filename (line 73) | static void test_upload_slave_by_filename(ConnectionInfo *pTrackerServer, function test_upload_slave_by_buffer (line 119) | static void test_upload_slave_by_buffer(ConnectionInfo *pTrackerServer, function test_multiple_slaves (line 166) | static void test_multiple_slaves(ConnectionInfo *pTrackerServer, function test_slave_with_metadata (line 228) | static void test_slave_with_metadata(ConnectionInfo *pTrackerServer, function test_slave_different_ext (line 280) | static void test_slave_different_ext(ConnectionInfo *pTrackerServer, function test_slave_empty_prefix (line 325) | static void test_slave_empty_prefix(ConnectionInfo *pTrackerServer, function test_slave_large_file (line 370) | static void test_slave_large_file(ConnectionInfo *pTrackerServer, function test_download_slave (line 416) | static void test_download_slave(ConnectionInfo *pTrackerServer, function test_slave_nonexistent_master (line 475) | static void test_slave_nonexistent_master(ConnectionInfo *pTrackerServer, function test_slave_invalid_master_id (line 503) | static void test_slave_invalid_master_id(ConnectionInfo *pTrackerServer, function test_slave_special_prefix (line 530) | static void test_slave_special_prefix(ConnectionInfo *pTrackerServer, function test_slave_after_master_delete (line 575) | static void test_slave_after_master_delete(ConnectionInfo *pTrackerServer, function main (line 628) | int main(int argc, char *argv[]) { FILE: test/test_truncate.c function print_test_result (line 24) | static void print_test_result(const char *test_name, int passed) { function create_test_file (line 35) | static int create_test_file(const char *filename, int size) { function get_file_size (line 49) | static int64_t get_file_size(ConnectionInfo *pTrackerServer, function test_truncate_to_smaller (line 64) | static void test_truncate_to_smaller(ConnectionInfo *pTrackerServer, function test_truncate_to_zero (line 101) | static void test_truncate_to_zero(ConnectionInfo *pTrackerServer, function test_truncate_after_append (line 135) | static void test_truncate_after_append(ConnectionInfo *pTrackerServer, function test_multiple_truncates (line 187) | static void test_multiple_truncates(ConnectionInfo *pTrackerServer, function test_truncate_same_size (line 237) | static void test_truncate_same_size(ConnectionInfo *pTrackerServer, function test_truncate_large_file (line 273) | static void test_truncate_large_file(ConnectionInfo *pTrackerServer, function test_truncate_non_appender (line 311) | static void test_truncate_non_appender(ConnectionInfo *pTrackerServer, function test_truncate_invalid_file (line 346) | static void test_truncate_invalid_file(ConnectionInfo *pTrackerServer, function test_truncate_negative_size (line 357) | static void test_truncate_negative_size(ConnectionInfo *pTrackerServer, function test_truncate_then_append (line 390) | static void test_truncate_then_append(ConnectionInfo *pTrackerServer, function main (line 440) | int main(int argc, char *argv[]) { FILE: test/test_types.h type StorageStat (line 20) | typedef struct { type EntryStat (line 27) | typedef struct { FILE: test/test_upload.c type TestFileInfo (line 19) | typedef struct { function main (line 70) | int main(int argc, char **argv) function save_stats_by_file_type (line 225) | static int save_stats_by_file_type() function save_stats_by_storage_ip (line 251) | static int save_stats_by_storage_ip() function save_stats_by_overall (line 277) | static int save_stats_by_overall() function add_to_storage_stat (line 297) | static int add_to_storage_stat(const char *storage_ip, const int result,... function load_file_contents (line 333) | static int load_file_contents() function test_init (line 386) | static int test_init() FILE: test/unit_tests/test_client_api.c type TestResults (line 66) | typedef struct { function generate_test_data (line 147) | static void generate_test_data(char *buffer, int size) function print_test_header (line 161) | static void print_test_header(const char *test_name) function print_test_result (line 176) | static void print_test_result(const char *test_name, int result) function test_client_init_valid_config (line 207) | static int test_client_init_valid_config(void) function test_client_init_null_config (line 232) | static int test_client_init_null_config(void) function test_upload_file_by_buffer (line 261) | static int test_upload_file_by_buffer(void) function test_download_file_to_buffer (line 318) | static int test_download_file_to_buffer(void) function test_set_metadata (line 376) | static int test_set_metadata(void) function test_get_metadata (line 428) | static int test_get_metadata(void) function test_query_file_info (line 492) | static int test_query_file_info(void) function test_delete_file (line 547) | static int test_delete_file(void) function test_tracker_get_connection (line 598) | static int test_tracker_get_connection(void) type TestCase (line 632) | typedef struct { function print_summary (line 665) | static void print_summary(void) function main (line 724) | int main(int argc, char *argv[]) FILE: tools/fdfs_analyze.c type ExtensionStats (line 26) | typedef struct { type SizeBucket (line 32) | typedef struct { type AnalysisStats (line 40) | typedef struct { type AnalysisContext (line 53) | typedef struct { function print_usage (line 63) | static void print_usage(const char *program_name) { function init_size_buckets (line 81) | static void init_size_buckets(SizeBucket *buckets) { function update_extension_stats (line 140) | static void update_extension_stats(AnalysisStats *stats, const char *ext... function update_size_bucket (line 162) | static void update_size_bucket(AnalysisStats *stats, int64_t size) { function analyze_file (line 173) | static int analyze_file(ConnectionInfo *pTrackerServer, const char *file... function compare_extensions (line 258) | static int compare_extensions(const void *a, const void *b) { function format_bytes (line 267) | static void format_bytes(int64_t bytes, char *buf, size_t buf_size) { function generate_analysis_report (line 281) | static void generate_analysis_report(AnalysisStats *stats, FILE *output) { function load_file_list (line 351) | static int load_file_list(const char *list_file, char **file_ids, int *c... function main (line 406) | int main(int argc, char *argv[]) { FILE: tools/fdfs_backup.c type BackupFileInfo (line 29) | typedef struct { type BackupContext (line 39) | typedef struct { function print_usage (line 55) | static void print_usage(const char *program_name) { function create_directory_recursive (line 78) | static int create_directory_recursive(const char *path) { function write_manifest (line 107) | static int write_manifest(const char *backup_dir, BackupFileInfo *files,... function backup_single_file (line 146) | static int backup_single_file(ConnectionInfo *pTrackerServer, function load_file_list (line 286) | static int load_file_list(const char *list_file, BackupFileInfo **files,... function main (line 344) | int main(int argc, char *argv[]) { FILE: tools/fdfs_batch_delete.c type DeleteTask (line 23) | typedef struct { type DeleteContext (line 31) | typedef struct { function print_usage (line 46) | static void print_usage(const char *program_name) { function timespec_diff_ms (line 68) | static long long timespec_diff_ms(struct timespec *start, struct timespe... function delete_single_file (line 73) | static int delete_single_file(ConnectionInfo *pTrackerServer, function load_file_list (line 193) | static int load_file_list(const char *list_file, DeleteTask **tasks, int... function confirm_deletion (line 251) | static int confirm_deletion(int file_count, int dry_run) { function main (line 274) | int main(int argc, char *argv[]) { FILE: tools/fdfs_benchmark.c type BenchmarkType (line 25) | typedef enum { type BenchmarkStats (line 33) | typedef struct { type ThreadContext (line 44) | typedef struct { function print_usage (line 57) | static void print_usage(const char *program_name) { function get_time_us (line 80) | static long long get_time_us(void) { function update_stats (line 86) | static void update_stats(BenchmarkStats *stats, int success, long long l... function benchmark_upload (line 110) | static int benchmark_upload(ThreadContext *ctx) { function benchmark_download (line 158) | static int benchmark_download(ThreadContext *ctx) { function benchmark_delete (line 197) | static int benchmark_delete(ThreadContext *ctx) { function benchmark_metadata (line 235) | static int benchmark_metadata(ThreadContext *ctx) { function print_results (line 316) | static void print_results(BenchmarkStats *stats, const char *bench_name, function main (line 349) | int main(int argc, char *argv[]) { FILE: tools/fdfs_capacity_plan.c type StorageSnapshot (line 80) | typedef struct { type GroupCapacityData (line 89) | typedef struct { type GrowthProjection (line 102) | typedef struct { type CapacityRecommendation (line 114) | typedef struct { type CapacityPlannerContext (line 124) | typedef struct { function format_bytes (line 150) | static void format_bytes(int64_t bytes, char *buf, size_t buf_size) { function format_timestamp (line 174) | static void format_timestamp(time_t timestamp, char *buf, size_t buf_siz... function calculate_growth_rate (line 196) | static int calculate_growth_rate(GroupCapacityData *group, GrowthProject... function project_future_capacity (line 258) | static void project_future_capacity(GroupCapacityData *group, function generate_recommendation (line 334) | static void generate_recommendation(GroupCapacityData *group, function collect_capacity_data (line 435) | static int collect_capacity_data(CapacityPlannerContext *ctx) { function print_usage (line 509) | static void print_usage(const char *program_name) { function print_capacity_report_text (line 557) | static void print_capacity_report_text(CapacityPlannerContext *ctx, FILE... function print_capacity_report_json (line 681) | static void print_capacity_report_json(CapacityPlannerContext *ctx, FILE... function main (line 759) | int main(int argc, char *argv[]) { FILE: tools/fdfs_capacity_planner.c type StoragePathInfo (line 34) | typedef struct { type ClusterCapacity (line 45) | typedef struct { type GrowthPrediction (line 54) | typedef struct { type FileDistribution (line 62) | typedef struct { function print_usage (line 84) | static void print_usage(const char *program) function load_storage_paths (line 134) | static int load_storage_paths(const char *config_file, char paths[][MAX_... function get_path_capacity (line 222) | static int get_path_capacity(const char *path, StoragePathInfo *info) function count_files_recursive (line 246) | static int count_files_recursive(const char *path, unsigned long long *f... function count_files_in_path (line 279) | static int count_files_in_path(const char *path, unsigned long long *fil... function analyze_cluster_capacity (line 298) | static void analyze_cluster_capacity(ClusterCapacity *cluster) function predict_growth (line 317) | static void predict_growth(ClusterCapacity *cluster, double daily_upload... function print_capacity_report (line 338) | static void print_capacity_report(ClusterCapacity *cluster) function print_growth_prediction (line 401) | static void print_growth_prediction(GrowthPrediction *prediction, Cluste... function calculate_optimal_config (line 450) | static void calculate_optimal_config(ClusterCapacity *cluster, double ta... function print_recommendations (line 499) | static void print_recommendations(ClusterCapacity *cluster, GrowthPredic... function main (line 566) | int main(int argc, char *argv[]) FILE: tools/fdfs_capacity_planner.h type CPStoragePath (line 66) | typedef struct cp_storage_path { type CPUsageSample (line 81) | typedef struct cp_usage_sample { type CPGrowthStats (line 92) | typedef struct cp_growth_stats { type CPPrediction (line 107) | typedef struct cp_prediction { type CPGroupInfo (line 121) | typedef struct cp_group_info { type CPClusterCapacity (line 135) | typedef struct cp_cluster_capacity { type CPCapacityReport (line 149) | typedef struct cp_capacity_report { type CPPlanningContext (line 162) | typedef struct cp_planning_context { FILE: tools/fdfs_capacity_report.c type StoragePathInfo (line 48) | typedef struct { type GroupInfo (line 57) | typedef struct { type ClusterReport (line 67) | typedef struct { type ReportOptions (line 77) | typedef struct { function print_usage (line 103) | static void print_usage(const char *program) function format_bytes (line 122) | static void format_bytes(unsigned long long bytes, char *buffer, size_t ... function get_path_info (line 135) | static int get_path_info(const char *path, StoragePathInfo *info) function count_files (line 159) | static unsigned long long count_files(const char *path) function get_alert_level (line 192) | static int get_alert_level(double usage, double warning, double critical) function load_cluster_config (line 219) | static int load_cluster_config(ClusterReport *report, const char *config... function print_report_text (line 293) | static void print_report_text(ClusterReport *report, ReportOptions *opti... function print_report_json (line 370) | static void print_report_json(ClusterReport *report, ReportOptions *opti... function print_report_html (line 435) | static void print_report_html(ClusterReport *report, ReportOptions *opti... function print_report_csv (line 541) | static void print_report_csv(ClusterReport *report, ReportOptions *options) function print_report_markdown (line 581) | static void print_report_markdown(ClusterReport *report, ReportOptions *... function main (line 647) | int main(int argc, char *argv[]) FILE: tools/fdfs_cleanup.c type CleanupCriteriaType (line 78) | typedef enum { type FileInfo (line 88) | typedef struct { type CleanupCriteria (line 103) | typedef struct { type CleanupContext (line 116) | typedef struct { function signal_handler (line 154) | static void signal_handler(int sig) { function print_usage (line 171) | static void print_usage(const char *program_name) { function parse_size_string (line 250) | static int parse_size_string(const char *size_str, int64_t *bytes) { function format_bytes (line 310) | static void format_bytes(int64_t bytes, char *buf, size_t buf_size) { function format_duration (line 334) | static void format_duration(int64_t seconds, char *buf, size_t buf_size) { function get_file_info (line 363) | static int get_file_info(ConnectionInfo *pTrackerServer, function matches_criteria (line 440) | static int matches_criteria(FileInfo *file_info, CleanupCriteria *criter... function delete_file (line 569) | static int delete_file(ConnectionInfo *pTrackerServer, function get_group_files (line 709) | static int get_group_files(ConnectionInfo *pTrackerServer, function process_file_list (line 735) | static int process_file_list(ConnectionInfo *pTrackerServer, function perform_cleanup (line 1018) | static int perform_cleanup(ConnectionInfo *pTrackerServer, function main (line 1070) | int main(int argc, char *argv[]) { FILE: tools/fdfs_cluster_mgr.c type GroupStats (line 26) | typedef struct { type ServerInfo (line 38) | typedef struct { type ClusterInfo (line 50) | typedef struct { function print_usage (line 57) | static void print_usage(const char *program_name) { function query_cluster_info (line 84) | static int query_cluster_info(ConnectionInfo *pTrackerServer, ClusterInf... function format_bytes (line 149) | static void format_bytes(int64_t bytes, char *buf, size_t buf_size) { function print_cluster_status (line 163) | static void print_cluster_status(ClusterInfo *cluster, int json_output) { function print_group_list (line 215) | static void print_group_list(ClusterInfo *cluster, int json_output) { function print_server_list (line 259) | static void print_server_list(ClusterInfo *cluster, const char *filter_g... function check_cluster_balance (line 324) | static void check_cluster_balance(ClusterInfo *cluster) { function perform_health_check (line 383) | static void perform_health_check(ClusterInfo *cluster) { function print_cluster_summary (line 449) | static void print_cluster_summary(ClusterInfo *cluster) { function main (line 495) | int main(int argc, char *argv[]) { FILE: tools/fdfs_compress.c type CompressAlgorithm (line 72) | typedef enum { type CompressOperation (line 79) | typedef enum { type CompressTask (line 86) | typedef struct { type CompressContext (line 102) | typedef struct { function print_usage (line 137) | static void print_usage(const char *program_name) { function format_bytes (line 199) | static void format_bytes(int64_t bytes, char *buf, size_t buf_size) { function compress_gzip (line 224) | static int compress_gzip(const char *input_file, const char *output_file, function decompress_gzip (line 295) | static int decompress_gzip(const char *input_file, const char *output_file, function compress_zstd (line 370) | static int compress_zstd(const char *input_file, const char *output_file, function decompress_zstd (line 392) | static int decompress_zstd(const char *input_file, const char *output_file, function process_compress_task (line 411) | static int process_compress_task(CompressContext *ctx, CompressTask *tas... function read_file_list (line 697) | static int read_file_list(const char *list_file, function print_compression_results_text (line 794) | static void print_compression_results_text(CompressContext *ctx, function print_compression_results_json (line 844) | static void print_compression_results_json(CompressContext *ctx, function main (line 880) | int main(int argc, char *argv[]) { FILE: tools/fdfs_config_compare.c type ConfigItem (line 42) | typedef struct { type ConfigFile (line 48) | typedef struct { type DiffItem (line 55) | typedef struct { type DiffReport (line 64) | typedef struct { type CompareOptions (line 73) | typedef struct { function print_usage (line 99) | static void print_usage(const char *program) function load_config_file (line 134) | static int load_config_file(const char *filename, ConfigFile *config) function find_config_item (line 202) | static int find_config_item(ConfigFile *config, const char *key) function compare_configs (line 213) | static void compare_configs(ConfigFile *config1, ConfigFile *config2, function print_diff_report_text (line 330) | static void print_diff_report_text(DiffReport *report, ConfigFile *config1, function print_diff_report_json (line 386) | static void print_diff_report_json(DiffReport *report, ConfigFile *config1, function print_diff_report_html (line 434) | static void print_diff_report_html(DiffReport *report, ConfigFile *config1, function main (line 508) | int main(int argc, char *argv[]) FILE: tools/fdfs_config_generator.c type SystemInfo (line 41) | typedef struct { type GeneratorOptions (line 50) | typedef struct { function print_usage (line 76) | static void print_usage(const char *program) function get_available_memory_mb (line 102) | static long get_available_memory_mb(void) function get_cpu_count (line 137) | static int get_cpu_count(void) function get_disk_space_gb (line 143) | static long get_disk_space_gb(const char *path) function get_system_info (line 154) | static int get_system_info(SystemInfo *info) function print_header (line 182) | static void print_header(FILE *out, const char *config_type, GeneratorOp... function generate_tracker_config (line 199) | static void generate_tracker_config(GeneratorOptions *options, SystemInf... function generate_storage_config (line 427) | static void generate_storage_config(GeneratorOptions *options, SystemInf... function generate_client_config (line 675) | static void generate_client_config(GeneratorOptions *options, SystemInfo... function main (line 717) | int main(int argc, char *argv[]) FILE: tools/fdfs_config_validator.c type ConfigItem (line 36) | typedef struct { type ValidationResult (line 42) | typedef struct { type ConfigFile (line 47) | typedef struct { type ValidationReport (line 53) | typedef struct { function print_usage (line 76) | static void print_usage(const char *program) function load_config_file (line 108) | static int load_config_file(const char *filename, ConfigFile *config) function get_config_int (line 166) | static int get_config_int(ConfigFile *config, const char *key, int defau... function add_result (line 175) | static void add_result(ValidationReport *report, int level, const char *... function check_path_exists (line 198) | static int check_path_exists(const char *path) function check_path_writable (line 204) | static int check_path_writable(const char *path) function get_available_memory_mb (line 209) | static long get_available_memory_mb(void) function get_cpu_count (line 231) | static int get_cpu_count(void) function validate_common_settings (line 252) | static void validate_common_settings(ConfigFile *config, ValidationRepor... function validate_tracker_config (line 347) | static void validate_tracker_config(ConfigFile *config, ValidationReport... function validate_storage_config (line 409) | static void validate_storage_config(ConfigFile *config, ValidationReport... function print_report (line 526) | static void print_report(ValidationReport *report, const char *filename) function main (line 573) | int main(int argc, char *argv[]) FILE: tools/fdfs_config_validator.h type CVConfigItem (line 56) | typedef struct cv_config_item { type CVValidationRule (line 66) | typedef struct cv_validation_rule { type CVValidationResult (line 78) | typedef struct cv_validation_result { type CVConfigFile (line 89) | typedef struct cv_config_file { type CVValidationReport (line 100) | typedef struct cv_validation_report { type CVValidationContext (line 114) | typedef struct cv_validation_context { type CVSystemInfo (line 126) | typedef struct cv_system_info { FILE: tools/fdfs_dedup.c type FileNode (line 25) | typedef struct FileNode { type HashTable (line 33) | typedef struct { type ScanContext (line 38) | typedef struct { function print_usage (line 55) | static void print_usage(const char *program_name) { function hash_crc32 (line 75) | static unsigned int hash_crc32(uint32_t crc32, int64_t size) { function HashTable (line 80) | static HashTable *create_hash_table(void) { function free_hash_table (line 95) | static void free_hash_table(HashTable *table) { function add_file_to_table (line 113) | static int add_file_to_table(HashTable *table, const char *file_id, function scan_file (line 150) | static int scan_file(ConnectionInfo *pTrackerServer, const char *file_id, function load_file_list (line 219) | static int load_file_list(const char *list_file, char **file_ids, int *c... function generate_duplicate_report (line 275) | static void generate_duplicate_report(HashTable *table, FILE *output, in... function main (line 347) | int main(int argc, char *argv[]) { FILE: tools/fdfs_export.c type ExportDestination (line 76) | typedef enum { type ExportTask (line 83) | typedef struct { type ExportContext (line 96) | typedef struct { function print_usage (line 132) | static void print_usage(const char *program_name) { function format_bytes (line 187) | static void format_bytes(int64_t bytes, char *buf, size_t buf_size) { function create_directory_recursive (line 210) | static int create_directory_recursive(const char *path) { function export_to_local (line 257) | static int export_to_local(ExportContext *ctx, ExportTask *task) { function export_to_s3 (line 352) | static int export_to_s3(ExportContext *ctx, ExportTask *task) { function process_export_task (line 373) | static int process_export_task(ExportContext *ctx, ExportTask *task) { function parse_destination (line 472) | static int parse_destination(const char *dest_str, ExportDestination *de... function generate_dest_path (line 508) | static int generate_dest_path(const char *file_id, const char *export_dir, function read_file_list (line 549) | static int read_file_list(const char *list_file, function print_export_results_text (line 645) | static void print_export_results_text(ExportContext *ctx, FILE *output_f... function print_export_results_json (line 678) | static void print_export_results_json(ExportContext *ctx, FILE *output_f... function main (line 705) | int main(int argc, char *argv[]) { FILE: tools/fdfs_file_migrate.c type MigrationTask (line 26) | typedef struct { type MigrationContext (line 35) | typedef struct { function print_usage (line 51) | static void print_usage(const char *program_name) { function migrate_single_file (line 74) | static int migrate_single_file(ConnectionInfo *pTrackerServer, function load_file_list (line 201) | static int load_file_list(const char *list_file, MigrationTask **tasks, ... function main (line 259) | int main(int argc, char *argv[]) { FILE: tools/fdfs_file_verify.c type VerifyResult (line 24) | typedef struct { function print_usage (line 39) | static void print_usage(const char *program_name) { function calculate_file_crc32 (line 59) | static uint32_t calculate_file_crc32(const char *filename) { function verify_single_file (line 78) | static int verify_single_file(ConnectionInfo *pTrackerServer, function verify_from_list (line 144) | static int verify_from_list(ConnectionInfo *pTrackerServer, function main (line 211) | int main(int argc, char *argv[]) { FILE: tools/fdfs_health_check.c type CheckStatus (line 25) | typedef enum { type HealthCheckResult (line 31) | typedef struct { function print_usage (line 45) | static void print_usage(const char *program_name) { function get_time_ms (line 63) | static long get_time_ms(void) { function record_check (line 69) | static void record_check(HealthCheckResult *result, const char *name, function check_tracker_connection (line 86) | static void check_tracker_connection(ConnectionInfo *pTrackerServer, function check_storage_servers (line 107) | static void check_storage_servers(ConnectionInfo *pTrackerServer, function check_storage_space (line 185) | static void check_storage_space(ConnectionInfo *pTrackerServer, function check_upload_performance (line 224) | static void check_upload_performance(ConnectionInfo *pTrackerServer, function check_download_performance (line 277) | static void check_download_performance(ConnectionInfo *pTrackerServer, function check_metadata_operations (line 342) | static void check_metadata_operations(ConnectionInfo *pTrackerServer, function print_results_text (line 409) | static void print_results_text(HealthCheckResult *results, int count) { function print_results_json (line 460) | static void print_results_json(HealthCheckResult *results, int count) { function main (line 488) | int main(int argc, char *argv[]) { FILE: tools/fdfs_import.c type ImportSource (line 76) | typedef enum { type ImportTask (line 83) | typedef struct { type ImportContext (line 97) | typedef struct { function print_usage (line 134) | static void print_usage(const char *program_name) { function format_bytes (line 190) | static void format_bytes(int64_t bytes, char *buf, size_t buf_size) { function import_from_local (line 213) | static int import_from_local(ImportContext *ctx, ImportTask *task) { function import_from_s3 (line 331) | static int import_from_s3(ImportContext *ctx, ImportTask *task) { function process_import_task (line 352) | static int process_import_task(ImportContext *ctx, ImportTask *task) { function parse_source (line 451) | static int parse_source(const char *src_str, ImportSource *src_type, function scan_directory (line 485) | static int scan_directory(const char *dir_path, char ***file_paths, int ... function read_file_list (line 577) | static int read_file_list(const char *list_file, function print_import_results_text (line 673) | static void print_import_results_text(ImportContext *ctx, FILE *output_f... function print_import_results_json (line 706) | static void print_import_results_json(ImportContext *ctx, FILE *output_f... function main (line 733) | int main(int argc, char *argv[]) { FILE: tools/fdfs_load_balancer.c type GroupInfo (line 28) | typedef struct { type MigrationTask (line 38) | typedef struct { type MigrationContext (line 47) | typedef struct { function print_usage (line 62) | static void print_usage(const char *program_name) { function query_group_info (line 83) | static int query_group_info(ConnectionInfo *pTrackerServer, GroupInfo *g... function print_group_status (line 115) | static void print_group_status(GroupInfo *groups, int group_count) { function calculate_imbalance (line 147) | static double calculate_imbalance(GroupInfo *groups, int group_count) { function find_source_and_target_groups (line 183) | static int find_source_and_target_groups(GroupInfo *groups, int group_co... function generate_migration_plan (line 216) | static int generate_migration_plan(ConnectionInfo *pTrackerServer, function migrate_file (line 261) | static int migrate_file(ConnectionInfo *pTrackerServer, function generate_migration_report (line 374) | static void generate_migration_report(GroupInfo *groups, int group_count, function main (line 401) | int main(int argc, char *argv[]) { FILE: tools/fdfs_log_analyzer.c type AccessLogEntry (line 81) | typedef struct { type FileAccessStats (line 93) | typedef struct { type Anomaly (line 113) | typedef struct { type AnalysisContext (line 122) | typedef struct { function print_usage (line 152) | static void print_usage(const char *program_name) { function parse_log_line (line 211) | static int parse_log_line(const char *line, AccessLogEntry *entry) { function FileAccessStats (line 358) | static FileAccessStats *find_or_create_file_stats(AnalysisContext *ctx, function update_file_stats (line 397) | static void update_file_stats(AnalysisContext *ctx, AccessLogEntry *entr... function calculate_access_frequency (line 462) | static void calculate_access_frequency(FileAccessStats *stats, function detect_anomalies (line 482) | static void detect_anomalies(AnalysisContext *ctx) { function analyze_logs (line 555) | static int analyze_logs(const char **log_files, int log_count, function compare_file_stats (line 645) | static int compare_file_stats(const void *a, const void *b) { function print_analysis_results_text (line 661) | static void print_analysis_results_text(AnalysisContext *ctx, int top_fi... function print_analysis_results_json (line 767) | static void print_analysis_results_json(AnalysisContext *ctx, int top_fi... function main (line 863) | int main(int argc, char *argv[]) { FILE: tools/fdfs_metadata_bulk.c type OperationType (line 76) | typedef enum { type MetadataOperationResult (line 86) | typedef struct { type FileMetadataEntry (line 95) | typedef struct { type BulkOperationContext (line 103) | typedef struct { type SearchCriteria (line 121) | typedef struct { function print_usage (line 151) | static void print_usage(const char *program_name) { function parse_metadata_string (line 231) | static int parse_metadata_string(const char *metadata_str, function set_file_metadata (line 289) | static int set_file_metadata(ConnectionInfo *pTrackerServer, function get_file_metadata (line 322) | static int get_file_metadata(ConnectionInfo *pTrackerServer, function delete_file_metadata_keys (line 355) | static int delete_file_metadata_keys(ConnectionInfo *pTrackerServer, function read_file_list (line 593) | static int read_file_list(const char *list_file, function bulk_set_metadata (line 695) | static int bulk_set_metadata(ConnectionInfo *pTrackerServer, function bulk_get_metadata (line 896) | static int bulk_get_metadata(ConnectionInfo *pTrackerServer, function bulk_delete_metadata (line 1133) | static int bulk_delete_metadata(ConnectionInfo *pTrackerServer, function main (line 1325) | int main(int argc, char *argv[]) { FILE: tools/fdfs_network_diag.c type ServerInfo (line 43) | typedef struct { type LatencyResult (line 49) | typedef struct { type BandwidthResult (line 59) | typedef struct { type DiagResult (line 65) | typedef struct { function print_usage (line 89) | static void print_usage(const char *program) function get_time_ms (line 113) | static double get_time_ms(void) function parse_server_address (line 120) | static int parse_server_address(const char *addr, ServerInfo *server) function load_servers_from_config (line 144) | static int load_servers_from_config(const char *config_file, ServerInfo ... function test_tcp_connection (line 195) | static int test_tcp_connection(const char *host, int port, int timeout_m... function test_latency (line 264) | static void test_latency(ServerInfo *server, LatencyResult *result, int ... function test_bandwidth (line 313) | static void test_bandwidth(ServerInfo *server, BandwidthResult *result) function test_tcp_options (line 390) | static void test_tcp_options(ServerInfo *server, DiagResult *result) function run_diagnostics (line 448) | static void run_diagnostics(ServerInfo *server, DiagResult *result, int ... function print_result (line 475) | static void print_result(DiagResult *result) function print_summary (line 569) | static void print_summary(DiagResult *results, int count) function main (line 610) | int main(int argc, char *argv[]) FILE: tools/fdfs_network_diag.h type NDServerInfo (line 71) | typedef struct nd_server_info { type NDLatencyStats (line 83) | typedef struct nd_latency_stats { type NDBandwidthResult (line 96) | typedef struct nd_bandwidth_result { type NDDnsResult (line 107) | typedef struct nd_dns_result { type NDPortResult (line 118) | typedef struct nd_port_result { type NDMtuResult (line 128) | typedef struct nd_mtu_result { type NDDiagnosticResult (line 137) | typedef struct nd_diagnostic_result { type NDDiagnosticReport (line 150) | typedef struct nd_diagnostic_report { type NDTestContext (line 164) | typedef struct nd_test_context { type timeval (line 494) | struct timeval type timeval (line 494) | struct timeval FILE: tools/fdfs_network_monitor.c type ServerConfig (line 57) | typedef struct { type LatencySample (line 64) | typedef struct { type ServerState (line 70) | typedef struct { type MonitorContext (line 87) | typedef struct { function print_usage (line 122) | static void print_usage(const char *program) function signal_handler (line 145) | static void signal_handler(int sig) function measure_latency (line 152) | static double measure_latency(const char *host, int port, int timeout_ms) function update_server_state (line 225) | static void update_server_state(ServerState *state, double latency_ms, i... function get_server_status (line 277) | static int get_server_status(ServerState *state) function log_message (line 330) | static void log_message(MonitorContext *ctx, const char *format, ...) function send_alert (line 349) | static void send_alert(MonitorContext *ctx, ServerState *state, int old_... function print_status_text (line 369) | static void print_status_text(MonitorContext *ctx) function print_status_json (line 410) | static void print_status_json(MonitorContext *ctx) function print_status_csv (line 445) | static void print_status_csv(MonitorContext *ctx) function print_status_prometheus (line 473) | static void print_status_prometheus(MonitorContext *ctx) function load_config_file (line 522) | static int load_config_file(MonitorContext *ctx, const char *filename) function run_monitor_loop (line 570) | static void run_monitor_loop(MonitorContext *ctx) function main (line 630) | int main(int argc, char *argv[]) FILE: tools/fdfs_profiler.c type OperationType (line 84) | typedef enum { type LatencySample (line 95) | typedef struct { type PerformanceStats (line 103) | typedef struct { type OperationProfile (line 122) | typedef struct { type ProfilerContext (line 133) | typedef struct { function get_time_ms (line 160) | static double get_time_ms(void) { function get_time_us (line 174) | static double get_time_us(void) { function compare_latency_samples (line 190) | static int compare_latency_samples(const void *a, const void *b) { function calculate_performance_stats (line 214) | static void calculate_performance_stats(LatencySample *samples, int samp... function profile_upload (line 308) | static int profile_upload(ProfilerContext *ctx, OperationProfile *profil... function profile_download (line 374) | static int profile_download(ProfilerContext *ctx, OperationProfile *prof... function profile_delete (line 446) | static int profile_delete(ProfilerContext *ctx, OperationProfile *profile, function profile_query (line 510) | static int profile_query(ProfilerContext *ctx, OperationProfile *profile, function profile_metadata_get (line 576) | static int profile_metadata_get(ProfilerContext *ctx, OperationProfile *... function profile_metadata_set (line 648) | static int profile_metadata_set(ProfilerContext *ctx, OperationProfile *... function profile_connection (line 720) | static int profile_connection(ProfilerContext *ctx, OperationProfile *pr... function print_usage (line 837) | static void print_usage(const char *program_name) { function print_performance_report_text (line 887) | static void print_performance_report_text(ProfilerContext *ctx, FILE *ou... function print_performance_report_json (line 970) | static void print_performance_report_json(ProfilerContext *ctx, FILE *ou... function main (line 1043) | int main(int argc, char *argv[]) { FILE: tools/fdfs_quota.c type QuotaType (line 68) | typedef enum { type QuotaStatus (line 75) | typedef enum { type QuotaEntry (line 84) | typedef struct { type QuotaUsage (line 99) | typedef struct { type QuotaConfig (line 114) | typedef struct { function parse_size_string (line 148) | static int parse_size_string(const char *size_str, int64_t *bytes) { function format_bytes (line 215) | static void format_bytes(int64_t bytes, char *buf, size_t buf_size) { function load_quota_config (line 247) | static int load_quota_config(const char *config_file) { function save_quota_config (line 439) | static int save_quota_config(const char *config_file) { function QuotaEntry (line 516) | static QuotaEntry *find_quota_entry(QuotaType type, const char *identifi... function QuotaStatus (line 551) | static QuotaStatus calculate_quota_status(QuotaUsage *usage, QuotaEntry ... function get_group_usage (line 596) | static int get_group_usage(ConnectionInfo *pTrackerServer, function get_server_usage (line 673) | static int get_server_usage(ConnectionInfo *pTrackerServer, function print_usage_text (line 802) | static void print_usage_text(QuotaUsage *usage) { function print_usage_json (line 888) | static void print_usage_json(QuotaUsage *usage, int first) { function print_usage_info (line 933) | static void print_usage_info(QuotaUsage *usage, int first) { function monitor_quota (line 952) | static int monitor_quota(ConnectionInfo *pTrackerServer, function set_quota (line 1101) | static int set_quota(QuotaType type, function print_usage (line 1171) | static void print_usage(const char *program_name) { function list_quotas (line 1224) | static int list_quotas(void) { function remove_quota (line 1305) | static int remove_quota(const char *identifier) { function main (line 1356) | int main(int argc, char *argv[]) { FILE: tools/fdfs_rebalance.c type RebalanceTask (line 83) | typedef struct { type ServerInfo (line 96) | typedef struct { type RebalanceContext (line 115) | typedef struct { function print_usage (line 153) | static void print_usage(const char *program_name) { function parse_size_string (line 220) | static int parse_size_string(const char *size_str, int64_t *bytes) { function format_bytes (line 280) | static void format_bytes(int64_t bytes, char *buf, size_t buf_size) { function get_group_storage_info (line 307) | static int get_group_storage_info(ConnectionInfo *pTrackerServer, function calculate_rebalancing_plan (line 382) | static int calculate_rebalancing_plan(RebalanceContext *ctx, function move_file (line 493) | static int move_file(RebalanceContext *ctx, RebalanceTask *task) { function print_rebalancing_results_text (line 661) | static void print_rebalancing_results_text(RebalanceContext *ctx, function print_rebalancing_results_json (line 735) | static void print_rebalancing_results_json(RebalanceContext *ctx, function main (line 796) | int main(int argc, char *argv[]) { FILE: tools/fdfs_recover.c type RecoveryInfo (line 26) | typedef struct { type RecoveryList (line 35) | typedef struct { type RecoveryContext (line 42) | typedef struct { function print_usage (line 57) | static void print_usage(const char *program_name) { function add_to_recovery_list (line 78) | static int add_to_recovery_list(RecoveryList *list, const char *file_path, function scan_directory_recursive (line 106) | static int scan_directory_recursive(const char *dir_path, RecoveryList *... function extract_file_id_from_path (line 147) | static int extract_file_id_from_path(const char *file_path, const char *... function recover_file (line 165) | static int recover_file(ConnectionInfo *pTrackerServer, function generate_recovery_report (line 268) | static void generate_recovery_report(RecoveryList *list, FILE *output) { function main (line 310) | int main(int argc, char *argv[]) { FILE: tools/fdfs_repair.c type RepairStatus (line 25) | typedef enum { type RepairInfo (line 33) | typedef struct { type RepairContext (line 43) | typedef struct { function print_usage (line 62) | static void print_usage(const char *program_name) { function verify_file_integrity (line 83) | static int verify_file_integrity(ConnectionInfo *pTrackerServer, function calculate_file_crc32 (line 110) | static uint32_t calculate_file_crc32(const char *filename) { function repair_file (line 129) | static int repair_file(ConnectionInfo *pTrackerServer, function load_file_list (line 304) | static int load_file_list(const char *list_file, RepairInfo **repairs, i... function generate_repair_report (line 362) | static void generate_repair_report(RepairInfo *repairs, int count, FILE ... function main (line 410) | int main(int argc, char *argv[]) { FILE: tools/fdfs_replication.c type ReplicationTask (line 25) | typedef struct { type ReplicationContext (line 37) | typedef struct { function print_usage (line 52) | static void print_usage(const char *program_name) { function parse_target_groups (line 73) | static int parse_target_groups(const char *groups_str, char target_group... function extract_group_from_file_id (line 96) | static int extract_group_from_file_id(const char *file_id, char *group_n... function replicate_file_to_group (line 113) | static int replicate_file_to_group(ConnectionInfo *pTrackerServer, function load_file_list (line 227) | static int load_file_list(const char *list_file, function query_file_info (line 307) | static int query_file_info(ConnectionInfo *pTrackerServer, ReplicationTa... function generate_replication_report (line 330) | static void generate_replication_report(ReplicationTask *tasks, int coun... function main (line 376) | int main(int argc, char *argv[]) { FILE: tools/fdfs_replication_status.c type ReplicationStatus (line 64) | typedef enum { type ReplicationLagInfo (line 73) | typedef struct { type ServerReplicationInfo (line 93) | typedef struct { type GroupReplicationInfo (line 113) | typedef struct { function print_usage (line 146) | static void print_usage(const char *program_name) { function format_duration (line 204) | static void format_duration(int64_t seconds, char *buf, size_t buf_size) { function format_timestamp (line 231) | static void format_timestamp(time_t timestamp, char *buf, size_t buf_siz... function format_bytes (line 253) | static void format_bytes(int64_t bytes, char *buf, size_t buf_size) { function ReplicationStatus (line 279) | static ReplicationStatus calculate_replication_status(int64_t lag_seconds, function get_group_replication_status (line 328) | static int get_group_replication_status(ConnectionInfo *pTrackerServer, function print_replication_status_text (line 540) | static void print_replication_status_text(GroupReplicationInfo *group_info, function print_replication_status_json (line 732) | static void print_replication_status_json(GroupReplicationInfo *group_info, function main (line 818) | int main(int argc, char *argv[]) { FILE: tools/fdfs_restore.c type RestoreFileInfo (line 27) | typedef struct { type RestoreContext (line 37) | typedef struct { function print_usage (line 55) | static void print_usage(const char *program_name) { function calculate_file_crc32 (line 77) | static uint32_t calculate_file_crc32(const char *filename) { function parse_manifest (line 96) | static int parse_manifest(const char *backup_dir, RestoreFileInfo **file... function restore_metadata (line 173) | static int restore_metadata(ConnectionInfo *pTrackerServer, function restore_single_file (line 219) | static int restore_single_file(ConnectionInfo *pTrackerServer, function write_restore_log (line 363) | static int write_restore_log(const char *backup_dir, RestoreFileInfo *fi... function main (line 395) | int main(int argc, char *argv[]) { FILE: tools/fdfs_search.c type SearchCriteria (line 81) | typedef struct { type SearchResult (line 110) | typedef struct { type SearchContext (line 124) | typedef struct { function print_usage (line 157) | static void print_usage(const char *program_name) { function parse_size_string (line 242) | static int parse_size_string(const char *size_str, int64_t *bytes) { function parse_date_string (line 302) | static int parse_date_string(const char *date_str, time_t *timestamp) { function get_file_extension (line 341) | static void get_file_extension(const char *file_id, char *extension, siz... function format_bytes (line 388) | static void format_bytes(int64_t bytes, char *buf, size_t buf_size) { function format_timestamp (line 412) | static void format_timestamp(time_t timestamp, char *buf, size_t buf_siz... function get_file_info_for_search (line 436) | static int get_file_info_for_search(ConnectionInfo *pTrackerServer, function matches_search_criteria (line 496) | static int matches_search_criteria(SearchResult *result, SearchCriteria ... function read_file_list (line 753) | static int read_file_list(const char *list_file, function perform_search (line 854) | static int perform_search(ConnectionInfo *pTrackerServer, function main (line 1103) | int main(int argc, char *argv[]) { FILE: tools/fdfs_snapshot.c type SnapshotFileEntry (line 89) | typedef struct { type Snapshot (line 99) | typedef struct { type SnapshotContext (line 109) | typedef struct { function print_usage (line 139) | static void print_usage(const char *program_name) { function format_bytes (line 213) | static void format_bytes(int64_t bytes, char *buf, size_t buf_size) { function format_timestamp (line 237) | static void format_timestamp(time_t timestamp, char *buf, size_t buf_siz... function create_directory_recursive (line 258) | static int create_directory_recursive(const char *path) { function read_file_list (line 307) | static int read_file_list(const char *list_file, function create_snapshot_entry (line 406) | static int create_snapshot_entry(SnapshotContext *ctx, const char *file_id, function write_snapshot_manifest (line 496) | static int write_snapshot_manifest(Snapshot *snapshot) { function read_snapshot_manifest (line 549) | static int read_snapshot_manifest(const char *snapshot_dir, Snapshot *sn... function create_snapshot (line 659) | static int create_snapshot(SnapshotContext *ctx, const char *snapshot_name, function restore_from_snapshot (line 789) | static int restore_from_snapshot(SnapshotContext *ctx, const char *snaps... function list_snapshots (line 898) | static int list_snapshots(SnapshotContext *ctx, FILE *output_file) { function delete_snapshot (line 993) | static int delete_snapshot(SnapshotContext *ctx, const char *snapshot_na... function cleanup_snapshots (line 1029) | static int cleanup_snapshots(SnapshotContext *ctx, int keep_count, int k... function print_snapshot_results_text (line 1153) | static void print_snapshot_results_text(FILE *output_file) { function print_snapshot_results_json (line 1177) | static void print_snapshot_results_json(FILE *output_file) { function main (line 1203) | int main(int argc, char *argv[]) { FILE: tools/fdfs_storage_stat.c type StorageStats (line 23) | typedef struct { type GroupStats (line 45) | typedef struct { function print_usage (line 59) | static void print_usage(const char *program_name) { function format_bytes (line 80) | static void format_bytes(int64_t bytes, char *buf, size_t buf_size) { function format_time (line 94) | static void format_time(time_t timestamp, char *buf, size_t buf_size) { function calculate_success_rate (line 106) | static double calculate_success_rate(int64_t success, int64_t total) { function print_storage_stats_text (line 113) | static void print_storage_stats_text(GroupStats *groups, int group_count) { function print_storage_stats_json (line 187) | static void print_storage_stats_json(GroupStats *groups, int group_count) { function collect_storage_stats (line 246) | static int collect_storage_stats(ConnectionInfo *pTrackerServer, function main (line 322) | int main(int argc, char *argv[]) { FILE: tools/fdfs_sync_check.c type SyncStatus (line 59) | typedef enum { type ServerFileInfo (line 69) | typedef struct { type SyncCheckResult (line 82) | typedef struct { type CheckContext (line 94) | typedef struct { function print_usage (line 122) | static void print_usage(const char *program_name) { function get_time_ms (line 160) | static long get_time_ms(void) { function calculate_file_crc32 (line 175) | static uint32_t calculate_file_crc32(const char *filename) { function download_file_to_temp (line 210) | static int download_file_to_temp(ConnectionInfo *pTrackerServer, function query_file_info_from_server (line 237) | static int query_file_info_from_server(ConnectionInfo *pTrackerServer, function get_group_servers (line 330) | static int get_group_servers(ConnectionInfo *pTrackerServer, function check_file_sync (line 397) | static int check_file_sync(ConnectionInfo *pTrackerServer, function check_files_from_list (line 634) | static int check_files_from_list(ConnectionInfo *pTrackerServer, function main (line 927) | int main(int argc, char *argv[]) { FILE: tools/fdfs_tag.c type TagOperation (line 88) | typedef enum { type TagTask (line 98) | typedef struct { type TagContext (line 108) | typedef struct { function print_usage (line 146) | static void print_usage(const char *program_name) { function parse_tags_string (line 224) | static int parse_tags_string(const char *tags_str, char tags[][MAX_TAG_L... function get_file_tags (line 279) | static int get_file_tags(ConnectionInfo *pTrackerServer, const char *fil... function set_file_tags (line 344) | static int set_file_tags(ConnectionInfo *pTrackerServer, const char *fil... function remove_file_tags (line 447) | static int remove_file_tags(ConnectionInfo *pTrackerServer, const char *... function file_matches_tags (line 545) | static int file_matches_tags(ConnectionInfo *pTrackerServer, const char ... function process_tag_task (line 617) | static int process_tag_task(TagContext *ctx, TagTask *task) { function read_file_list (line 808) | static int read_file_list(const char *list_file, function search_files_by_tags (line 907) | static int search_files_by_tags(TagContext *ctx, const char *file_list) { function print_tag_results_text (line 980) | static void print_tag_results_text(TagContext *ctx, FILE *output_file) { function print_tag_results_json (line 1049) | static void print_tag_results_json(TagContext *ctx, FILE *output_file) { function main (line 1131) | int main(int argc, char *argv[]) { FILE: tracker/fdfs_server_id_func.c function fdfs_is_server_id_valid (line 25) | bool fdfs_is_server_id_valid(const char *id) function fdfs_cmp_group_name_and_ip (line 52) | static int fdfs_cmp_group_name_and_ip(const void *p1, const void *p2) function fdfs_cmp_server_id (line 66) | static int fdfs_cmp_server_id(const void *p1, const void *p2) function fdfs_cmp_ip_and_port (line 72) | static int fdfs_cmp_ip_and_port(const void *p1, const void *p2) function FDFSStorageIdInfo (line 86) | FDFSStorageIdInfo *fdfs_get_storage_id_by_ip(const char *group_name, function FDFSStorageIdInfo (line 109) | FDFSStorageIdInfo *fdfs_get_storage_by_id(const char *id) function fdfs_calc_ip_count (line 120) | static int fdfs_calc_ip_count() function fdfs_init_ip_array (line 136) | static int fdfs_init_ip_array(FDFSStorageIdMapArray *mapArray, function fdfs_check_id_duplicated (line 179) | static int fdfs_check_id_duplicated() function fdfs_check_ip_port (line 203) | static int fdfs_check_ip_port() function FDFSStorageIdInfo (line 260) | FDFSStorageIdInfo *fdfs_get_storage_id_by_ip_port(const char *pIpAddr, function fdfs_check_storage_id (line 289) | int fdfs_check_storage_id(const char *group_name, const char *id) function parse_storage_options (line 302) | static int parse_storage_options(char *options, function fdfs_load_storage_ids (line 393) | int fdfs_load_storage_ids(char *content, const char *pStorageIdsFilename) function fdfs_get_storage_ids_from_tracker_server (line 662) | int fdfs_get_storage_ids_from_tracker_server(TrackerServerInfo *pTracker... function fdfs_get_storage_ids_from_tracker_group (line 844) | int fdfs_get_storage_ids_from_tracker_group(TrackerServerGroup *pTracker... function fdfs_load_storage_ids_from_file (line 892) | int fdfs_load_storage_ids_from_file(const char *config_filename, \ function fdfs_storage_servers_contain_ipv6 (line 963) | bool fdfs_storage_servers_contain_ipv6() FILE: tracker/fdfs_server_id_func.h type FDFSStorageIdInfo (line 54) | typedef struct type FDFSStorageIdMap (line 63) | typedef struct type FDFSStorageIdInfoArray (line 71) | typedef struct type FDFSStorageIdMapArray (line 77) | typedef struct function fdfs_get_server_id_type (line 88) | static inline int fdfs_get_server_id_type(const int id) FILE: tracker/fdfs_shared_func.c function fdfs_server_contain (line 24) | bool fdfs_server_contain(TrackerServerInfo *pServerInfo, function fdfs_server_contain_ex (line 55) | bool fdfs_server_contain_ex(TrackerServerInfo *pServer1, function fdfs_server_equal (line 86) | bool fdfs_server_equal(TrackerServerInfo *pServer1, function fdfs_server_contain_local_service (line 115) | bool fdfs_server_contain_local_service(TrackerServerInfo *pServerInfo, function TrackerServerInfo (line 133) | TrackerServerInfo *fdfs_tracker_group_get_server(TrackerServerGroup *pGr... function fdfs_server_sock_reset (line 151) | void fdfs_server_sock_reset(TrackerServerInfo *pServerInfo) function fdfs_get_tracker_leader_index_ex (line 175) | int fdfs_get_tracker_leader_index_ex(TrackerServerGroup *pServerGroup, function fdfs_parse_storage_reserved_space (line 198) | int fdfs_parse_storage_reserved_space(IniContext *pIniContext, function fdfs_get_storage_reserved_space_mb (line 319) | int64_t fdfs_get_storage_reserved_space_mb(const int64_t total_mb, function fdfs_check_reserved_space (line 333) | bool fdfs_check_reserved_space(FDFSGroupInfo *pGroup, \ function fdfs_check_reserved_space_trunk (line 359) | bool fdfs_check_reserved_space_trunk(FDFSGroupInfo *pGroup, \ function fdfs_check_reserved_space_path (line 386) | bool fdfs_check_reserved_space_path(const int64_t total_mb, function fdfs_connection_pool_init (line 415) | int fdfs_connection_pool_init(const char *config_filename, \ function fdfs_connection_pool_destroy (line 441) | void fdfs_connection_pool_destroy() function fdfs_parse_server_info_ex (line 446) | int fdfs_parse_server_info_ex(char *server_str, const int default_port, function fdfs_server_info_to_string_ex (line 523) | int fdfs_server_info_to_string_ex(const TrackerServerInfo *pServer, function fdfs_get_ip_type (line 613) | int fdfs_get_ip_type(const char* ip) function fdfs_check_server_ips (line 642) | int fdfs_check_server_ips(const TrackerServerInfo *pServer, function fdfs_parse_multi_ips_ex (line 685) | int fdfs_parse_multi_ips_ex(char *ip_str, FDFSMultiIP *ip_addrs, function fdfs_multi_ips_to_string_ex (line 725) | int fdfs_multi_ips_to_string_ex(const FDFSMultiIP *ip_addrs, function fdfs_check_and_format_ips (line 786) | int fdfs_check_and_format_ips(FDFSMultiIP *ip_addrs, function fdfs_set_multi_ip_index (line 834) | void fdfs_set_multi_ip_index(FDFSMultiIP *multi_ip, const char *target_ip) function fdfs_set_server_info_index (line 852) | void fdfs_set_server_info_index(TrackerServerInfo *pServer, function fdfs_set_server_info (line 872) | void fdfs_set_server_info(TrackerServerInfo *pServer, function fdfs_set_server_info_ex (line 880) | void fdfs_set_server_info_ex(TrackerServerInfo *pServer, function fdfs_multi_ips_contain_ipv6 (line 904) | bool fdfs_multi_ips_contain_ipv6(const FDFSMultiIP *ip_addrs) FILE: tracker/fdfs_shared_func.h function fdfs_server_contain1 (line 69) | static inline bool fdfs_server_contain1(TrackerServerInfo *pServerInfo, function fdfs_parse_server_info (line 100) | static inline int fdfs_parse_server_info(char *server_str, const int def... function fdfs_server_info_to_string (line 111) | static inline int fdfs_server_info_to_string(const TrackerServerInfo *pS... function fdfs_multi_ips_to_string (line 121) | static inline int fdfs_multi_ips_to_string(const FDFSMultiIP *ip_addrs, function fdfs_parse_multi_ips (line 131) | static inline int fdfs_parse_multi_ips(char *ip_str, FDFSMultiIP *ip_addrs, function fdfs_set_server_info_index1 (line 155) | static inline void fdfs_set_server_info_index1(TrackerServerInfo *pServer, FILE: tracker/fdfs_trackerd.c function setup_signal_handlers (line 59) | static int setup_signal_handlers() function setup_schedule_tasks (line 121) | static int setup_schedule_tasks() function main (line 145) | int main(int argc, char *argv[]) function sigDumpHandler (line 331) | static void sigDumpHandler(int sig) function sigQuitHandler (line 355) | static void sigQuitHandler(int sig) function sigHupHandler (line 370) | static void sigHupHandler(int sig) function sigAlarmHandler (line 381) | static void sigAlarmHandler(int sig) function sigUsrHandler (line 433) | static void sigUsrHandler(int sig) FILE: tracker/tracker_dump.c function fdfs_dump_group_stat (line 30) | static int fdfs_dump_group_stat(FDFSGroupInfo *pGroup, char *buff, const... function fdfs_dump_storage_stat (line 159) | static int fdfs_dump_storage_stat(FDFSStorageDetail *pServer, function fdfs_dump_global_vars (line 270) | static int fdfs_dump_global_vars(char *buff, const int buffSize) function fdfs_dump_tracker_servers (line 375) | static int fdfs_dump_tracker_servers(char *buff, const int buffSize) function fdfs_dump_groups_info (line 406) | static int fdfs_dump_groups_info(char *buff, const int buffSize) function fdfs_dump_tracker_global_vars_to_file (line 445) | int fdfs_dump_tracker_global_vars_to_file(const char *filename) FILE: tracker/tracker_func.c function tracker_load_store_lookup (line 40) | static int tracker_load_store_lookup(const char *filename, \ function tracker_load_storage_id_info (line 96) | static int tracker_load_storage_id_info(const char *config_filename, function tracker_load_from_conf_file (line 138) | int tracker_load_from_conf_file(const char *filename) FILE: tracker/tracker_mem.c function tracker_mem_pthread_lock (line 340) | int tracker_mem_pthread_lock() function tracker_mem_pthread_unlock (line 355) | int tracker_mem_pthread_unlock() function tracker_mem_file_lock (line 370) | int tracker_mem_file_lock() function tracker_mem_file_unlock (line 385) | int tracker_mem_file_unlock() function tracker_write_to_changelog (line 400) | static int tracker_write_to_changelog(FDFSGroupInfo *pGroup, \ function tracker_malloc_storage_path_mbs (line 444) | static int tracker_malloc_storage_path_mbs(FDFSStorageDetail *pStorage, \ function tracker_realloc_storage_path_mbs (line 484) | static int tracker_realloc_storage_path_mbs(FDFSStorageDetail *pStorage, \ function tracker_realloc_group_path_mbs (line 546) | static int tracker_realloc_group_path_mbs(FDFSGroupInfo *pGroup, \ function tracker_malloc_group_path_mbs (line 568) | static int tracker_malloc_group_path_mbs(FDFSGroupInfo *pGroup) function tracker_malloc_all_group_path_mbs (line 587) | static int tracker_malloc_all_group_path_mbs(FDFSGroups *pGroups) function tracker_load_groups_old (line 610) | static int tracker_load_groups_old(FDFSGroups *pGroups, const char *data... function tracker_mem_get_storage_id (line 694) | static int tracker_mem_get_storage_id(const char *group_name, \ function tracker_load_groups_new (line 708) | static int tracker_load_groups_new(FDFSGroups *pGroups, const char *data... function tracker_locate_group_trunk_servers (line 887) | static int tracker_locate_group_trunk_servers(FDFSGroups *pGroups, function tracker_locate_storage_sync_server (line 943) | static int tracker_locate_storage_sync_server(FDFSGroups *pGroups, \ function tracker_load_storages_old (line 1003) | static int tracker_load_storages_old(FDFSGroups *pGroups, function tracker_load_storages_new (line 1224) | static int tracker_load_storages_new(FDFSGroups *pGroups, const char *da... function tracker_load_sync_timestamps (line 1517) | static int tracker_load_sync_timestamps(FDFSGroups *pGroups, const char ... function tracker_load_data (line 1747) | static int tracker_load_data(FDFSGroups *pGroups) function tracker_save_groups (line 1822) | int tracker_save_groups() function tracker_save_storages (line 2019) | int tracker_save_storages() function tracker_save_sync_timestamps (line 2599) | int tracker_save_sync_timestamps() function tracker_save_sys_files (line 2726) | int tracker_save_sys_files() function tracker_open_changlog_file (line 2743) | static int tracker_open_changlog_file() function tracker_mem_init_groups (line 2793) | static int tracker_mem_init_groups(FDFSGroups *pGroups) function tracker_mem_init (line 2855) | int tracker_mem_init() function tracker_free_last_sync_timestamps (line 2877) | static void tracker_free_last_sync_timestamps(int **last_sync_timestamps, \ function tracker_mem_free_storages (line 2935) | static void tracker_mem_free_storages(FDFSStorageDetail **servers, const... function tracker_mem_free_group (line 2952) | static void tracker_mem_free_group(FDFSGroupInfo *pGroup) function FDFSStorageDetail (line 2984) | static FDFSStorageDetail **alloc_storage_ptr_servers(const int alloc_size) function tracker_mem_init_group (line 3002) | static int tracker_mem_init_group(FDFSGroupInfo *pGroup) function tracker_mem_destroy_groups (line 3060) | static int tracker_mem_destroy_groups(FDFSGroups *pGroups, const bool sa... function tracker_mem_destroy (line 3100) | int tracker_mem_destroy() function tracker_mem_free_groups (line 3129) | static void tracker_mem_free_groups(FDFSGroupInfo **groups, const int co... function tracker_mem_realloc_groups (line 3146) | static int tracker_mem_realloc_groups(FDFSGroups *pGroups, const bool bN... function tracker_get_group_file_count (line 3220) | int tracker_get_group_file_count(FDFSGroupInfo *pGroup) function tracker_get_group_success_upload_count (line 3237) | int tracker_get_group_success_upload_count(FDFSGroupInfo *pGroup) function FDFSStorageDetail (line 3253) | FDFSStorageDetail *tracker_get_group_sync_src_server(FDFSGroupInfo *pGroup, function tracker_mem_realloc_store_servers (line 3275) | static int tracker_mem_realloc_store_servers(FDFSGroupInfo *pGroup, function tracker_mem_cmp_by_group_name (line 3438) | static int tracker_mem_cmp_by_group_name(const void *p1, const void *p2) function tracker_mem_cmp_by_storage_id (line 3444) | static int tracker_mem_cmp_by_storage_id(const void *p1, const void *p2) function tracker_mem_insert_into_sorted_servers (line 3450) | static void tracker_mem_insert_into_sorted_servers( function tracker_mem_insert_into_sorted_groups (line 3473) | static void tracker_mem_insert_into_sorted_groups(FDFSGroups *pGroups, \ function FDFSGroupInfo (line 3497) | FDFSGroupInfo *tracker_mem_get_group_ex(FDFSGroups *pGroups, \ function tracker_mem_add_group_ex (line 3521) | static int tracker_mem_add_group_ex(FDFSGroups *pGroups, function FDFSStorageDetail (line 3595) | static inline FDFSStorageDetail *get_readable_storage_by_id( function FDFSStorageDetail (line 3617) | static inline FDFSStorageDetail *get_writable_active_storage_by_id( function FDFSStorageDetail (line 3639) | static inline FDFSStorageDetail *get_readable_storage_by_ip( function FDFSStorageDetail (line 3657) | static inline FDFSStorageDetail *get_writable_active_storage_by_ip( function FDFSStorageDetail (line 3675) | FDFSStorageDetail *tracker_mem_get_storage_by_ip(FDFSGroupInfo *pGroup, function FDFSStorageDetail (line 3708) | FDFSStorageDetail *tracker_mem_get_storage(FDFSGroupInfo *pGroup, function tracker_mem_clear_storage_fields (line 3731) | static void tracker_mem_clear_storage_fields(FDFSStorageDetail *pStorage... function tracker_mem_remove_group (line 3758) | static int tracker_mem_remove_group(FDFSGroupInfo **groups, FDFSGroupInf... function tracker_mem_delete_group (line 3786) | int tracker_mem_delete_group(const char *group_name) function tracker_mem_delete_storage (line 3839) | int tracker_mem_delete_storage(FDFSGroupInfo *pGroup, const char *id) function tracker_mem_storage_ip_changed (line 3893) | int tracker_mem_storage_ip_changed(FDFSGroupInfo *pGroup, function tracker_mem_add_storage (line 3989) | static int tracker_mem_add_storage(TrackerClientInfo *pClientInfo, function tracker_mem_add_storage_from_file (line 4008) | static int tracker_mem_add_storage_from_file(FDFSGroups *pGroups, function _tracker_mem_add_storage (line 4090) | static int _tracker_mem_add_storage(FDFSGroupInfo *pGroup, function tracker_calc_running_times (line 4246) | void tracker_calc_running_times(TrackerRunningStatus *pStatus) function tracker_mem_get_sys_file_piece (line 4267) | static int tracker_mem_get_sys_file_piece(ConnectionInfo *pTrackerServer, function tracker_mem_get_one_sys_file (line 4363) | static int tracker_mem_get_one_sys_file(ConnectionInfo *pTrackerServer, \ function tracker_mem_get_sys_files (line 4409) | static int tracker_mem_get_sys_files(TrackerServerInfo *pTrackerServer) function tracker_mem_cmp_tracker_running_status (line 4442) | static int tracker_mem_cmp_tracker_running_status(const void *p1, const ... function find_my_ip_in_tracker_list (line 4469) | static int find_my_ip_in_tracker_list() function tracker_mem_first_add_tracker_servers (line 4506) | static int tracker_mem_first_add_tracker_servers(FDFSStorageJoinBody *pJ... function tracker_mem_copy_uniq_tracker_servers (line 4539) | static int tracker_mem_copy_uniq_tracker_servers( function tracker_mem_check_add_tracker_servers (line 4565) | static int tracker_mem_check_add_tracker_servers(FDFSStorageJoinBody *pJ... function tracker_mem_get_tracker_server (line 4696) | static int tracker_mem_get_tracker_server(FDFSStorageJoinBody *pJoinBody, \ function tracker_mem_get_sys_files_from_others (line 4766) | static int tracker_mem_get_sys_files_from_others(FDFSStorageJoinBody *pJ... function tracker_mem_add_group_and_storage (line 4848) | int tracker_mem_add_group_and_storage(TrackerClientInfo *pClientInfo, function tracker_mem_sync_storages (line 5254) | int tracker_mem_sync_storages(FDFSGroupInfo *pGroup, \ function tracker_mem_find_store_server (line 5363) | static void tracker_mem_find_store_server(FDFSGroupInfo *pGroup) function _storage_get_trunk_binlog_size (line 5404) | static int _storage_get_trunk_binlog_size( function tracker_mem_get_trunk_binlog_size (line 5454) | static int tracker_mem_get_trunk_binlog_size( function tracker_write_to_trunk_change_log (line 5483) | static int tracker_write_to_trunk_change_log(FDFSGroupInfo *pGroup, \ function tracker_set_trunk_server_and_log (line 5585) | static int tracker_set_trunk_server_and_log(FDFSGroupInfo *pGroup, \ function tracker_mem_do_set_trunk_server (line 5613) | static int tracker_mem_do_set_trunk_server(FDFSGroupInfo *pGroup, function tracker_mem_find_trunk_server (line 5652) | static int tracker_mem_find_trunk_server(FDFSGroupInfo *pGroup, function FDFSStorageDetail (line 5703) | const FDFSStorageDetail *tracker_mem_set_trunk_server( function remove_from_storage_array (line 5773) | static int remove_from_storage_array(FDFSStoragePtrArray *array, function deactive_storage_server (line 5799) | static int deactive_storage_server(FDFSGroupInfo *pGroup, function tracker_mem_active_store_server (line 5846) | int tracker_mem_active_store_server(FDFSGroupInfo *pGroup, function tracker_mem_find_trunk_servers (line 5987) | void tracker_mem_find_trunk_servers() function tracker_mem_offline_store_server (line 6010) | int tracker_mem_offline_store_server(FDFSGroupInfo *pGroup, \ function FDFSStorageDetail (line 6043) | FDFSStorageDetail *tracker_get_writable_storage(FDFSGroupInfo *pStoreGroup) function tracker_mem_get_storage_by_filename (line 6079) | int tracker_mem_get_storage_by_filename(const byte cmd, const char *grou... function tracker_mem_check_alive (line 6340) | int tracker_mem_check_alive(void *arg) function tracker_mem_get_storage_index (line 6478) | int tracker_mem_get_storage_index(FDFSGroupInfo *pGroup, \ FILE: tracker/tracker_proto.c function fdfs_set_body_length (line 27) | int fdfs_set_body_length(struct fast_task_info *pTask) function fdfs_recv_header_ex (line 42) | int fdfs_recv_header_ex(ConnectionInfo *pTrackerServer, function fdfs_recv_response (line 86) | int fdfs_recv_response(ConnectionInfo *pTrackerServer, \ function fdfs_quit (line 156) | int fdfs_quit(ConnectionInfo *pTrackerServer) function fdfs_deal_no_body_cmd (line 179) | int fdfs_deal_no_body_cmd(ConnectionInfo *pTrackerServer, const int cmd) function fdfs_deal_no_body_cmd_ex (line 222) | int fdfs_deal_no_body_cmd_ex(const char *ip_addr, const int port, const ... function fdfs_validate_group_name (line 240) | int fdfs_validate_group_name(const char *group_name) function fdfs_validate_filename (line 265) | int fdfs_validate_filename(const char *filename) function metadata_cmp_by_name (line 286) | int metadata_cmp_by_name(const void *p1, const void *p2) function FDFSMetaData (line 318) | FDFSMetaData *fdfs_split_metadata_ex(char *meta_buff, \ function tracker_close_connection_ex (line 438) | void tracker_close_connection_ex(ConnectionInfo *conn, \ function ConnectionInfo (line 452) | ConnectionInfo *tracker_connect_server_ex(TrackerServerInfo *pServerInfo, function ConnectionInfo (line 488) | ConnectionInfo *tracker_connect_server_no_pool_ex(TrackerServerInfo *pSe... function ConnectionInfo (line 535) | ConnectionInfo *tracker_make_connection_ex(ConnectionInfo *conn, function tracker_disconnect_server (line 557) | void tracker_disconnect_server(TrackerServerInfo *pServerInfo) function tracker_disconnect_server_no_pool (line 575) | void tracker_disconnect_server_no_pool(TrackerServerInfo *pServerInfo) function fdfs_do_parameter_req (line 593) | static int fdfs_do_parameter_req(ConnectionInfo *pTrackerServer, function fdfs_get_ini_context_from_tracker_ex (line 638) | int fdfs_get_ini_context_from_tracker_ex(TrackerServerGroup *pTrackerGroup, function fdfs_get_tracker_status (line 739) | int fdfs_get_tracker_status(TrackerServerInfo *pTrackerServer, FILE: tracker/tracker_proto.h type TrackerHeader (line 133) | typedef struct type TrackerStorageJoinBody (line 140) | typedef struct type TrackerStorageJoinBodyResp (line 157) | typedef struct type TrackerGroupStat (line 163) | typedef struct type TrackerStorageSyncReqBody (line 206) | typedef struct type TrackerStatReportReqBody (line 212) | typedef struct type FDFSTrunkInfoBuff (line 218) | typedef struct type FDFSFetchStorageIdsBody (line 229) | typedef struct type fast_task_info (line 245) | struct fast_task_info function ConnectionInfo (line 280) | static inline ConnectionInfo *tracker_connect_server_no_pool( function fdfs_recv_header (line 319) | static inline int fdfs_recv_header(ConnectionInfo *pTrackerServer, function fdfs_pack_group_name (line 361) | static inline int fdfs_pack_group_name(const char *group_name, char *buff) function fdfs_pack_group_name_and_filename (line 375) | static inline int fdfs_pack_group_name_and_filename( FILE: tracker/tracker_relationship.c function fdfs_ping_leader (line 35) | static int fdfs_ping_leader(ConnectionInfo *pTrackerServer) function relationship_cmp_tracker_status (line 142) | static int relationship_cmp_tracker_status(const void *p1, const void *p2) function relationship_get_tracker_status (line 181) | static int relationship_get_tracker_status(TrackerRunningStatus *pStatus) function relationship_get_tracker_leader (line 196) | static int relationship_get_tracker_leader(TrackerRunningStatus *pTracke... function do_notify_leader_changed (line 260) | static int do_notify_leader_changed(TrackerServerInfo *pTrackerServer, \ function relationship_set_tracker_leader (line 342) | void relationship_set_tracker_leader(const int server_index, function relationship_notify_next_leader (line 364) | static int relationship_notify_next_leader(TrackerServerInfo *pTrackerSe... function relationship_commit_next_leader (line 381) | static int relationship_commit_next_leader(TrackerServerInfo *pTrackerSe... function relationship_notify_leader_changed (line 412) | static int relationship_notify_leader_changed(TrackerRunningStatus *pTra... function relationship_select_leader (line 471) | static int relationship_select_leader() function relationship_ping_leader (line 547) | static int relationship_ping_leader() function tracker_relationship_init (line 667) | int tracker_relationship_init() function tracker_relationship_destroy (line 694) | int tracker_relationship_destroy() FILE: tracker/tracker_service.c type fast_task_info (line 49) | struct fast_task_info function task_finish_clean_up (line 51) | static void task_finish_clean_up(struct fast_task_info *pTask) function sock_accept_done_callback (line 77) | static int sock_accept_done_callback(struct fast_task_info *task, function tracker_service_init (line 96) | int tracker_service_init() function tracker_service_destroy (line 113) | void tracker_service_destroy() function tracker_check_and_sync (line 125) | static int tracker_check_and_sync(struct fast_task_info *pTask, function tracker_changelog_response (line 238) | static int tracker_changelog_response(struct fast_task_info *pTask, \ function tracker_deal_changelog_req (line 321) | static int tracker_deal_changelog_req(struct fast_task_info *pTask) function tracker_deal_get_trunk_fid (line 414) | static int tracker_deal_get_trunk_fid(struct fast_task_info *pTask) function tracker_deal_parameter_req (line 440) | static int tracker_deal_parameter_req(struct fast_task_info *pTask) function tracker_deal_storage_replica_chg (line 516) | static int tracker_deal_storage_replica_chg(struct fast_task_info *pTask) function tracker_deal_report_trunk_fid (line 563) | static int tracker_deal_report_trunk_fid(struct fast_task_info *pTask) function tracker_deal_report_trunk_free_space (line 612) | static int tracker_deal_report_trunk_free_space(struct fast_task_info *p... function tracker_deal_notify_next_leader (line 655) | static int tracker_deal_notify_next_leader(struct fast_task_info *pTask) function tracker_deal_commit_next_leader (line 722) | static int tracker_deal_commit_next_leader(struct fast_task_info *pTask) function tracker_deal_server_get_storage_status (line 788) | static int tracker_deal_server_get_storage_status(struct fast_task_info ... function tracker_deal_get_storage_id (line 862) | static int tracker_deal_get_storage_id(struct fast_task_info *pTask) function tracker_deal_get_my_ip (line 942) | static int tracker_deal_get_my_ip(struct fast_task_info *pTask) function tracker_deal_get_storage_group_name (line 1001) | static int tracker_deal_get_storage_group_name(struct fast_task_info *pT... function tracker_deal_fetch_storage_ids (line 1074) | static int tracker_deal_fetch_storage_ids(struct fast_task_info *pTask) function tracker_deal_storage_report_status (line 1199) | static int tracker_deal_storage_report_status(struct fast_task_info *pTask) function tracker_deal_storage_change_status (line 1238) | static int tracker_deal_storage_change_status(struct fast_task_info *pTask) function tracker_deal_storage_join (line 1291) | static int tracker_deal_storage_join(struct fast_task_info *pTask) function tracker_deal_server_delete_group (line 1476) | static int tracker_deal_server_delete_group(struct fast_task_info *pTask) function tracker_deal_server_delete_storage (line 1500) | static int tracker_deal_server_delete_storage(struct fast_task_info *pTask) function tracker_deal_server_set_trunk_server (line 1553) | static int tracker_deal_server_set_trunk_server(struct fast_task_info *p... function tracker_deal_active_test (line 1631) | static int tracker_deal_active_test(struct fast_task_info *pTask) function tracker_deal_ping_leader (line 1649) | static int tracker_deal_ping_leader(struct fast_task_info *pTask) function tracker_deal_reselect_leader (line 1724) | static int tracker_deal_reselect_leader(struct fast_task_info *pTask) function tracker_unlock_by_client (line 1759) | static int tracker_unlock_by_client(struct fast_task_info *pTask) function tracker_lock_by_client (line 1780) | static int tracker_lock_by_client(struct fast_task_info *pTask) function tracker_deal_get_tracker_status (line 1810) | static int tracker_deal_get_tracker_status(struct fast_task_info *pTask) function tracker_deal_get_sys_files_start (line 1849) | static int tracker_deal_get_sys_files_start(struct fast_task_info *pTask) function tracker_deal_get_sys_files_end (line 1880) | static int tracker_deal_get_sys_files_end(struct fast_task_info *pTask) function tracker_deal_get_one_sys_file (line 1907) | static int tracker_deal_get_one_sys_file(struct fast_task_info *pTask) function tracker_deal_storage_report_ip_changed (line 2010) | static int tracker_deal_storage_report_ip_changed(struct fast_task_info ... function tracker_deal_storage_sync_notify (line 2078) | static int tracker_deal_storage_sync_notify(struct fast_task_info *pTask) function calc_reserved_space (line 2185) | static inline int64_t calc_reserved_space(int64_t total_mb) function encode_storage_stat (line 2227) | static void encode_storage_stat(FDFSStorageStat *pStorageStat, function tracker_deal_server_list_group_storages (line 2328) | static int tracker_deal_server_list_group_storages(struct fast_task_info... function tracker_deal_service_query_fetch_update (line 2449) | static int tracker_deal_service_query_fetch_update( function tracker_deal_service_query_storage (line 2559) | static int tracker_deal_service_query_storage( \ function tracker_deal_server_list_one_group (line 2936) | static int tracker_deal_server_list_one_group(struct fast_task_info *pTask) function tracker_deal_server_list_all_groups (line 2994) | static int tracker_deal_server_list_all_groups(struct fast_task_info *pT... function tracker_deal_storage_sync_src_req (line 3079) | static int tracker_deal_storage_sync_src_req(struct fast_task_info *pTask) function tracker_deal_storage_sync_dest_req (line 3162) | static int tracker_deal_storage_sync_dest_req(struct fast_task_info *pTask) function tracker_deal_storage_sync_dest_query (line 3258) | static int tracker_deal_storage_sync_dest_query(struct fast_task_info *p... function tracker_find_max_free_space_group (line 3296) | static void tracker_find_max_free_space_group() function tracker_find_min_free_space (line 3375) | static void tracker_find_min_free_space(FDFSGroupInfo *pGroup) function tracker_deal_storage_sync_report (line 3400) | static int tracker_deal_storage_sync_report(struct fast_task_info *pTask) function tracker_deal_storage_df_report (line 3556) | static int tracker_deal_storage_df_report(struct fast_task_info *pTask) function tracker_deal_storage_beat (line 3646) | static int tracker_deal_storage_beat(struct fast_task_info *pTask) function tracker_deal_task (line 3805) | static int tracker_deal_task(struct fast_task_info *pTask, const int stage) FILE: tracker/tracker_status.c function tracker_write_status_to_file (line 42) | int tracker_write_status_to_file(void *args) function tracker_load_status_from_file (line 71) | int tracker_load_status_from_file(TrackerStatus *pStatus) FILE: tracker/tracker_status.h type TrackerStatus (line 16) | typedef struct { FILE: tracker/tracker_types.h type FDFSReadWriteMode (line 127) | typedef enum { type FDFSStorageBrief (line 134) | typedef struct type FDFSGroupStat (line 142) | typedef struct type FDFSStorageStat (line 159) | typedef struct type FDFSStorageStatBuff (line 229) | typedef struct type FDFSIPInfo (line 281) | typedef struct StructFDFSIPInfo type FDFSMultiIP (line 287) | typedef struct StructFDFSMultiIP type FDFSStorageDetail (line 297) | typedef struct StructFDFSStorageDetail type FDFSStoragePtrArray (line 329) | typedef struct type FDFSGroupInfo (line 335) | typedef struct type FDFSGroups (line 371) | typedef struct type fast_task_info (line 386) | struct fast_task_info type TrackerClientInfo (line 388) | typedef struct type FDFSMetaData (line 399) | typedef struct type TrackerServerInfo (line 405) | typedef struct type FDFSStorageJoinBody (line 412) | typedef struct type TrackerServerGroup (line 429) | typedef struct type BinLogBuffer (line 437) | typedef struct type FDFSStorageSync (line 445) | typedef struct type FDFSStorageReservedSpace (line 452) | typedef struct { type TrackerRunningStatus (line 460) | typedef struct { type FDFSStorageId (line 467) | typedef struct { FILE: typescript_client/examples/appender-example.ts function main (line 11) | async function main() { FILE: typescript_client/examples/basic-usage.ts function main (line 12) | async function main() { FILE: typescript_client/examples/metadata-example.ts function main (line 13) | async function main() { FILE: typescript_client/src/client.ts class Client (line 30) | class Client { method constructor (line 37) | constructor(config: ClientConfig) { method validateConfig (line 77) | private validateConfig(config: ClientConfig): void { method checkClosed (line 96) | private checkClosed(): void { method uploadFile (line 105) | async uploadFile(localFilename: string, metadata?: Metadata): Promise<... method uploadBuffer (line 113) | async uploadBuffer(data: Buffer, fileExtName: string, metadata?: Metad... method uploadAppenderFile (line 121) | async uploadAppenderFile(localFilename: string, metadata?: Metadata): ... method uploadAppenderBuffer (line 129) | async uploadAppenderBuffer( method downloadFile (line 141) | async downloadFile(fileId: string): Promise { method downloadFileRange (line 149) | async downloadFileRange(fileId: string, offset: number, length: number... method downloadToFile (line 157) | async downloadToFile(fileId: string, localFilename: string): Promise { method setMetadata (line 173) | async setMetadata( method getMetadata (line 185) | async getMetadata(fileId: string): Promise { method getFileInfo (line 193) | async getFileInfo(fileId: string): Promise { method fileExists (line 201) | async fileExists(fileId: string): Promise { method close (line 217) | async close(): Promise { FILE: typescript_client/src/connection.ts class Connection (line 17) | class Connection { method constructor (line 23) | constructor(socket: net.Socket, addr: string) { method send (line 34) | async send(data: Buffer, timeout: number = 30000): Promise { method receive (line 62) | async receive(size: number, timeout: number = 30000): Promise { method receiveFull (line 98) | async receiveFull(size: number, timeout: number = 30000): Promise { method createConnection (line 251) | private async createConnection(addr: string): Promise { method put (line 286) | put(conn: Connection | null): void { method cleanPool (line 326) | private cleanPool(addr: string): void { method addAddr (line 350) | addAddr(addr: string): void { method close (line 369) | close(): void { FILE: typescript_client/src/errors.ts class FastDFSError (line 11) | class FastDFSError extends Error { method constructor (line 12) | constructor(message: string) { class ClientClosedError (line 22) | class ClientClosedError extends FastDFSError { method constructor (line 23) | constructor() { class FileNotFoundError (line 33) | class FileNotFoundError extends FastDFSError { method constructor (line 34) | constructor(fileId?: string) { class NoStorageServerError (line 44) | class NoStorageServerError extends FastDFSError { method constructor (line 45) | constructor() { class ConnectionTimeoutError (line 55) | class ConnectionTimeoutError extends FastDFSError { method constructor (line 56) | constructor(addr?: string) { class NetworkTimeoutError (line 66) | class NetworkTimeoutError extends FastDFSError { method constructor (line 67) | constructor(operation?: string) { class InvalidFileIDError (line 77) | class InvalidFileIDError extends FastDFSError { method constructor (line 78) | constructor(fileId?: string) { class InvalidResponseError (line 88) | class InvalidResponseError extends FastDFSError { method constructor (line 89) | constructor(details?: string) { class StorageServerOfflineError (line 99) | class StorageServerOfflineError extends FastDFSError { method constructor (line 100) | constructor(addr?: string) { class TrackerServerOfflineError (line 110) | class TrackerServerOfflineError extends FastDFSError { method constructor (line 111) | constructor(addr?: string) { class InsufficientSpaceError (line 121) | class InsufficientSpaceError extends FastDFSError { method constructor (line 122) | constructor() { class FileAlreadyExistsError (line 132) | class FileAlreadyExistsError extends FastDFSError { method constructor (line 133) | constructor(fileId?: string) { class InvalidMetadataError (line 143) | class InvalidMetadataError extends FastDFSError { method constructor (line 144) | constructor(details?: string) { class OperationNotSupportedError (line 154) | class OperationNotSupportedError extends FastDFSError { method constructor (line 155) | constructor(operation?: string) { class InvalidArgumentError (line 165) | class InvalidArgumentError extends FastDFSError { method constructor (line 166) | constructor(details?: string) { class ProtocolError (line 176) | class ProtocolError extends FastDFSError { method constructor (line 179) | constructor(code: number, message?: string) { class NetworkError (line 190) | class NetworkError extends FastDFSError { method constructor (line 195) | constructor(operation: string, addr: string, originalError: Error) { function mapStatusToError (line 218) | function mapStatusToError(status: number): Error | null { FILE: typescript_client/src/operations.ts class Operations (line 48) | class Operations { method constructor (line 54) | constructor( method uploadFile (line 69) | async uploadFile( method uploadBuffer (line 82) | async uploadBuffer( method uploadBufferInternal (line 104) | private async uploadBufferInternal( method getStorageServer (line 178) | private async getStorageServer(groupName: string): Promise { method deleteFileInternal (line 387) | private async deleteFileInternal(fileId: string): Promise { method setMetadata (line 429) | async setMetadata(fileId: string, metadata: Metadata, flag: MetadataFl... method getMetadata (line 479) | async getMetadata(fileId: string): Promise { method getFileInfo (line 530) | async getFileInfo(fileId: string): Promise { method sleep (line 593) | private sleep(ms: number): Promise { FILE: typescript_client/src/protocol.ts function encodeHeader (line 31) | function encodeHeader(length: number, cmd: number, status: number = 0): ... function decodeHeader (line 49) | function decodeHeader(data: Buffer): TrackerHeader { function splitFileId (line 67) | function splitFileId(fileId: string): [string, string] { function joinFileId (line 96) | function joinFileId(groupName: string, remoteFilename: string): string { function encodeMetadata (line 111) | function encodeMetadata(metadata?: Metadata): Buffer { function decodeMetadata (line 140) | function decodeMetadata(data: Buffer): Metadata { function getFileExtName (line 174) | function getFileExtName(filename: string): string { function readFileContent (line 188) | function readFileContent(filename: string): Buffer { function writeFileContent (line 197) | function writeFileContent(filename: string, data: Buffer): void { function padString (line 209) | function padString(s: string, length: number): Buffer { function unpadString (line 222) | function unpadString(data: Buffer): string { function encodeInt64 (line 235) | function encodeInt64(n: number): Buffer { function decodeInt64 (line 246) | function decodeInt64(data: Buffer): number { function encodeInt32 (line 256) | function encodeInt32(n: number): Buffer { function decodeInt32 (line 265) | function decodeInt32(data: Buffer): number { FILE: typescript_client/src/types.ts constant TRACKER_DEFAULT_PORT (line 9) | const TRACKER_DEFAULT_PORT = 22122; constant STORAGE_DEFAULT_PORT (line 10) | const STORAGE_DEFAULT_PORT = 23000; constant FDFS_PROTO_HEADER_LEN (line 13) | const FDFS_PROTO_HEADER_LEN = 10; constant FDFS_GROUP_NAME_MAX_LEN (line 16) | const FDFS_GROUP_NAME_MAX_LEN = 16; constant FDFS_FILE_EXT_NAME_MAX_LEN (line 17) | const FDFS_FILE_EXT_NAME_MAX_LEN = 6; constant FDFS_MAX_META_NAME_LEN (line 18) | const FDFS_MAX_META_NAME_LEN = 64; constant FDFS_MAX_META_VALUE_LEN (line 19) | const FDFS_MAX_META_VALUE_LEN = 256; constant FDFS_FILE_PREFIX_MAX_LEN (line 20) | const FDFS_FILE_PREFIX_MAX_LEN = 16; constant FDFS_STORAGE_ID_MAX_SIZE (line 21) | const FDFS_STORAGE_ID_MAX_SIZE = 16; constant FDFS_VERSION_SIZE (line 22) | const FDFS_VERSION_SIZE = 8; constant IP_ADDRESS_SIZE (line 23) | const IP_ADDRESS_SIZE = 16; constant FDFS_RECORD_SEPARATOR (line 26) | const FDFS_RECORD_SEPARATOR = 0x01; constant FDFS_FIELD_SEPARATOR (line 27) | const FDFS_FIELD_SEPARATOR = 0x02; type TrackerCommand (line 32) | enum TrackerCommand { type StorageCommand (line 54) | enum StorageCommand { type StorageStatus (line 71) | enum StorageStatus { type MetadataFlag (line 87) | enum MetadataFlag { type FileInfo (line 95) | interface FileInfo { type StorageServer (line 109) | interface StorageServer { type TrackerHeader (line 121) | interface TrackerHeader { type UploadResponse (line 133) | interface UploadResponse { type ClientConfig (line 143) | interface ClientConfig { type Metadata (line 161) | type Metadata = Record; FILE: typescript_client/tests/integration.test.ts constant TRACKER_ADDR (line 15) | const TRACKER_ADDR = process.env.FASTDFS_TRACKER_ADDR || '127.0.0.1:22122'; constant RUN_INTEGRATION_TESTS (line 16) | const RUN_INTEGRATION_TESTS = process.env.FASTDFS_TRACKER_ADDR !== undef...