1 |
// Site Mapper |
2 |
// |
3 |
// Douglas Thrift |
4 |
// |
5 |
// $Id$ |
6 |
|
7 |
#ifndef _SiteMapper_hpp_ |
8 |
#define _SiteMapper_hpp_ |
9 |
|
10 |
#include <iostream> |
11 |
#include <fstream> |
12 |
#include <string> |
13 |
#include <sstream> |
14 |
#include <vector> |
15 |
#include <map> |
16 |
|
17 |
//using namespace std; |
18 |
|
19 |
extern std::string program; |
20 |
extern bool debug; |
21 |
|
22 |
#include "Page.hpp" |
23 |
|
24 |
#include <xalanc/Include/PlatformDefinitions.hpp> |
25 |
#include <xercesc/util/PlatformUtils.hpp> |
26 |
#include <xercesc/framework/LocalFileInputSource.hpp> |
27 |
#include <xalanc/XPath/XObject.hpp> |
28 |
#include <xalanc/XPath/XPathEvaluator.hpp> |
29 |
#include <xalanc/XPath/NodeRefList.hpp> |
30 |
#include <xalanc/DOMSupport/XalanDocumentPrefixResolver.hpp> |
31 |
#include <xalanc/XalanSourceTree/XalanSourceTreeDOMSupport.hpp> |
32 |
#include <xalanc/XalanSourceTree/XalanSourceTreeInit.hpp> |
33 |
#include <xalanc/XalanSourceTree/XalanSourceTreeParserLiaison.hpp> |
34 |
|
35 |
XALAN_USING_XERCES(XMLPlatformUtils) |
36 |
XALAN_USING_XERCES(LocalFileInputSource) |
37 |
XALAN_USING_XALAN(XObjectPtr) |
38 |
XALAN_USING_XALAN(XPath) |
39 |
XALAN_USING_XALAN(XPathEvaluator) |
40 |
XALAN_USING_XALAN(NodeRefList) |
41 |
XALAN_USING_XALAN(XalanDocument) |
42 |
XALAN_USING_XALAN(XalanDocumentPrefixResolver) |
43 |
XALAN_USING_XALAN(XalanDOMString) |
44 |
XALAN_USING_XALAN(XalanNode) |
45 |
XALAN_USING_XALAN(XalanSourceTreeInit) |
46 |
XALAN_USING_XALAN(XalanSourceTreeDOMSupport) |
47 |
XALAN_USING_XALAN(XalanSourceTreeParserLiaison) |
48 |
|
49 |
class SiteMapper |
50 |
{ |
51 |
private: |
52 |
std::ostringstream comment; |
53 |
std::vector<Page> pages; |
54 |
std::map<std::string, std::multimap<std::string, Page> > newPages; |
55 |
XalanSourceTreeInit init; |
56 |
XalanSourceTreeDOMSupport support; |
57 |
XalanSourceTreeParserLiaison liaison; |
58 |
XPathEvaluator evaluator; |
59 |
XPath* item; |
60 |
XPath* address; |
61 |
XPath* link; |
62 |
XPath* list; |
63 |
XPath* port; |
64 |
XPath* path; |
65 |
XPath* title; |
66 |
void oldMap(const std::string& siteMap); |
67 |
void oldMap(std::vector<Page>& pages, XalanNode* list); |
68 |
void newIndex(const std::string& siteIndex); |
69 |
bool newIndex(std::vector<Page>& pages, Page& page); |
70 |
void newMap(const std::string& siteMap); |
71 |
void newMap(std::vector<Page>& pages, const std::string& childOf, std::multimap<std::string, Page>& newPages); |
72 |
public: |
73 |
SiteMapper(const std::string& siteIndex, const std::string& siteMap); |
74 |
~SiteMapper() {} |
75 |
}; |
76 |
|
77 |
#endif // _SiteMapper_hpp_ |