diff options
Diffstat (limited to 'winsup/cygserver/cygserver_transport.h')
-rw-r--r-- | winsup/cygserver/cygserver_transport.h | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/winsup/cygserver/cygserver_transport.h b/winsup/cygserver/cygserver_transport.h new file mode 100644 index 000000000..915f35e66 --- /dev/null +++ b/winsup/cygserver/cygserver_transport.h @@ -0,0 +1,39 @@ +/* cygserver_transport.h + + Copyright 2001, 2002 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 _CYGSERVER_TRANSPORT_ +#define _CYGSERVER_TRANSPORT_ + +class transport_layer_base *create_server_transport (); + +class transport_layer_base +{ +public: +#ifndef __INSIDE_CYGWIN__ + virtual int listen () = 0; + virtual class transport_layer_base *accept (bool *recoverable) = 0; +#endif + + virtual void close () = 0; + virtual ssize_t read (void *buf, size_t len) = 0; + virtual ssize_t write (void *buf, size_t len) = 0; + virtual int connect () = 0; + +#ifndef __INSIDE_CYGWIN__ + virtual void impersonate_client (); + virtual void revert_to_self (); +#endif + + virtual ~transport_layer_base (); +}; + +#endif /* _CYGSERVER_TRANSPORT_ */ |