OSDN Git Service

081cf9320c67504038b96dc4c25d2ec6bdaad57f
[kita/kita.git] / kita / src / libkita / datmanager.h
1 /**************************************************************************
2 *   Copyright (C) 2003 by Hideki Ikemoto , (c)2004 by 421                 *
3 *   ikemo@wakaba.jp                                                       *
4 *                                                                         *
5 *   This program is free software; you can redistribute it and/or modify  *
6 *   it under the terms of the GNU General Public License as published by  *
7 *   the Free Software Foundation; either version 2 of the License, or     *
8 *   (at your option) any later version.                                   *
9 ***************************************************************************/
10
11 #ifndef KITADATMG_H
12 #define KITADATMG_H
13
14 #include <qvaluelist.h>
15
16 class QMutex;
17 class QStringList;
18 class KURL;
19 class QObject;
20
21 namespace DOM
22 {
23     class HTMLDocument;
24     class Element;
25 }
26
27 namespace Kita
28 {
29
30     class DatInfo;
31     typedef QValueList<DatInfo*> DatInfoList;
32
33     class DatManager
34     {
35         static DatInfoList m_datInfo;
36         static QMutex m_mutex;
37
38     public:
39
40         static DatInfo* getDatInfoPointer( const KURL& url );
41         static void deleteDatInfo( const KURL& url );
42
43         /* caching */
44         static bool updateCache( const KURL& url , const QObject* parent );
45         static int getResponseCode( const KURL& url );
46         static int getServerTime( const KURL& url );
47         static bool deleteCache( const KURL& url );
48         static bool isLoadingNow( const KURL& url );
49         static void stopLoading( const KURL& url );
50
51
52         /* lock, unlock */
53         static void lock ( const KURL& url );
54         static void unlock( const KURL& url );
55
56         /* string data */
57         static const QString& getRawDat( const KURL& url );
58         static const QString& getDat( const KURL& url, int num );
59         static const QString& getId( const KURL& url, int num );
60         static const QString& getName( const KURL& url, int num );
61         static const QString& getBody( const KURL& url, int num );
62         static QString getPlainName( const KURL& url, int num );
63         static QString getPlainBody( const KURL& url, int num );
64         static QString getPlainTitle( const KURL& url, int num );
65
66         static const QString threadURL( const KURL& url );
67         static const QString& threadName( const KURL& url ); /* = subject of thread */
68         static const QString threadID( const KURL& url );
69
70         static const QString boardURL( const KURL& url );
71         static const QString boardRoot( const KURL& url );      
72         static const QString& boardName( const KURL& url );
73         static const QString boardID( const KURL& url );
74
75         static const QString getCachePath( const KURL& url );
76         static const QString getCacheIndexPath( const KURL& url );
77
78         /* HTML data */
79         static QString getHtml( const KURL& url, int startnum, int endnum );
80         static QString getHtmlByID( const KURL& url, const QString& strid, int &count );
81         static QString getTreeByRes( const KURL& url, const int rootnum, int &count );
82         static QString getTreeByResReverse( const KURL& url, const int rootnum, int &count );
83
84         /* DOM element */
85         static bool getDomElement( const KURL& url, int num, DOM::HTMLDocument& hdoc, DOM::Element& retelm );
86
87         /* numerical data */
88         static int getResNum( const KURL& url );
89         static int getReadNum( const KURL& url );
90         static int getKokoyonNum( const KURL& url );
91         static void setKokoyonNum( const KURL& url, int num );
92         static int getDatSize( const KURL& url );
93         static int getNumByID( const KURL& url, const QString& strid );
94
95         /* another information */
96         static bool is2chThread( const KURL& url );
97         static bool isResValid( const KURL& url , int num );
98         static bool isBroken( const KURL& url );
99         static bool isResBroken( const KURL& url , int num );
100         static bool checkID( const KURL& url, const QString& strid, int num );
101         static bool checkWord( const KURL& url, QStringList& stlist, int num, bool checkOR );
102         static bool isMarked( const KURL& url, int num );
103         static void setMark( const KURL& url, int num, bool mark );
104
105
106         /* abone check */
107         static bool checkAbone( const KURL& url, int num );
108         static void resetAbone( const KURL& url );
109
110         /* obsolete. Don't use them. */
111         static const QString thread_url( const KURL& url ) { return threadURL( url );}
112         static const QString& thread_name( const KURL& url ) { return threadName( url );}
113         static const QString thread_datID( const KURL& url ) { return threadID( url );}
114         static const QString thread_boardURL( const KURL& url ) { return boardURL( url );}
115         static const QString& thread_boardName( const KURL& url ) { return boardName( url );}
116         static const QString thread_boardID( const KURL& url ) { return boardID( url );}
117
118     private:
119
120         static DatInfo* getDatInfo( const KURL& url );
121         static void deleteDatInfoPrivate( const KURL& url );
122     };
123
124 }
125
126 #endif