//-------------------------------------------------------------------------- const char* new_filename_in_buffer (u64 cpu, u64 calendar) { new_file_name_c_str_in_buffer( m_folder, m_prefix, m_suffix, cpu, calendar ); return filename_in_buffer(); }
//-------------------------------------------------------------------------- bool can_write_in_folder (std::string folder) { try { append_separator_if (folder); if (m_buffer.size() < (folder.size() + fixed_chars_in_name + 1)) { m_buffer.resize (folder.size() + fixed_chars_in_name + 1, -1); } for (uword i = 0; ; ++i) { std::string empty; new_file_name_c_str_in_buffer (folder, empty, empty, i ,i + 1); const char* fn = filename_in_buffer(); std::ofstream file (fn); file.write ((const char*) &fn, m_buffer.size()); if (file.good()) { file.close(); erase_file (fn); break; } erase_file (fn); if (i == 20) //FIXME { std::cerr << "[logger] unable to create verification file: " "\"" << fn << "\", does folder exist? has this user write " "access to it?\n"; assert( false && "log: couldn't create or write a test file" ); return false; } th::this_thread::sleep_for (ch::milliseconds (1)); } } catch (...) { assert (false && "log: memory exception"); return false; } return true; }
//-------------------------------------------------------------------------- bool can_write_in_folder (const std::string& folder) { try { if (m_buffer.size() < (folder.size() + fixed_chars_in_name + 1)) { m_buffer.resize (folder.size() + fixed_chars_in_name + 1, -1); } for (uword i = 0; ; ++i) { std::string empty; new_file_name_c_str_in_buffer (folder, empty, empty, i ,i + 1); const char* fn = filename_in_buffer(); std::ofstream file (fn); file.write ((const char*) &fn, m_buffer.size()); if (file.good()) { file.close(); erase_file (fn); break; } erase_file (fn); if (i == 20) //FIXME { assert( false && "log: couldn't create or write a test file" ); return false; } th::this_thread::sleep_for (ch::milliseconds (1)); } } catch (...) { assert (false && "log: memory exception"); return false; } return true; }