Main Page | Namespace List | Class Hierarchy | Class List | Directories | File List | Namespace Members | Class Members | File Members

DoubleRepr.hpp

Go to the documentation of this file.
00001 #ifndef DoubleRepr_HPP
00002 #define DoubleRepr_HPP
00003 
00004 #include "common.hpp"
00005 #include "datastructures/trie/edgelist/OrderedEdgelist.hpp"
00006 #include "datastructures/trie/edgelist/OffsetIndexVector.hpp"
00007 #include <vector>
00008 //#include <iterator>   //for test
00009 
00010 
00011 namespace Bodon
00012 {
00013    template <class VECTOR_OL, class VECTOR_OI>
00014    class DoubleRepr : public OrderedEdgelist<VECTOR_OL>
00015    {
00016       private:
00017          OffsetIndexVector<VECTOR_OI> offsetindexvector;
00018 
00019       public:
00020          DoubleRepr() : OrderedEdgelist<VECTOR_OL>(){}
00021          void clear()
00022          {
00023             OrderedEdgelist<VECTOR_OL>::clear();
00024             offsetindexvector.clear();
00025          }
00026          typename VECTOR_OL::iterator erase(typename VECTOR_OL::iterator pos)
00027          {
00028             offsetindexvector.quickErase( (*pos).first );
00029             return OrderedEdgelist<VECTOR_OL>::erase(pos);
00030          }
00031 
00032          bool lookup(item_t label, void*& subtrie)
00033          {
00034             /*
00035             if( edgelist.back().first < label)
00036                return false;
00037             else
00038             {
00039                if(edgelist.front().first > label)
00040                   subtrie= NULL;
00041                else
00042                   subtrie = offsetindexvector.getEdge(label);
00043                return true;
00044             }
00045             */
00046             return offsetindexvector.lookup(label, subtrie);
00047          }
00048          void insert(const std::vector<Edge>& new_edges)
00049          {
00050             OrderedEdgelist<VECTOR_OL>::insert(new_edges);
00051             offsetindexvector.insert(new_edges);
00052          }
00053    };
00054 }
00055 
00056 #endif

Generated on Sun Sep 17 17:50:38 2006 for FIM environment by  doxygen 1.4.4