$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: joel reed (joel.reed_at_[hidden])
Date: 2005-11-01 13:13:48
I've been exploring what a cross platform process library would look like
and have a question about whether there is a preferred idiom for what I'll
call an occasional property for lack of a better term.
Given a process, I'd like to be able to query the parent process. Posix has
such a notion, but win32 doesn't. On posix, afaik, every process has a
parent except for "init."
I can't decide whether I should say
class process
{
public:
process parent();
static const process nprocess; // like std::string's npos
};
where parent() != nprocess when the process has a parent.
or
class process
{
public:
typedef std::pair<process,bool> parent_type;
parent_type parent();
};
where parent_type.second == true when the process has a parent.
I also considered a "parent_iterator", since on posix, you could keep
walking backwards up the hierarchy till you get to init, e.g.
class parent_iterator;
class process
{
public:
parent_iterator parent();
};
but conceptually, I couldn't see a good "end()"
Anyone care to offer an idea for the best way to handle this?
jr