diff options
Diffstat (limited to 'maildrop/pipefds.h')
| -rw-r--r-- | maildrop/pipefds.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/maildrop/pipefds.h b/maildrop/pipefds.h new file mode 100644 index 0000000..1077114 --- /dev/null +++ b/maildrop/pipefds.h @@ -0,0 +1,35 @@ +#ifndef pipefds_h +#define pipefds_h + + +///////////////////////////////////////////////////////////////////////// +// +// Convenience class - automatically destroy pair of pipe handles. +// +///////////////////////////////////////////////////////////////////////// + +#include "config.h" +#include <stdlib.h> +#if HAVE_UNISTD_H +#include <unistd.h> +#endif + +class PipeFds { +public: + int fds[2]; + + PipeFds() { fds[0]= -1; fds[1]= -1; } + int Pipe(); + void close0() + { + if (fds[0] >= 0) close(fds[0]); + fds[0]= -1; + } + void close1() + { + if (fds[1] >= 0) close(fds[1]); + fds[1]= -1; + } + ~PipeFds(); +} ; +#endif |
