00001 /* 00002 * BEEN: Benchmarking Environment 00003 * ============================== 00004 * 00005 * File author: Branislav Repcek 00006 * 00007 * GNU Lesser General Public License Version 2.1 00008 * --------------------------------------------- 00009 * Copyright (C) 2004-2006 Distributed Systems Research Group, 00010 * Faculty of Mathematics and Physics, Charles University in Prague 00011 * 00012 * This library is free software; you can redistribute it and/or 00013 * modify it under the terms of the GNU Lesser General Public 00014 * License version 2.1, as published by the Free Software Foundation. 00015 * 00016 * This library is distributed in the hope that it will be useful, 00017 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00018 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00019 * Lesser General Public License for more details. 00020 * 00021 * You should have received a copy of the GNU Lesser General Public 00022 * License along with this library; if not, write to the Free Software 00023 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 00024 * MA 02111-1307 USA 00025 */ 00026 00034 #ifndef DETECTOR_INCLUDED 00035 #define DETECTOR_INCLUDED 00036 00037 #include "MessageReporter.h" 00038 #include "XMLFileOutput.h" 00039 #include "UnicodeString.h" 00040 00043 namespace hwdet 00044 { 00047 class Detector : public MessageReporter 00048 { 00049 public: 00050 00056 Detector(const String &name, const Char *enc = NULL) : 00057 MessageReporter(name), 00058 output(enc), 00059 root_node(NULL) 00060 { 00061 }; 00062 00064 virtual bool Initialize(void) = 0; 00065 00067 virtual bool Detect(void) = 0; 00068 00070 virtual bool Destroy(void) = 0; 00071 00073 virtual String GetOutputString(void) const = 0; 00074 00076 virtual bool WriteToStream(OStream &stream) const = 0; 00077 00079 virtual String GetOutputEncoding(void) 00080 { 00081 return output.GetEncoding(); 00082 } 00083 00084 protected: 00085 00087 XMLOutputFile output; 00088 00090 XMLElement *root_node; 00091 00092 }; 00093 } 00094 00095 #endif