#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 #include #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