imgtools/romtools/rofsbuild/src/cache/cacheentry.cpp
changeset 607 378360dbbdba
parent 600 6d08f4a05d93
--- /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 <new>
+#include <cstring>
+#include <string>
+#include <queue>
+#include <time.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#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;
+}