/* WebDownloader for X-Window
* Copyright (C) 1999-2002 Koshelev Maxim
* This Program is free but not GPL!!! You can't modify it
* without agreement with author. You can't distribute modified
* program but you can distribute unmodified program.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
*/
#ifndef __MY_FTP_SEARCH_HEADER__
#define __MY_FTP_SEARCH_HEADER__
#include <gtk/gtk.h>
#include "dlist.h"
#include "mainlog.h"
#include <regex.h>
enum FSEARCH_QUEUES_ENUM{
DL_FS_STOP=0,
DL_FS_WAIT,
DL_FS_RUN,
DL_FS_LAST
};
struct d4xSearchEngine:public tNode{
tPStr name,match;
tPStr urlsize,urlnosize;
int used;
d4xSearchEngine():tNode(){used=0;};
void print(){printf("%s\n%s\n",name.get(),match.get());};
void prepare_url(d4x::URL &adr,int size,const char *file,int num);
};
struct d4xFtpRegex{
char *left,*center,*right;
d4xFtpRegex();
int compile(const char *str,const char *file);
int compile_regexes(regex_t *regs);
char *cut(const char *str,regex_t *regs);
void free();
void print();
~d4xFtpRegex();
};
class d4xEnginesList:public tQueue{
public:
d4xSearchEngine *first();
d4xSearchEngine *next();
d4xSearchEngine *prev();
d4xSearchEngine *get_by_num(int num);
void names2array(char **arr);
d4xSearchEngine *get_next_used_engine(d4xSearchEngine *cur);
int load();
};
class tMain;
class tFtpSearchCtrl{
tDList *queues[DL_FS_LAST];
GtkTreeView *view;
tMain *parent;
tMLog *log;
void stop(tDownload *what);
void remove_from_clist(tDownload *what);
public:
tFtpSearchCtrl();
void init(GtkTreeView *widget,tMain *papa,tMLog *mylog);
void cycle();
void add(tDownload *what);
void remove(tDownload *what);
void reping(tDownload *what);
void stop_all_offline();
~tFtpSearchCtrl();
};
extern d4xEnginesList D4X_SEARCH_ENGINES;
#endif
syntax highlighted by Code2HTML, v. 0.9.1