00001 /* dotAnalyzer.h 00002 */ 00003 #ifndef _DOTANALYZER_H 00004 #define _DOTANALYZER_H 00005 00006 #include "osl/move.h" 00007 #include "osl/search/analyzer/recordSet_.h" 00008 #include <boost/scoped_ptr.hpp> 00009 #include <iosfwd> 00010 00011 namespace osl 00012 { 00013 namespace hash 00014 { 00015 class HashKey; 00016 } 00017 namespace search 00018 { 00019 class SimpleHashTable; 00020 namespace analyzer 00021 { 00022 class LogWriter; 00027 class DotAnalyzer 00028 { 00029 protected: 00030 const SimpleHashTable& table; 00031 boost::scoped_ptr<LogWriter> writer; 00032 RecordSet dejavu; 00033 public: 00034 typedef hash::HashKey HashKey; 00035 00036 DotAnalyzer(const SimpleHashTable&, std::ostream&); 00037 virtual ~DotAnalyzer(); 00038 00042 virtual void analyze(const HashKey& root, int limit) = 0; 00043 virtual void analyzeQuiescence(const HashKey& root) = 0; 00047 void analyzeSequence(const HashKey& root, int limit, 00048 const Move *first, const Move *last); 00049 protected: 00053 void resetWriter(LogWriter *); 00054 }; 00055 00056 } // namespace analyzer 00057 } // namespace search 00058 } // namespace osl 00059 00060 #endif /* _DOTANALYZER_H */ 00061 // ;;; Local Variables: 00062 // ;;; mode:c++ 00063 // ;;; c-basic-offset:2 00064 // ;;; End: