448
+ − 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
+ − 19 class NetIO {
+ − 20 protected:
+ − 21 NetIO (char *url);
+ − 22 void set_url (char *url);
+ − 23
+ − 24 public:
+ − 25 /* if nonzero, this is the estimated total file size */
+ − 26 int file_size;
+ − 27 /* broken down url FYI */
+ − 28 char *url;
+ − 29 char *proto;
+ − 30 char *host;
+ − 31 int port;
+ − 32 char *path;
+ − 33 virtual ~NetIO ();
+ − 34
+ − 35 /* The user calls this function to create a suitable accessor for
+ − 36 the given URL. It uses the network setup state in state.h. If
+ − 37 anything fails, either the return values is NULL or the returned
+ − 38 object is !ok() */
+ − 39 static NetIO * open (char *url);
+ − 40
+ − 41 /* If !ok() that means the transfer isn't happening. */
+ − 42 virtual int ok ();
+ − 43
+ − 44 /* Read `nbytes' bytes from the file. Returns zero when the file
+ − 45 is complete. */
+ − 46 virtual int read (char *buf, int nbytes);
+ − 47
+ − 48 /* Helper functions for http/ftp protocols. Both return nonzero for
+ − 49 "cancel", zero for "ok". They set net_proxy_user, etc, in
+ − 50 state.h */
+ − 51 int get_auth ();
+ − 52 int get_proxy_auth ();
+ − 53 };