nntpgrab_plugin_nntp.h

Go to the documentation of this file.
00001 /*
00002  Copyright (C) 2005-2009 Erik van Pienbroek
00003 
00004  This program is free software; you can redistribute it and/or modify
00005  it under the terms of the GNU General Public License as published by
00006  the Free Software Foundation; either version 2 of the License, or
00007  (at your option) any later version.
00008 
00009  This program is distributed in the hope that it will be useful,
00010  but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
00012  GNU General Public License for more details.
00013 
00014  You should have received a copy of the GNU General Public License
00015  along with this program; if not, write to the Free Software
00016  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
00017 */
00018 
00019 #ifndef _NNTPGRAB_PLUGIN_NNTP_H_
00020 #define _NNTPGRAB_PLUGIN_NNTP_H_
00021 
00022 #include "nntpgrab_plugin_base.h"
00023 
00024 // These are all the functions that the plugin can call to communicate with the NNTPGrab core
00025 typedef struct _plugin_nntp_imported_funcs {
00026     int version;
00027 
00028     void (*update_progress) (int bytes_downloaded, gpointer data);
00029     void (*update_traffic_monitor) (int bytes_received[10], time_t stamp);
00030     void (*notify_download_begin) (gpointer data);
00031     void (*notify_connecting) (int conn_id, gpointer data);
00032     void (*notify_connected) (const char *welcome_msg, gpointer data);
00033     void (*notify_disconnect) (NNTPDisconnectType disconnect_type, const char *errmsg, gpointer data);
00034     void (*parse_header) (int position, const char *subject, const char *poster, time_t postdate, const char *message_id, int size, int numlines, int start_range, int end_range, gpointer data);
00035 } PluginNNTPImportedFuncs;
00036 
00037 // The plugin needs to exported these methods :
00038 
00046 gboolean     nntpgrab_plugin_nntp_initialize(PluginNNTPImportedFuncs funcs);
00047 
00054 int          nntpgrab_plugin_nntp_get_version(void);
00055 
00063 gboolean     nntpgrab_plugin_nntp_get_is_connected(int conn_id);
00064 
00079 NNTPGrabErrCode  nntpgrab_plugin_nntp_connect(const char *hostname, int port, const char *username, const char *password, gboolean use_ssl, char **errmsg, int *conn_id, gpointer data);
00080 
00088 void             nntpgrab_plugin_nntp_disconnect(int conn_id, gpointer data);
00089 
00101 NNTPGrabErrCode  nntpgrab_plugin_nntp_get_article_by_message_id(int conn_id, const char *message_id, const char **headers, const char *filename, gpointer cb_data);
00102 
00114 NNTPGrabErrCode  nntpgrab_plugin_nntp_group(int conn_id, const char *newsgroup, int *num_articles, gint64 *start_article, gint64 *end_article, gpointer data);
00115 
00125 NNTPGrabErrCode  nntpgrab_plugin_nntp_xover(int conn_id, gint64 start_range, gint64 end_range, gpointer data);
00126 
00127 #endif /* _NNTPGRAB_PLUGIN_NNTP_H_ */

Generated on Thu May 21 21:25:05 2009 for NNTPGrab by  1.5.4