/* * Copyright (c) 2005 Novell, Inc. * All Rights Reserved. * * This program is free software; you can redistribute it and/or * modify it under the terms of version 2 of the GNU General Public License as * published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, contact Novell, Inc. * * To contact Novell about this file by physical or electronic mail, * you may find current contact information at www.novell.com * * Author : Rohit Kumar * Email ID : rokumar@novell.com * Date : 14th July 2005 */ #include #include "rfb/rfb.h" #include "filelistinfo.h" /* This method is used for debugging purpose */ void DisplayFileList(FileListInfo fli) { int i = 0; if((fli.pEntries == NULL) || (fli.numEntries == 0)) return; rfbLog("DISPLAYING FILE NAMES IN THE LIST ...START\n\n"); rfbLog("Numer of entries:: %d\n", fli.numEntries); for(i = 0; i < fli.numEntries; i++) rfbLog("file[%d]\t<%s>\n", i, fli.pEntries[i].name); rfbLog("DISPLAYING FILE NAMES IN THE LIST ...END\n\n"); } int AddFileListItemInfo(FileListInfoPtr fileListInfoPtr, char* name, unsigned int size, unsigned int data) { FileListItemInfoPtr fileListItemInfoPtr = (FileListItemInfoPtr) calloc((fileListInfoPtr->numEntries + 1), sizeof(FileListItemInfo)); if(fileListItemInfoPtr == NULL) { rfbLog("File [%s]: Method [%s]: fileListItemInfoPtr is NULL\n", __FILE__, __FUNCTION__); return FAILURE; } if(fileListInfoPtr->numEntries != 0) { memcpy(fileListItemInfoPtr, fileListInfoPtr->pEntries, fileListInfoPtr->numEntries * sizeof(FileListItemInfo)); } strcpy(fileListItemInfoPtr[fileListInfoPtr->numEntries].name, name); fileListItemInfoPtr[fileListInfoPtr->numEntries].size = size; fileListItemInfoPtr[fileListInfoPtr->numEntries].data = data; if(fileListInfoPtr->pEntries != NULL) { free(fileListInfoPtr->pEntries); fileListInfoPtr->pEntries = NULL; } fileListInfoPtr->pEntries = fileListItemInfoPtr; fileListItemInfoPtr = NULL; fileListInfoPtr->numEntries++; return SUCCESS; } char* GetFileNameAt(FileListInfo fileListInfo, int number) { char* name = NULL; if(number >= 0 && number < fileListInfo.numEntries) name = fileListInfo.pEntries[number].name; return name; } unsigned int GetFileSizeAt(FileListInfo fileListInfo, int number) { unsigned int size = 0; if(number >= 0 && number < fileListInfo.numEntries) size = fileListInfo.pEntries[number].size; return size; } unsigned int GetFileDataAt(FileListInfo fileListInfo, int number) { unsigned int data = 0; if(number >= 0 && number < fileListInfo.numEntries) data = fileListInfo.pEntries[number].data; return data; } unsigned int GetSumOfFileNamesLength(FileListInfo fileListInfo) { int i = 0, sumLen = 0; for(i = 0; i < fileListInfo.numEntries; i++) sumLen += strlen(fileListInfo.pEntries[i].name); return sumLen; } void FreeFileListInfo(FileListInfo fileListInfo) { if(fileListInfo.pEntries != NULL) { free(fileListInfo.pEntries); fileListInfo.pEntries = NULL; } fileListInfo.numEntries = 0; }