Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bool write_data(int id, void* data, int current_data_size) {
- FILE * data_file = NULL;
- string current_file;
- int last_written_byte_position = 0;
- while (current_data_size != 0) {
- if (data_file == NULL) {
- current_file = get_new_file_path();
- }
- data_file = fopen(current_file.c_str(), "a+b");
- unsigned int file_free_space = get_file_free_space(current_file);
- if (file_free_space == 0) {
- current_file = get_new_file_path();
- data_file = fopen(current_file.c_str(), "a+b");
- }
- int bytes_number_to_write;
- if (current_data_size > file_free_space) {
- bytes_number_to_write = file_free_space;
- write_data_to_file(data, data_file, last_written_byte_position, bytes_number_to_write, current_file, id);
- last_written_byte_position += bytes_number_to_write;
- }
- else {
- bytes_number_to_write = current_data_size;
- write_data_to_file(data, data_file, last_written_byte_position, bytes_number_to_write, current_file, id);
- }
- current_data_size -= bytes_number_to_write;
- is_data_size_invalid(current_data_size);
- fclose(data_file);
- data_file = NULL;
- }
- return true;
- }
- bool storage(int id, void* data, int array_length) {
- if (check_if_current_id_is_already_exists(id)) {
- delete_data(id);
- }
- unsigned int current_data_size = array_length * 4;
- save_current_data_size(id, current_data_size);
- write_data(id, data, current_data_size);
- indexes[id].deleted = false;
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement