Esempio n. 1
0
size_t event_manager::get_managed_size(void) {
    DIR *dirp;
    std::ostringstream buffer;
    struct dirent *ent;
    ifstream f;

    size_t db_size = 0;

    dirp = opendir(eventpath.c_str());

    if (dirp) {
        while ( (ent = readdir(dirp)) != NULL ) {

            string str(ent->d_name);

            if (is_file_a_log(str)) {

                buffer.str("");
                buffer << eventpath << "/" << str.c_str();

                f.open(buffer.str() , ios::in|ios::binary|ios::ate);
                db_size += f.tellg();
                f.close();
            }
        }
    }

    closedir(dirp);

    return  (db_size);
}
Esempio n. 2
0
uint16_t event_manager::next_log(void) {

    std::ostringstream buffer;
    struct dirent *ent;
    uint16_t id;


    if (dirp == NULL)
        dirp = opendir(eventpath.c_str());

    if (dirp) {
        do {
            ent = readdir(dirp);

            if (ent == NULL)
                break;

            string str(ent->d_name);

            if (is_file_a_log(str)) {
                id = (uint16_t) atoi(str.c_str());
                break;
            }

        } while( 1 );
    } else {
        cerr << "Error opening directory " << eventpath << endl;
        ent    = NULL;
        id = 0;
    }

    if (ent == NULL) {
        closedir(dirp);
        dirp = NULL;
    }

    return  ((ent == NULL) ? 0 : id);
}
Esempio n. 3
0
bool event_manager::is_logid_a_log(uint16_t logid)
{
	std::ostringstream buffer;
	buffer  << int(logid);
	return is_file_a_log(buffer.str());
}