#ifndef _ADDON_PROC_NET_H_
#define _ADDON_PROC_NET_H_


#include "addon_proc.h"
#include "file_downloader.h"


class Addon_proc_net : public Addon_proc
{
public:
  Addon_proc_net();
  virtual ~Addon_proc_net();

  PROPERTY(File_downloader *, fd)
  PROPERTY(std::string, url_base)
  PROPERTY(std::string, url_suffix)
  PROPERTY_RE(File_downloader::Progress_cb, progress_cb, _fd->progress_cb)
  void cancel();
  bool cancelled() { return (_fd) ? _fd->cancelled() : false; }

protected:
  virtual void do_ensure_valid_state(std::string &err);
  void download();

  File_downloader *_fd;
  std::string _url_base;
  std::string _url_suffix;
};


#endif // _ADDON_PROC_NET_H_
