1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
/*
* Copyright (c) 2000, Red Hat, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* A copy of the GNU General Public License can be found at
* http://www.gnu.org/
*
* Written by DJ Delorie <dj@cygnus.com>
*
*/
/* This is the parent class for all the access methods known to setup
(i.e. ways to download files from the internet or other sources */
class NetIO {
protected:
NetIO (char *url);
void set_url (char *url);
public:
/* if nonzero, this is the estimated total file size */
int file_size;
/* broken down url FYI */
char *url;
char *proto;
char *host;
int port;
char *path;
virtual ~NetIO ();
/* The user calls this function to create a suitable accessor for
the given URL. It uses the network setup state in state.h. If
anything fails, either the return values is NULL or the returned
object is !ok() */
static NetIO * open (char *url);
/* If !ok() that means the transfer isn't happening. */
virtual int ok ();
/* Read `nbytes' bytes from the file. Returns zero when the file
is complete. */
virtual int read (char *buf, int nbytes);
/* Helper functions for http/ftp protocols. Both return nonzero for
"cancel", zero for "ok". They set net_proxy_user, etc, in
state.h */
int get_auth ();
int get_proxy_auth ();
};
|