view netinstall/netio.h @ 2365:ce4aa0ef8af1

[xemacs-hg @ 2004-11-04 07:48:14 by ben] Major work on internals manual. Rearranged many chapters so as to lie in coherent divisions. Add tons of stuff to Future Work, Old Future Work, Discussions. Add lots of stuff to Mule section (Multilingual ...). Remove index.texi, incorporate into internals.texi. Section on early history and an introduction. Section on XEmacs split. Lots of new MS Windows docs Mostly recently: Windows-I18N docs. Lots if new I18N docs. Loads of other stuff. .
author ben
date Thu, 04 Nov 2004 07:48:14 +0000
parents 3078fd1074e8
children
line wrap: on
line source

/*
 * 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 ();
};