diff netinstall/netio.h @ 448:3078fd1074e8 r21-2-39

Import from CVS: tag r21-2-39
author cvs
date Mon, 13 Aug 2007 11:38:25 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/netinstall/netio.h	Mon Aug 13 11:38:25 2007 +0200
@@ -0,0 +1,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 ();
+};