diff options
Diffstat (limited to 'winsup/cygserver/transport_pipes.h')
-rw-r--r-- | winsup/cygserver/transport_pipes.h | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/winsup/cygserver/transport_pipes.h b/winsup/cygserver/transport_pipes.h new file mode 100644 index 000000000..7265a88f8 --- /dev/null +++ b/winsup/cygserver/transport_pipes.h @@ -0,0 +1,47 @@ +/* transport_pipes.h + + Copyright 2001, 2002, 2003 Red Hat Inc. + + Written by Robert Collins <rbtcollins@hotmail.com> + +This file is part of Cygwin. + +This software is a copyrighted work licensed under the terms of the +Cygwin license. Please consult the file "CYGWIN_LICENSE" for +details. */ + +#ifndef _TRANSPORT_PIPES_H +#define _TRANSPORT_PIPES_H + +/* Named pipes based transport, for security on NT */ +class transport_layer_pipes : public transport_layer_base +{ +public: +#ifndef __INSIDE_CYGWIN__ + virtual int listen (); + virtual class transport_layer_pipes *accept (bool *recoverable); +#endif + + virtual void close (); + virtual ssize_t read (void *buf, size_t len); + virtual ssize_t write (void *buf, size_t len); + virtual int connect (); + +#ifndef __INSIDE_CYGWIN__ + virtual bool impersonate_client (); + virtual bool revert_to_self (); +#endif + + transport_layer_pipes (); + virtual ~transport_layer_pipes (); + +private: + const char *const _pipe_name; + HANDLE _hPipe; + const bool _is_accepted_endpoint; + bool _is_listening_endpoint; + + transport_layer_pipes (HANDLE hPipe); +}; + +#endif /* _TRANSPORT_PIPES_H */ |