]> cygwin.com Git - cygwin-apps/setup.git/blame - netio.h
2002-05-04 Robert Collins <rbtcollins@hotmail.com>
[cygwin-apps/setup.git] / netio.h
CommitLineData
23c9e63c
DD
1/*
2 * Copyright (c) 2000, Red Hat, Inc.
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 DJ Delorie <dj@cygnus.com>
13 *
14 */
15
16/* This is the parent class for all the access methods known to setup
17 (i.e. ways to download files from the internet or other sources */
18
b24c88b3
RC
19class NetIO
20{
23c9e63c 21protected:
341988b9
RC
22 NetIO (char const *url, BOOL allow_ftp_auth = FALSE);
23 void set_url (char const *url);
85553593 24 BOOL ftp_auth;
4a83b7b0 25
23c9e63c
DD
26public:
27 /* if nonzero, this is the estimated total file size */
28 int file_size;
29 /* broken down url FYI */
30 char *url;
31 char *proto;
32 char *host;
33 int port;
34 char *path;
b24c88b3 35 virtual ~ NetIO ();
23c9e63c
DD
36
37 /* The user calls this function to create a suitable accessor for
38 the given URL. It uses the network setup state in state.h. If
39 anything fails, either the return values is NULL or the returned
40 object is !ok() */
341988b9 41 static NetIO *open (char const *url, BOOL allow_ftp_auth = FALSE);
23c9e63c
DD
42
43 /* If !ok() that means the transfer isn't happening. */
44 virtual int ok ();
45
46 /* Read `nbytes' bytes from the file. Returns zero when the file
47 is complete. */
48 virtual int read (char *buf, int nbytes);
4e8ff53f
DD
49
50 /* Helper functions for http/ftp protocols. Both return nonzero for
51 "cancel", zero for "ok". They set net_proxy_user, etc, in
52 state.h */
ab57ceaa
RC
53 int get_auth (HWND owner);
54 int get_proxy_auth (HWND owner);
55 int get_ftp_auth (HWND owner);
23c9e63c 56};
This page took 0.032108 seconds and 5 git commands to generate.