5 // Created by Marc Liyanage on Sat Mar 09 2002.
6 // Copyright (c) 2001 __MyCompanyName__. All rights reserved.
9 #import "ParameterSet.h"
12 @implementation ParameterSet
16 if (self = [super init]) {
17 parameters = [[NSMutableArray alloc] init];
21 // NSLog(@"ParameterSet init, %@", parameters);
35 // NSLog(@"ParameterSet dealloc");
39 - (void)encodeWithCoder:(NSCoder *)coder {
40 [coder encodeObject:parameters];
44 - (id)initWithCoder:(NSCoder *)coder {
46 if (self = [super init]) {
47 [self setParameterSet:[coder decodeObject]];
53 - (void)setParameterSet:(NSMutableArray *)array {
62 - (void)addParameter:(NSString *)name withValue:(NSString *)value {
64 NSMutableDictionary *entry = [NSMutableDictionary dictionaryWithCapacity:2];
65 [entry setObject:name forKey:@"parameterName"];
66 [entry setObject:value forKey:@"parameterValue"];
68 // NSLog("entry: %@", entry);
70 [parameters addObject:entry];
76 - (void)setField:(NSString *)fieldName atIndex:(int)index toString:(NSString *)s {
77 [[parameters objectAtIndex:index] setObject:s forKey:fieldName];
80 - (NSString *)getField:(NSString *)fieldName atIndex:(int)index {
81 return [[parameters objectAtIndex:index] objectForKey:fieldName];
86 - (void)removeParameterAtIndex:(int)index {
87 [parameters removeObjectAtIndex:index];
90 - (void)removeParameterByName:(NSString *)name {
93 NSString *currentName;
95 for (i = 0; i < [self count]; i++) {
96 currentName = [self getField:@"parameterName" atIndex:i];
97 if ([currentName isEqualToString:name]) {
98 [self removeParameterAtIndex:i];
99 [self removeParameterByName:name];
107 return [parameters count];
110 - (const char **)cArray {
115 if (cArray != NULL) {
119 temp = cArray = malloc((([self count] * 2) + 1) * sizeof(char *));
122 for (i = 0; i < [self count]; i++) {
124 *(temp++) = (char *)[[self getField:@"parameterName" atIndex:i] cString];
125 *(temp++) = (char *)[[self getField:@"parameterValue" atIndex:i] cString];