* pinfo.cc (winpids:add): New method.
(winpids::enumNT): New method renamed from EnumProcessesNT. Use add method to add elements to the lists. (winpids::enum9x): New method renamed from EnumProcesses9x. Use add method to add elements to the lists. (winpids::enum_init): Accept 'winpid' parameter to control whether to add all windows pids to the list. (winpids::release): New method. * pinfo.h (winpids): Reflect above changes. * signal.cc (kill_pgrp): Ditto. * external.cc (fillout_pinfo): Ditto.
This commit is contained in:
@@ -188,13 +188,23 @@ class winpids
|
||||
{
|
||||
DWORD *pidlist;
|
||||
DWORD npidlist;
|
||||
pinfo *pinfolist;
|
||||
DWORD (winpids::* enum_processes) (bool winpid);
|
||||
DWORD enum_init (bool winpid);
|
||||
DWORD enumNT (bool winpid);
|
||||
DWORD enum9x (bool winpid);
|
||||
void add (DWORD& nelem, bool, DWORD pid);
|
||||
public:
|
||||
DWORD npids;
|
||||
void reset () { npids = 0; }
|
||||
winpids (int) { reset (); }
|
||||
winpids (): pidlist (NULL), npidlist (0) { init (); };
|
||||
void init ();
|
||||
int operator [] (int i) const {return pidlist[i];}
|
||||
inline void reset () { npids = 0; release (); }
|
||||
void init (bool winpid);
|
||||
winpids (int): enum_processes (&winpids::enum_init) { reset (); }
|
||||
winpids (): pidlist (NULL), npidlist (0), pinfolist (NULL),
|
||||
enum_processes (&winpids::enum_init), npids (0) { init (0); }
|
||||
inline DWORD& winpid (int i) const {return pidlist[i];}
|
||||
inline _pinfo *operator [] (int i) const {return (_pinfo *) pinfolist[i];}
|
||||
~winpids ();
|
||||
void release ();
|
||||
};
|
||||
|
||||
extern __inline pid_t
|
||||
|
Reference in New Issue
Block a user