/* $Log: mrlist.C,v $ /* Revision 1.2 1994/03/14 20:28:49 newhall /* changed visi subdirectory structure /* */ #include "visi/h/mrlist.h" /////////////////// method functions for class visi_MRList visi_MRList::visi_MRList(int size,int wCard,char *members){ int i,j,k; int wordsize; int wch; if((size > 0) && (members != NULL)){ numElements = size; if((list=(visi_mrListType *)malloc(sizeof(visi_mrListType)*numElements)) == NULL){ perror("Error in visi_MRList constructor"); } i=j=wch=0; while((members[i] != '\0') && (wch < numElements)){ while((members[i] != ',') && (members[i] != '\0')){ i++; } wordsize = i-j+1; if((list[wch].list = (char *)malloc(sizeof(char)*wordsize))==NULL){ perror("Error in visi_MRList constructor"); } for(k=0;k 0) && (metrics != NULL)){ numElements = size; if((list=(visi_mrListType *)malloc(sizeof(visi_mrListType)*numElements)) == NULL){ visi_ErrorHandler(ERROR_MALLOC,"Error in visi_MRList constructor"); } for(i=0;i 0) && (resources != NULL)){ numElements = size; if((list=(visi_mrListType *)malloc(sizeof(visi_mrListType)*numElements)) == NULL){ visi_ErrorHandler(ERROR_MALLOC,"Error in visi_MRList constructor"); } for(i=0;i 0) &&(elements != NULL)){ i=j=wch=0; while((elements[i] != '\0') && (wch < num)){ while((elements[i] != ',') && (elements[i] != '\0')){ i++; } wordsize = i-j+1; if((list[start].list = (char *)malloc(sizeof(char)*wordsize)) == NULL){ perror("Error in AddElements"); visi_ErrorHandler(ERROR_MALLOC,"visi_MRList::AddElements"); return(ERROR_MALLOC); } for(k=0;k= numElements)){ visi_ErrorHandler(ERROR_NOELM,"visi_MRList::RemoveElement"); return(ERROR_NOELM); } free(list[elmNum].list); for(i = elmNum; i < (numElements-1); i++) list[i] = list[i+1]; numElements--; return(OK); } int visi_MRList::CreateMRList(char **elements){ int totalSize = 0; int i,j; for(i=0; i < numElements; i++){ totalSize += list[i].size; } totalSize += numElements; //add extra space for commas if(wildCard) totalSize += 2; if(((*elements) = (char *)malloc(sizeof(char)*totalSize)) == NULL){ perror("error in CreateMRList\n"); visi_ErrorHandler(ERROR_MALLOC,"visi_MRList::CreateMRList"); return(ERROR_MALLOC); } for(i=0;i