Enlightenment
Beauty at your fingertips
Docs
Tracker
Contact
Contribute
Support
Download
About
News
Home
Eet Documentation
at Sat Jul 6 2013
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