#include #include #include MessageLog::MessageLog(void) : mStrMessageLogPostFix(STRING_MESSAGELOGPOSTFIX) { mFileIO=::new FileIO; mFileIO.disposition(PointerDisposition::Delete); } MessageLog::~MessageLog() { close(); } BOOL MessageLog::setLog(const String &pathFileName) { String strLine; mFileIO->close(); mMasterList.remove(); if(pathFileName.isNull())return FALSE; mPathFileName=pathFileName+strMessageLogPostFix(); mFileIO->open(mPathFileName,FileIO::GenericRead,FileIO::FileShareRead,FileIO::OpenAlways,FileIO::Archive); if(!mFileIO->isOkay())return FALSE; while(mFileIO->readLine(strLine))mMasterList.insert(strLine); mFileIO->close(); return TRUE; } void MessageLog::close(void) { flush(); mMasterList.remove(); } void MessageLog::flush(void) { Block msgIDBlock; mFileIO->close(); if(!mMasterList.leaves())return; mFileIO->open(mPathFileName,FileIO::GenericWrite,FileIO::FileShareWrite,FileIO::CreateAlways,FileIO::Normal); mMasterList.treeItems(msgIDBlock); for(int itemIndex=0;itemIndexwriteLine(msgIDBlock[itemIndex]); mFileIO->flush(); mFileIO->close(); } BOOL MessageLog::searchItem(MsgID &someMsgID) { return mMasterList.searchItem(someMsgID); } void MessageLog::insert(const MsgID &someMsgID) { mMasterList.insert(someMsgID); } BOOL MessageLog::isOkay(void) { return mFileIO->isOkay(); }