-
Notifications
You must be signed in to change notification settings - Fork 1
/
parser.h
72 lines (59 loc) · 1.66 KB
/
parser.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/*
* parser.h: RSS Reader plugin for the Video Disk Recorder
*
* See the README file for copyright information and how to reach the author.
*
*/
#ifndef __RSSREADER_PARSER_H
#define __RSSREADER_PARSER_H
#include "common.h"
// --- Defines ----------------------------------------------------------------
#define SHORT_TEXT_LEN 2048
#define LONG_TEXT_LEN 16384
// --- cRssParserItem(s) ------------------------------------------------------
class cRssParserItem : public cListObject {
private:
cCharSetConv convM;
char dateM[SHORT_TEXT_LEN];
char titleM[SHORT_TEXT_LEN];
char linkM[SHORT_TEXT_LEN];
char descriptionM[LONG_TEXT_LEN];
public:
cRssParserItem();
~cRssParserItem();
void Clear(void);
char *GetDate(void) { return dateM; }
char *GetTitle(void) { return titleM; }
char *GetLink(void) { return linkM; }
char *GetDescription(void) { return descriptionM; }
void SetDate(const char *strP);
void SetTitle(const char *strP);
void SetLink(const char *strP);
void SetDescription(const char *strP);
};
class cRssParserItems : public cList<cRssParserItem> {
};
// --- cRssParser -------------------------------------------------------------
struct MemoryStruct {
char *memory;
size_t size;
};
class cRssParser {
private:
struct MemoryStruct dataM;
cRssParserItems itemsM;
void ResetMemory(void);
public:
enum eRssError {
RSS_PARSING_OK = 0,
RSS_UNKNOWN_ERROR = -1,
RSS_DOWNLOAD_ERROR = -2,
RSS_PARSING_ERROR = -3
};
cRssParser();
~cRssParser();
int DownloadAndParse(const char *urlP);
cRssParserItems *Items(void) { return &itemsM; }
};
extern cRssParser RssParser;
#endif // __RSSREADER_PARSER_H