]> cygwin.com Git - cygwin-apps/setup.git/blob - IOStreamProvider.h
This commit was generated by cvs2svn to track changes on a CVS vendor
[cygwin-apps/setup.git] / IOStreamProvider.h
1 /*
2 * Copyright (c) 2002, 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 _IOSTREAMPROVIDER_H_
17 #define _IOSTREAMPROVIDER_H_
18
19 #include "io_stream.h"
20 #include "String++.h"
21
22 /* An IOStreamProvider provides the interface for io_stream::open and
23 * related calls to operate.
24 */
25
26 class IOStreamProvider
27 {
28 public:
29 virtual int exists (String const &) const = 0;
30 virtual int remove (String const &) const = 0;
31 virtual int mklink (String const &, String const &, io_stream_link_t) const = 0;
32 virtual io_stream *open (String const &,String const &) const = 0;
33 virtual ~IOStreamProvider (){}
34 virtual int move (String const &,String const &) const = 0;
35 virtual int mkdir_p (enum path_type_t isadir, String const &path) const = 0;
36 String key; // Do not set - managed automatically.
37 protected:
38 IOStreamProvider(){} // no base instances
39 IOStreamProvider(IOStreamProvider const &); // no copy cons
40 IOStreamProvider &operator=(IOStreamProvider const &); // no assignment
41 };
42
43 #endif /* _IOSTREAMPROVIDER_H_ */
This page took 0.038462 seconds and 6 git commands to generate.