diff options
Diffstat (limited to 'ProcessTable.h')
-rw-r--r-- | ProcessTable.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/ProcessTable.h b/ProcessTable.h new file mode 100644 index 0000000..96a517a --- /dev/null +++ b/ProcessTable.h @@ -0,0 +1,52 @@ +#ifndef HEADER_ProcessTable +#define HEADER_ProcessTable +/* +htop - ProcessTable.h +(C) 2004,2005 Hisham H. Muhammad +Released under the GNU GPLv2+, see the COPYING file +in the source distribution for its full text. +*/ + +#include <stdbool.h> +#include <sys/types.h> + +#include "Hashtable.h" +#include "Machine.h" +#include "Object.h" +#include "Process.h" +#include "Table.h" + + +typedef struct ProcessTable_ { + Table super; + + Hashtable* pidMatchList; + + unsigned int totalTasks; + unsigned int runningTasks; + unsigned int userlandThreads; + unsigned int kernelThreads; +} ProcessTable; + +/* Implemented by platforms */ +ProcessTable* ProcessTable_new(Machine* host, Hashtable* pidMatchList); +void ProcessTable_delete(Object* cast); +void ProcessTable_goThroughEntries(ProcessTable* this); + +void ProcessTable_init(ProcessTable* this, const ObjectClass* klass, Machine* host, Hashtable* pidMatchList); + +void ProcessTable_done(ProcessTable* this); + +extern const TableClass ProcessTable_class; + +static inline void ProcessTable_add(ProcessTable* this, Process* process) { + Table_add(&this->super, &process->super); +} + +Process* ProcessTable_getProcess(ProcessTable* this, pid_t pid, bool* preExisting, Process_New constructor); + +static inline Process* ProcessTable_findProcess(ProcessTable* this, pid_t pid) { + return (Process*) Table_findRow(&this->super, pid); +} + +#endif |