]>
Commit | Line | Data |
---|---|---|
282113ba | 1 | /* transport_pipes.h |
56797078 | 2 | |
282113ba | 3 | Copyright 2001, 2002, 2003 Red Hat Inc. |
56797078 CV |
4 | |
5 | Written by Robert Collins <rbtcollins@hotmail.com> | |
6 | ||
7 | This file is part of Cygwin. | |
8 | ||
9 | This software is a copyrighted work licensed under the terms of the | |
10 | Cygwin license. Please consult the file "CYGWIN_LICENSE" for | |
11 | details. */ | |
12 | ||
282113ba CV |
13 | #ifndef _TRANSPORT_PIPES_H |
14 | #define _TRANSPORT_PIPES_H | |
56797078 | 15 | |
b079a89e CV |
16 | #define PIPE_NAME_PREFIX L"\\\\.\\pipe\\cygwin-" |
17 | #define PIPE_NAME_SUFFIX L"-lpc" | |
18 | ||
56797078 CV |
19 | /* Named pipes based transport, for security on NT */ |
20 | class transport_layer_pipes : public transport_layer_base | |
21 | { | |
22 | public: | |
23 | #ifndef __INSIDE_CYGWIN__ | |
24 | virtual int listen (); | |
25 | virtual class transport_layer_pipes *accept (bool *recoverable); | |
26 | #endif | |
27 | ||
28 | virtual void close (); | |
29 | virtual ssize_t read (void *buf, size_t len); | |
30 | virtual ssize_t write (void *buf, size_t len); | |
31 | virtual int connect (); | |
32 | ||
33 | #ifndef __INSIDE_CYGWIN__ | |
282113ba CV |
34 | virtual bool impersonate_client (); |
35 | virtual bool revert_to_self (); | |
56797078 CV |
36 | #endif |
37 | ||
38 | transport_layer_pipes (); | |
39 | virtual ~transport_layer_pipes (); | |
40 | ||
41 | private: | |
b079a89e | 42 | wchar_t _pipe_name[40]; |
56797078 CV |
43 | HANDLE _hPipe; |
44 | const bool _is_accepted_endpoint; | |
45 | bool _is_listening_endpoint; | |
46 | ||
47 | transport_layer_pipes (HANDLE hPipe); | |
48 | }; | |
49 | ||
282113ba | 50 | #endif /* _TRANSPORT_PIPES_H */ |