2
Copyright (C) 2003 GraphicsMagick Group
4
This program is covered by multiple licenses, which are described in
5
Copyright.txt. You should have received a copy of Copyright.txt with this
6
package; otherwise see http://www.graphicsmagick.org/www/Copyright.html.
8
Test MagickMap key,value map functionality
10
Written by Bob Friesenhahn <bfriesen@simple.dallas.tx.us>
14
#if !defined(_VISUALC_)
15
#include <magick_config.h>
19
#include <sys/types.h>
21
#if defined(_VISUALC_)
23
#include <sys\types.h>
26
#include <magick/api.h>
27
#include <magick/map.h>
29
typedef struct _KeyValMap
36
int main ( int argc, char **argv )
54
static const KeyValMap
71
GetExceptionInfo(&exception);
72
map=MagickMapAllocateMap(MagickMapCopyString,MagickMapDeallocateString);
74
printf("Adding map entries ...\n");
75
for (i=0; KeyVal[i].key; i++)
77
MagickMapAddEntry(map,KeyVal[i].key,(void *)KeyVal[i].value,0,&exception);
83
str_index[MaxTextExtent];
85
printf("Keyed access ...\n");
86
for (i=0; KeyVal[i].key; i++)
88
FormatString(str_index,"%u",i);
89
printf("key=\"%s\" value=\"%s\"\n", str_index,
90
(char *)MagickMapAccessEntry(map,str_index,0));
94
iterator=MagickMapAllocateIterator(map);
95
printf("Iterate forward ...\n");
96
while(MagickMapIterateNext(iterator,&key))
97
printf("key=%s value=%s\n",key,
98
(char *)MagickMapDereferenceIterator(iterator,0));
100
printf("Iterate reverse ...\n");
101
while(MagickMapIteratePrevious(iterator,&key))
102
printf("key=%s value=%s\n",key,
103
(char *)MagickMapDereferenceIterator(iterator,0));
106
printf("Remove entry for key \"%s\" and then iterate forward ...\n",
108
MagickMapRemoveEntry(map,KeyVal[i].key);
109
while(MagickMapIterateNext(iterator,&key))
110
printf("key=%s value=%s\n",key,
111
(char *)MagickMapDereferenceIterator(iterator,0));
113
printf("Iterate reverse ...\n");
114
while(MagickMapIteratePrevious(iterator,&key))
115
printf("key=%s value=%s\n",key,
116
(char *)MagickMapDereferenceIterator(iterator,0));
118
MagickMapDeallocateIterator(iterator);
121
MagickMapAddEntry(map,KeyVal[i].key,(void *)KeyVal[i].value,0,&exception);
122
printf("Add entry for key \"%s\" and then iterate forward ...\n",
125
iterator=MagickMapAllocateIterator(map);
126
while(MagickMapIterateNext(iterator,&key))
127
printf("key=%s value=%s\n",key,
128
(char *)MagickMapDereferenceIterator(iterator,0));
130
MagickMapDeallocateIterator(iterator);
131
MagickMapDeallocateMap(map);
133
DestroyExceptionInfo(&exception);