winix/plugins/thread/threadinfo.h

95 lines
1.6 KiB
C++
Executable File

/*
* This file is a part of Winix
* and is not publicly distributed
*
* Copyright (c) 2010, Tomasz Sowa
* All rights reserved.
*
*/
#ifndef headerfile_winix_plugins_thread_threadinfo
#define headerfile_winix_plugins_thread_threadinfo
#include <vector>
#include "core/item.h"
#include "core/system.h"
#include "db/db.h"
#include "thread.h"
#include "tdb.h"
namespace Thread
{
class ThreadInfo
{
public:
void SetDb(Db * pdb);
void SetTDb(TDb * ptdb);
void SetSystem(System * psystem);
void Clear();
Item * FindThreadDir();
// id of a mount type
int mount_type_thread;
// enable a thread in a specific directory
// and set sort type (asc, desc)
int mount_par_thread;
// a special directory in which we store the answers
int mount_par_thread_dir;
// id of the current plugin
int plugin_id;
// files in the current directory
// used for 'show_threads' or 'thread' function
std::vector<Item> item_tab;
// additional info to the above files if 'show_threads' is used
// sorted by file_id
std::vector<Thread> thread_tab;
// for sorting
std::vector<Item*> item_sort_tab;
// template index for notifications
size_t template_index;
void RemoveThread(long file_id);
void RemoveThreadAnswer(long answer_id);
// repairing the database
void Repair();
private:
Db * db;
TDb * tdb;
System * system;
std::vector<Item*> out_dir_tab;
std::vector<long> remove_answer_id_tab, repair_id_tab, repair_answer_tab;
Item out_item, repair_item;
DbItemQuery iq;
void RepairAnswer(long answer_id);
void RepairAnswers(long file_id);
void Repair(long file_id);
};
} // namespace
#endif