Advertisement
TwITe

Untitled

Oct 9th, 2017
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.42 KB | None | 0 0
  1. bool write_data(int id, void* data, int current_data_size) {
  2.     FILE * data_file = NULL;
  3.     string current_file;
  4.     int last_written_byte_position = 0;
  5.     while (current_data_size != 0) {
  6.         if (data_file == NULL) {
  7.             current_file = get_new_file_path();
  8.         }
  9.         data_file = fopen(current_file.c_str(), "a+b");
  10.         unsigned int file_free_space = get_file_free_space(current_file);
  11.         if (file_free_space == 0) {
  12.             current_file = get_new_file_path();
  13.             data_file = fopen(current_file.c_str(), "a+b");
  14.         }
  15.         int bytes_number_to_write;
  16.         if (current_data_size > file_free_space) {
  17.             bytes_number_to_write = file_free_space;
  18.             write_data_to_file(data, data_file, last_written_byte_position, bytes_number_to_write, current_file, id);
  19.             last_written_byte_position += bytes_number_to_write;
  20.         }
  21.         else {
  22.             bytes_number_to_write = current_data_size;
  23.             write_data_to_file(data, data_file, last_written_byte_position, bytes_number_to_write, current_file, id);
  24.         }
  25.         current_data_size -= bytes_number_to_write;
  26.         is_data_size_invalid(current_data_size);
  27.         fclose(data_file);
  28.         data_file = NULL;
  29.     }
  30.     return true;
  31. }
  32.  
  33. bool storage(int id, void* data, int array_length) {
  34.     if (check_if_current_id_is_already_exists(id)) {
  35.         delete_data(id);
  36.     }
  37.     unsigned int current_data_size = array_length * 4;
  38.     save_current_data_size(id, current_data_size);
  39.     write_data(id, data, current_data_size);
  40.     indexes[id].deleted = false;
  41.     return true;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement