3 template < class KEY, class VALUE, class HASHER > class HashMapIterator
6 virtual ~ HashMapIterator () { }
14 ECell * operator -> () const
20 class CellListIterator;
24 virtual CellListIterator * createIterator () const = 0;
25 virtual ECell_ptr Find (const EIdent & anIdent) = 0;
29 virtual int get_channel () { }
31 Foobar_Out & operator << (const char *str);
32 Foobar_Out & operator << (const Cstring & cstring);
35 class Foobar_Log:public Foobar_Out { };
36 extern Foobar_Log Foobar_LOG;
37 template < class KEY > class BagIterator
40 inline const KEY & operator * () const;
41 inline int atEnd () const;
48 virtual const EMaskView & getMaskView () const = 0;
53 const Cstring & getName (const EIdent & id) const;
54 ECellList *getCellList ();
56 inline FoobarDatabase &
62 inline BagIterator < EIdent > getCallerIterator () const;
64 struct DBHashFunctions
67 class CellListIterator:public HashMapIterator < EIdent, ECell *,
74 unsigned int getSize () const { }
75 int isEmpty () const { }
77 class IdentSetIterator
80 IdentSetIterator (const IdentSet * p_source) { }
81 int atEnd () const { }
82 EIdent operator* () const { }
87 IdentSet complete_cell_ids;
88 IdentSet incomplete_cell_ids;
89 CellListIterator *p_cl_it = DB ().getCellList ()->createIterator ();
91 while (!incomplete_cell_ids.isEmpty ())
93 if (incomplete_cell_ids.getSize () < complete_cell_ids.getSize ())
95 IdentSetIterator complete_cell_it (&complete_cell_ids);
96 while (!complete_cell_it.atEnd ())
98 BagIterator < EIdent > caller_it =
99 DB ().getCellList ()->Find (*complete_cell_it)->
100 getMaskView ().getCallerIterator ();
101 while (!caller_it.atEnd ())
103 Foobar_LOG << DB ().getName (*caller_it) << " ";