Split Fetch into ProtocolListener and webfetch
This commit is contained in:
parent
95d20c751c
commit
f921d9f6c3
3
Makefile
3
Makefile
|
@ -31,7 +31,8 @@ APP_MIME_SIG = application/x-vnd.Rifen
|
||||||
SRCS = \
|
SRCS = \
|
||||||
src/Channel.cpp, \
|
src/Channel.cpp, \
|
||||||
src/Item.cpp, \
|
src/Item.cpp, \
|
||||||
src/Fetch.cpp, \
|
src/ProtocolListener.cpp, \
|
||||||
|
src/webfetch.cpp, \
|
||||||
src/parsing.cpp, \
|
src/parsing.cpp, \
|
||||||
src/Rifen.cpp
|
src/Rifen.cpp
|
||||||
|
|
||||||
|
|
46
src/Fetch.h
46
src/Fetch.h
|
@ -1,46 +0,0 @@
|
||||||
#include <UrlProtocolListener.h>
|
|
||||||
#include <Url.h>
|
|
||||||
|
|
||||||
class ProtocolListener : public BUrlProtocolListener
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
ProtocolListener(bool traceLogging)
|
|
||||||
:
|
|
||||||
fDownloadIO(NULL),
|
|
||||||
fTraceLogging(traceLogging)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual ~ProtocolListener()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void DataReceived(BUrlRequest* caller, const char* data,
|
|
||||||
off_t position, ssize_t size)
|
|
||||||
{
|
|
||||||
if (fDownloadIO != NULL) {
|
|
||||||
fDownloadIO->Write(data, size);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
SetDownloadIO ( BDataIO* downloadIO )
|
|
||||||
{
|
|
||||||
fDownloadIO = downloadIO;
|
|
||||||
}
|
|
||||||
|
|
||||||
BDataIO*
|
|
||||||
GetDownloadIO ( )
|
|
||||||
{
|
|
||||||
return fDownloadIO;
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
BDataIO* fDownloadIO;
|
|
||||||
bool fTraceLogging;
|
|
||||||
};
|
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
int32 fetch ( BUrl, BDataIO* );
|
|
||||||
int32 fetch ( char*, BDataIO* );
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
#include <cstdio>
|
||||||
|
#include <raptor2/raptor2.h>
|
||||||
|
#include "Item.h"
|
||||||
|
|
||||||
|
Item::Item ( BString localSubject )
|
||||||
|
{
|
||||||
|
subject = localSubject;
|
||||||
|
title = BString("");
|
||||||
|
description = BString("");
|
||||||
|
homePage = BString("");
|
||||||
|
postUrl = BString("");
|
||||||
|
content = BString("");
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
#ifndef ITEM_H
|
||||||
|
#define ITEM_H
|
||||||
|
|
||||||
|
#include <DateTime.h>
|
||||||
|
#include <String.h>
|
||||||
|
#include <List.h>
|
||||||
|
#include <Url.h>
|
||||||
|
|
||||||
|
class Item {
|
||||||
|
public:
|
||||||
|
BString title;
|
||||||
|
BString description;
|
||||||
|
BDate pubDate;
|
||||||
|
BString homePage;
|
||||||
|
BString postUrl;
|
||||||
|
BString content;
|
||||||
|
|
||||||
|
BString subject;
|
||||||
|
|
||||||
|
void Print ( void );
|
||||||
|
Item ( BString );
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,31 @@
|
||||||
|
#include <UrlProtocolListener.h>
|
||||||
|
#include <Url.h>
|
||||||
|
#include "ProtocolListener.h"
|
||||||
|
|
||||||
|
ProtocolListener::ProtocolListener ( bool traceLogging )
|
||||||
|
:
|
||||||
|
fDownloadIO(NULL),
|
||||||
|
fTraceLogging(traceLogging)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
ProtocolListener::~ProtocolListener ( )
|
||||||
|
{ }
|
||||||
|
|
||||||
|
void
|
||||||
|
ProtocolListener::DataReceived ( BUrlRequest* caller, const char* data, off_t position, ssize_t size )
|
||||||
|
{
|
||||||
|
if (fDownloadIO != NULL)
|
||||||
|
fDownloadIO->Write(data, size);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
ProtocolListener::SetDownloadIO ( BDataIO* downloadIO )
|
||||||
|
{
|
||||||
|
fDownloadIO = downloadIO;
|
||||||
|
}
|
||||||
|
|
||||||
|
BDataIO*
|
||||||
|
ProtocolListener::GetDownloadIO ( )
|
||||||
|
{
|
||||||
|
return fDownloadIO;
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
#ifndef PROTOCOL_LISTENER_H
|
||||||
|
#define PROTOCOL_LISTENER_H
|
||||||
|
|
||||||
|
#include <UrlProtocolListener.h>
|
||||||
|
#include <Url.h>
|
||||||
|
|
||||||
|
class ProtocolListener : public BUrlProtocolListener
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
ProtocolListener(bool traceLogging);
|
||||||
|
|
||||||
|
virtual ~ProtocolListener();
|
||||||
|
virtual void DataReceived(BUrlRequest*, const char*, off_t, ssize_t);
|
||||||
|
void SetDownloadIO ( BDataIO* );
|
||||||
|
BDataIO* GetDownloadIO ( );
|
||||||
|
|
||||||
|
private:
|
||||||
|
BDataIO* fDownloadIO;
|
||||||
|
bool fTraceLogging;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -1,18 +1,18 @@
|
||||||
#include <HttpRequest.h>
|
#include <HttpRequest.h>
|
||||||
#include "Fetch.h"
|
#include "ProtocolListener.h"
|
||||||
|
#include "webfetch.h"
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
int32
|
int32
|
||||||
fetch ( char* strUrl, BDataIO* reply )
|
webfetch ( char* strUrl, BDataIO* reply )
|
||||||
{
|
{
|
||||||
BUrl url( strUrl );
|
return webfetch( BUrl(strUrl), reply );
|
||||||
return fetch( url, reply );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int32
|
int32
|
||||||
fetch ( BUrl url, BDataIO* reply )
|
webfetch ( BUrl url, BDataIO* reply )
|
||||||
{
|
{
|
||||||
ProtocolListener listener(true);
|
ProtocolListener listener(true);
|
||||||
BUrlContext context;
|
BUrlContext context;
|
|
@ -0,0 +1,9 @@
|
||||||
|
#ifndef WEBFETCH_H
|
||||||
|
#define WEBFETCH_H
|
||||||
|
#include <Url.h>
|
||||||
|
#include "ProtocolListener.h"
|
||||||
|
|
||||||
|
int32 webfetch ( BUrl, BDataIO* );
|
||||||
|
int32 webfetch ( char*, BDataIO* );
|
||||||
|
|
||||||
|
#endif
|
Ŝarĝante…
Reference in New Issue