]> cygwin.com Git - cygwin-apps/setup.git/blame - io_stream_cygfile.h
2002-05-04 Robert Collins <rbtcollins@hotmail.com>
[cygwin-apps/setup.git] / io_stream_cygfile.h
CommitLineData
b24c88b3
RC
1/*
2 * Copyright (c) 2001, Robert Collins.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * A copy of the GNU General Public License can be found at
10 * http://www.gnu.org/
11 *
12 * Written by Robert Collins <rbtcollins@hotmail.com>
13 *
14 */
15
16#ifndef _IO_STREAM_CYGFILE_H_
17#define _IO_STREAM_CYGFILE_H_
18
3c054baf
RC
19#include "io_stream.h"
20#include "String++.h"
b24c88b3
RC
21
22/* io_stream on disk files using cygwin paths
23 * and potentially understanding links in the future
24 */
25
3c054baf 26extern int cygmkdir_p (enum path_type_t isadir, String const &path);
b24c88b3
RC
27
28class io_stream_cygfile:public io_stream
29{
30public:
3c054baf
RC
31 static int exists (String const &);
32 static int remove (String const &);
33 static int mklink (String const &, String const &, io_stream_link_t);
34 io_stream_cygfile (String const &, String const &);
7c7034e8 35 virtual ~ io_stream_cygfile ();
b24c88b3
RC
36 /* read data (duh!) */
37 virtual ssize_t read (void *buffer, size_t len);
38 /* provide data to (double duh!) */
ca9506cc 39 virtual ssize_t write (const void *buffer, size_t len);
b24c88b3
RC
40 /* read data without removing it from the class's internal buffer */
41 virtual ssize_t peek (void *buffer, size_t len);
42 virtual long tell ();
ca9506cc 43 virtual int seek (long where, io_stream_seek_t whence);
b24c88b3
RC
44 /* can't guess, oh well */
45 virtual int error ();
46 virtual int set_mtime (int);
47 /* not relevant yet */
7c7034e8
RC
48 virtual int get_mtime ()
49 {
50 return 0;
51 };
341988b9 52 virtual size_t get_size ();
3c054baf 53 static int move (String const &,String const &);
b24c88b3
RC
54private:
55 /* always require parameters */
7c7034e8 56 io_stream_cygfile ()
b24c88b3
RC
57 {
58 };
f2e49cf8
RC
59 friend int cygmkdir_p (enum path_type_t isadir, String const &_name);
60 static String normalise (String const &unixpath);
b24c88b3
RC
61 FILE *fp;
62 int lasterr;
3c054baf
RC
63 String fname;
64 String lmode;
f2e49cf8 65 static String cwd;
b24c88b3
RC
66};
67
68#endif /* _IO_STREAM_CYGFILE_H_ */
This page took 0.097117 seconds and 5 git commands to generate.