-
Notifications
You must be signed in to change notification settings - Fork 0
/
AM.h
91 lines (65 loc) · 2.49 KB
/
AM.h
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#ifndef AM_H_
#define AM_H_
/* Error codes */
int AM_errno;
#define AME_OK 0
#define AME_EOF -1
#define AME_BF -2
//TODO: Add your error codes
#define AME_FILEISOPEN -4
#define AME_MAXFILESOPEN -5
#define AME_CREATEINDEXFAILS -6
#define AME_DESTROYINDEXFAILS -7
#define AME_CLOSEINDEXFAILS -8
#define AME_INSERTENTRYFAILS -9
#define AME_MAXSCANSFULL -10
#define AME_NODATABLOCK -11
#define AME_WRONGSCANDESC -12
#define AME_ERRORINBF -13
#define AME_WRONGDATABLOCK -14
#define AME_FILESCANNING -15
#define AME_WRONGOP -16
#define AME_FILE_EXISTS -17
#define EQUAL 1
#define NOT_EQUAL 2
#define LESS_THAN 3
#define GREATER_THAN 4
#define LESS_THAN_OR_EQUAL 5
#define GREATER_THAN_OR_EQUAL 6
void AM_Init( void );
int AM_CreateIndex(
char *fileName, /* όνομα αρχείου */
char attrType1, /* τύπος πρώτου πεδίου: 'c' (συμβολοσειρά), 'i' (ακέραιος), 'f' (πραγματικός) */
int attrLength1, /* μήκος πρώτου πεδίου: 4 γιά 'i' ή 'f', 1-255 γιά 'c' */
char attrType2, /* τύπος πρώτου πεδίου: 'c' (συμβολοσειρά), 'i' (ακέραιος), 'f' (πραγματικός) */
int attrLength2 /* μήκος δεύτερου πεδίου: 4 γιά 'i' ή 'f', 1-255 γιά 'c' */
);
int AM_DestroyIndex(
char *fileName /* όνομα αρχείου */
);
int AM_OpenIndex (
char *fileName /* όνομα αρχείου */
);
int AM_CloseIndex (
int fileDesc /* αριθμός που αντιστοιχεί στο ανοιχτό αρχείο */
);
int AM_InsertEntry(
int fileDesc, /* αριθμός που αντιστοιχεί στο ανοιχτό αρχείο */
void *value1, /* τιμή του πεδίου-κλειδιού προς εισαγωγή */
void *value2 /* τιμή του δεύτερου πεδίου της εγγραφής προς εισαγωγή */
);
int AM_OpenIndexScan(
int fileDesc, /* αριθμός που αντιστοιχεί στο ανοιχτό αρχείο */
int op, /* τελεστής σύγκρισης */
void *value /* τιμή του πεδίου-κλειδιού προς σύγκριση */
);
void *AM_FindNextEntry(
int scanDesc /* αριθμός που αντιστοιχεί στην ανοιχτή σάρωση */
);
int AM_CloseIndexScan(
int scanDesc /* αριθμός που αντιστοιχεί στην ανοιχτή σάρωση */
);
void AM_PrintError(
char *errString /* κείμενο για εκτύπωση */
);
#endif /* AM_H_ */