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 312 by douglas, 2004-12-13T15:01:12-08: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 < #include <menes/platform.hpp>
10 > #include <cxx/platform.hpp>
11  
12   #ifdef MENES_PRAGMA_ONCE
13   #pragma once
14   #endif
15  
16 < #ifdef _WIN32
17 < #pragma warning(disable:4267)
18 < #endif
19 <
20 < #include <menes-api/console.hpp>
21 < #include <menes-api/files.hpp>
22 < #include <menes-ios/string.hpp>
23 < #include <menes-xml/document.hpp>
24 < #include <menes-xml/nodeset.hpp>
25 < #include <menes-xml/parse.hpp>
26 < #include <menes-xml/textwriter.hpp>
27 <
28 < #include <string>
29 < #include <map>
30 <
31 < extern ext::String program;
32 < 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 <        ext::String comment;
44 >        cse::String comment;
45          ext::Vector<Page> pages;
46 <        std::map<std::string, std::multimap<std::string, Page> > newPages;
47 <        void oldMap(const ext::String& siteMap);
48 <        void oldMap(ext::Vector<Page>& pages, xml::Node* list);
49 <        void newIndex(const ext::String& siteIndex);
50 <        bool newIndex(ext::Vector<Page>& pages, Page& page);
51 <        void newMap(const ext::String& siteMap);
52 <        void newMap(ext::Vector<Page>& pages, const ext::String& childOf, std::multimap<std::string, Page>& newPages);
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 ext::String& siteIndex, const ext::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