ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/repos/SiteMapper/SiteMapper.hpp
(Generate patch)

Comparing SiteMapper/SiteMapper.hpp (file contents):
Revision 200 by Douglas Thrift, 2004-08-30T18:28:29-07:00 vs.
Revision 637 by douglas, 2005-12-31T21:32:21-08:00

# Line 7 | Line 7
7   #ifndef _SiteMapper_hpp_
8   #define _SiteMapper_hpp_
9  
10 < #ifdef _WIN32
11 < #pragma warning(disable:4267 4503 4786)
12 < #endif
13 <
14 < #include <menes/platform.hpp>
10 > #include <cxx/platform.hpp>
11  
12 < #include <iostream>
13 < #include <fstream>
14 < #include <string>
19 < #include <sstream>
20 < #include <vector>
21 < #include <map>
22 <
23 < using std::cin;
24 < using std::cout;
25 < using std::cerr;
26 < using std::ostream;
27 < using std::ofstream;
28 < using std::string;
29 < using std::ostringstream;
30 < using std::vector;
31 < using std::map;
32 < using std::multimap;
33 < using std::pair;
34 <
35 < #include <menes-api/console.hpp>
36 < #include <menes-xml/document.hpp>
37 < #include <menes-xml/nodeset.hpp>
38 < #include <menes-xml/parse.hpp>
12 > #ifdef MENES_PRAGMA_ONCE
13 > #pragma once
14 > #endif
15  
16 < extern string program;
17 < extern bool debug;
16 > #include <api/files.hpp>
17 > #include <ios/string.hpp>
18 > #include <xml/document.hpp>
19 > #include <xml/nodeset.hpp>
20 > #include <xml/parse.hpp>
21 > #include <xml/textwriter.hpp>
22  
23   #include "Page.hpp"
24  
25 + struct LessThan
26 + {
27 +        _finline static bool Execute(const cse::String &left, const cse::String &right)
28 +        {
29 +                const cse::String::Data &left_(left), &right_(right);
30 +                int value(ext::Compare(left.Begin(), right.Begin(), left.GetSize() < right.GetSize() ? left.GetSize() : right.GetSize()));
31 +
32 +                if (value < 0)
33 +                        return true;
34 +                else if (!value)
35 +                        return left.GetSize() < right.GetSize();
36 +                else
37 +                        return false;
38 +        }
39 + };
40 +
41   class SiteMapper
42   {
43   private:
44 <        string comment;
45 <        vector<Page> pages;
46 <        map<string, multimap<string, Page> > newPages;
47 <        void oldMap(const string& siteMap);
48 <        void oldMap(vector<Page>& pages, xml::Node* list);
49 <        void newIndex(const string& siteIndex);
50 <        bool newIndex(vector<Page>& pages, Page& page);
51 <        void newMap(const string& siteMap);
52 <        void newMap(vector<Page>& pages, const string& childOf, multimap<string,
57 <                Page>& newPages);
44 >        cse::String comment;
45 >        ext::Vector<Page> pages;
46 >        ext::RedBlackMap<cse::String, ext::RedBlackMap<cse::String, ext::Vector<Page>, LessThan>, LessThan> newPages;
47 >        void oldMap(const cse::String &siteMap);
48 >        void oldMap(ext::Vector<Page> &pages, xml::Node* list);
49 >        void newIndex(const cse::String &siteIndex);
50 >        bool newIndex(ext::Vector<Page> &pages, Page &page);
51 >        void newMap(const cse::String &siteMap);
52 >        void newMap(ext::Vector<Page> &pages, const cse::String &childOf, ext::RedBlackMap<cse::String, ext::Vector<Page>, LessThan> &newPages);
53   public:
54 <        SiteMapper(const string& siteIndex, const string& siteMap);
55 <        ~SiteMapper() {}
54 >        SiteMapper(const cse::String &siteIndex, const cse::String &siteMap);
55 >        static cse::String program;
56 >        static bool debug;
57   };
58  
59   #endif // _SiteMapper_hpp_

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines