diff -r 22486c9c7b15 -r 378360dbbdba imgtools/romtools/rofsbuild/src/cache/cacheentry.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/imgtools/romtools/rofsbuild/src/cache/cacheentry.cpp Wed Jun 30 11:35:58 2010 +0800 @@ -0,0 +1,225 @@ +/* +* Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#include +#include +#include +#include +#include +#include +#include + +#include "cache/cacheexception.hpp" +#include "cache/cacheentry.hpp" + + +CacheEntry::CacheEntry(void) +{ + this->next = (CacheEntry*)0; + this->cachedfilebuffer = (char*)0 ; + this->cachedfilebuffersize = 0 ; + + return; +} + + +void CacheEntry::SetOriginalFilename(const char* OriginalFilename) +{ + this->originalfile.clear(); + this->originalfile.assign(OriginalFilename); + + return; +} + + +const char* CacheEntry::GetOriginalFilename(void) const +{ + return this->originalfile.c_str(); +} + + +void CacheEntry::SetCachedFilename(const char* CachedFilename) +{ + this->cachedfile.clear(); + this->cachedfile.assign(CachedFilename); + + return; +} + + +const char* CacheEntry::GetCachedFilename(void) const +{ + return this->cachedfile.c_str(); +} + + +void CacheEntry::SetOriginalFileCreateTime(time_t* CreateRawTime) +{ + this->originalfilecreatetime.clear(); + this->originalfilecreatetime.assign(ctime(CreateRawTime)); + + size_t newlinepos = this->originalfilecreatetime.find("\n"); + while(newlinepos != std::string::npos) + { + this->originalfilecreatetime.erase(newlinepos, 1); + newlinepos = this->originalfilecreatetime.find(("\n")); + } + + return; +} + + +void CacheEntry::SetOriginalFileCreateTime(const char* CreateRawTime) +{ + this->originalfilecreatetime.clear(); + this->originalfilecreatetime.assign(CreateRawTime); + + return; +} + + +const char* CacheEntry::GetOriginalFileCreateTime(void) const +{ + return this->originalfilecreatetime.c_str(); +} + + +void CacheEntry::SetOriginalFileCompression(const char* CompressionMethodID) +{ + this->originalfilecompression.clear(); + this->originalfilecompression.assign(CompressionMethodID); + + return; +} + + +void CacheEntry::SetOriginalFileCompression(unsigned int CompressionMethodID) +{ + char methodid[30]; + memset(methodid, 0, sizeof(methodid)); + sprintf(methodid, "%d", CompressionMethodID); + + this->originalfilecompression.clear(); + this->originalfilecompression.assign(methodid); + + return; +} + + +const char* CacheEntry::GetOriginalFileCompressionID(void) const +{ + return this->originalfilecompression.c_str(); +} + + +void CacheEntry::SetCachedFileCompression(const char* CompressionMethodID) +{ + this->cachedfilecompression.clear(); + this->cachedfilecompression.assign(CompressionMethodID); + + return; +} + + +void CacheEntry::SetCachedFileCompression(unsigned int CompressionMethodID) +{ + char methodid[128]; + memset(methodid, 0, sizeof(methodid)); + sprintf(methodid, "%d", CompressionMethodID); + + this->cachedfilecompression.clear(); + this->cachedfilecompression.assign(methodid); + + return; +} + + +const char* CacheEntry::GetCachedFileCompressionID(void) const +{ + return this->cachedfilecompression.c_str(); +} + + +void CacheEntry::SetCachedFileBuffer(char* FileBuffer, int FileBufferLen) +{ + this->cachedfilebuffer = (char*)malloc(sizeof(char)*FileBufferLen); + memcpy(this->cachedfilebuffer, FileBuffer, FileBufferLen); + this->cachedfilebuffersize = FileBufferLen; + + return; +} + + +const char* CacheEntry::GetCachedFileBuffer(void) const +{ + return this->cachedfilebuffer; +} + + +int CacheEntry::GetCachedFileBufferLen(void) const +{ + return this->cachedfilebuffersize; +} + + +void CacheEntry::AppendEntry(CacheEntry* EntryRef) +{ + //the parameter EntryRef must be valid, should be verified by the caller. + this->next = EntryRef; + + return; +} + + +CacheEntry* CacheEntry::GetNextEntry(void) const +{ + return this->next; +} + + +void CacheEntry::SetNextEntry(CacheEntry* EntryRef) +{ + this->next = EntryRef; + + return; +} + + +bool CacheEntry::Equals(CacheEntry* EntryRef) +{ + if( (this->originalfile.compare(EntryRef->GetOriginalFilename())==0) && + (this->originalfilecreatetime.compare(EntryRef->GetOriginalFileCreateTime())==0) && + (this->originalfilecompression.compare(EntryRef->GetOriginalFileCompressionID())==0) && + (this->cachedfile.compare(EntryRef->GetCachedFilename())==0) && + (this->cachedfilecompression.compare(EntryRef->GetCachedFileCompressionID())==0) + ) + return true; + + return false; +} + + +CacheEntry::~CacheEntry(void) +{ + if(this->cachedfilebuffer) + { + free(this->cachedfilebuffer); + this->cachedfilebuffer = NULL; + } + + return; +}