1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
#include "runtime.h"
/* test of reading key values */
#define VALUE_TYPE INT64
#define KEY1_TYPE INT64
#define KEY2_TYPE STRING
#define KEY3_TYPE STRING
#define KEY4_TYPE INT64
#include "map-gen.c"
#include "map.c"
int main ()
{
struct map_node *ptr;
MAP map = _stp_map_new_issii(4);
_stp_map_set_issii (map, 0, "Boston", "MA", 1970, 5224303 );
_stp_map_set_issii (map, 1, "Chicago", "IL", 2000, 8272768 );
_stp_map_set_issii (map, -1, "unknown", "", 2010, 1000000000 );
foreach (map, ptr)
printf ("map[%lld, %s, %s, %lld] = %lld\n",
_stp_key_get_int64(ptr,1),
_stp_key_get_str(ptr,2),
_stp_key_get_str(ptr,3),
_stp_key_get_int64(ptr,4),
_stp_get_int64(ptr));
/* get all the key and value types wrong */
foreach (map, ptr)
printf ("map[%s, %lld, %lld, %s] = %s\n",
_stp_key_get_str(ptr,1),
_stp_key_get_int64(ptr,2),
_stp_key_get_int64(ptr,3),
_stp_key_get_str(ptr,4),
_stp_get_str(ptr));
_stp_map_del (map);
return 0;
}
|