Enlightenment
Beauty at your fingertips
Docs
Tracker
Contact
Contribute
Support
Download
About
News
Home
Eet Documentation
at Wed Aug 15 2012
Examples
Files
Modules
Globals
Related Pages
Main Page
Example of the various ways to interface with an Eet File
1
/*
2
* build: gcc -o eet_file eet-file.c `pkg-config --cflags --libs eet`
3
*/
4
#include <
Eet.h
>
5
#include <stdio.h>
6
#include <string.h>
7
8
static
int
9
create_eet_file(
void
)
10
{
11
Eet_File
*ef;
12
char
buf[1024], *ptr;
13
int
size, len, i;
14
const
char
*some_strings[] = {
15
"And some more strings"
,
16
"spread across several"
,
17
"elements of an array!"
18
};
19
const
char
some_data[] =
20
"\x1e\xe7\x0f\x42\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x35"
21
"\x00\x00\x00\xa0\x00\x00\x00\xa0\x00\x00\x00\x24\x00\x00\x00\x11"
22
"\x00\x00\x00\x00\x2f\x6d\x69\x73\x74\x65\x72\x69\x6f\x75\x73\x2f"
23
"\x64\x61\x74\x61\x00\x41\x6e\x20\x45\x45\x54\x20\x69\x6e\x73\x69"
24
"\x64\x65\x20\x6f\x66\x20\x61\x6e\x20\x45\x45\x54\x21\x0a\x54\x68"
25
"\x69\x73\x20\x77\x61\x73\x6e\x27\x74\x20\x72\x65\x61\x6c\x6c\x79"
26
"\x20\x75\x73\x65\x66\x75\x6c\x20\x62\x75\x74\x20\x69\x74\x20\x68"
27
"\x65\x6c\x70\x65\x64\x20\x74\x6f\x20\x73\x68\x6f\x77\x20\x68\x6f"
28
"\x77\x0a\x74\x6f\x20\x75\x73\x65\x20\x65\x65\x74\x5f\x6d\x65\x6d"
29
"\x6f\x70\x65\x6e\x5f\x72\x65\x61\x64\x28\x29\x20\x74\x6f\x20\x6f"
30
"\x70\x65\x6e\x20\x61\x6e\x20\x65\x65\x74\x20\x66\x69\x6c\x65\x20"
31
"\x66\x72\x6f\x6d\x0a\x64\x61\x74\x61\x20\x61\x6c\x72\x65\x61\x64"
32
"\x79\x20\x6c\x6f\x61\x64\x65\x64\x20\x69\x6e\x20\x6d\x65\x6d\x6f"
33
"\x72\x79\x2e\x0a\x00"
;
34
35
ef =
eet_open
(
"/tmp/my_file.eet"
,
EET_FILE_MODE_WRITE
);
36
if
(!ef)
return
0;
37
38
strcpy(buf,
"Here is a string of data to save!"
);
39
size =
eet_write
(ef,
"/key/to_store/at"
, buf,
sizeof
(buf), 1);
40
if
(!size)
41
{
42
fprintf(stderr,
"Error writing data!\n"
);
43
eet_close
(ef);
44
return
0;
45
}
46
len = strlen(buf);
47
printf(
"strlen() = %d, eet_write() = %d\n"
, len, size);
48
49
ptr = buf;
50
for
(i = 0; i < 3; i++)
51
{
52
len = strlen(some_strings[i]) + 1;
53
memcpy(ptr, some_strings[i], len);
54
ptr += len;
55
}
56
eet_write
(ef,
"/several/strings"
, buf,
sizeof
(buf), 1);
57
eet_sync
(ef);
58
59
eet_write
(ef,
"/some/mysterious/data"
, some_data,
sizeof
(some_data) - 1, 1);
60
61
eet_delete
(ef,
"/several/strings"
);
62
63
return
eet_close
(ef) ==
EET_ERROR_NONE
;
64
}
65
66
int
67
main(
void
)
68
{
69
Eet_File
*ef;
70
char
*ret, **list;
71
int
size, num, i;
72
73
eet_init
();
74
75
if
(!create_eet_file())
76
return
-1;
77
78
ef =
eet_open
(
"/tmp/my_file.eet"
,
EET_FILE_MODE_READ
);
79
if
(!ef)
return
-1;
80
81
list =
eet_list
(ef,
"*"
, &num);
82
if
(list)
83
{
84
for
(i = 0; i < num; i++)
85
printf(
"Key stored: %s\n"
, list[i]);
86
free(list);
87
}
88
89
ret =
eet_read
(ef,
"/key/to_store/at"
, &size);
90
if
(ret)
91
{
92
printf(
"Data read (%i bytes):\n%s\n"
, size, ret);
93
free(ret);
94
}
95
96
ret =
eet_read
(ef,
"/several/strings"
, &size);
97
if
(ret)
98
{
99
printf(
"More data read (%i bytes):\n%s\n"
, size, ret);
100
free(ret);
101
}
102
103
ret =
eet_read
(ef,
"/some/mysterious/data"
, &size);
104
if
(ret)
105
{
106
Eet_File
*ef2;
107
108
ef2 =
eet_memopen_read
(ret, size);
109
110
num =
eet_num_entries
(ef2);
111
printf(
"Mysterious data has %d entries\n"
, num);
112
113
printf(
"Mysterious data:\n%s\n"
,
114
(
char
*)
eet_read_direct
(ef2,
"/mysterious/data"
, NULL));
115
116
eet_close
(ef2);
117
118
free(ret);
119
}
120
121
eet_close
(ef);
122
123
eet_shutdown
();
124
125
return
0;
126
}
127