Example #1
0
 //--------------------------------------------------------------------------
 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();
 }
Example #2
0
 //--------------------------------------------------------------------------
 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;
 }
Example #3
0
 //--------------------------------------------------------------------------
 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;
 }