diff options
Diffstat (limited to '')
56 files changed, 1581 insertions, 0 deletions
diff --git a/search/all_0.js b/search/all_0.js new file mode 100644 index 0000000..fb7cc6e --- /dev/null +++ b/search/all_0.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['algebra_20engine_0',['Relational Algebra Engine',['../index.html',1,'']]], + ['attr_5fdouble_1',['ATTR_DOUBLE',['../attribute_8h.html#a349a9cde14be8097df865ba0469c0ab2a0720d64774dfe00e8064434a7d55a11b',1,'attribute.h']]], + ['attr_5fint_2',['ATTR_INT',['../attribute_8h.html#a349a9cde14be8097df865ba0469c0ab2acfce9fbc6c39c85087edb6a9bc727dcf',1,'attribute.h']]], + ['attr_5fset_3',['ATTR_SET',['../attribute_8h.html#a349a9cde14be8097df865ba0469c0ab2a37475bd076e2882ca74017610d6c13d1',1,'attribute.h']]], + ['attr_5fstring_4',['ATTR_STRING',['../attribute_8h.html#a349a9cde14be8097df865ba0469c0ab2aa041276c55aea740bc728c3a2ea1cc8f',1,'attribute.h']]], + ['attr_5funknown_5',['ATTR_UNKNOWN',['../attribute_8h.html#a349a9cde14be8097df865ba0469c0ab2a3b3cacd0afda8882a34d8eef5a2c5ca6',1,'attribute.h']]], + ['attribute_6',['Attribute',['../structAttribute.html',1,'']]], + ['attribute_2ec_7',['attribute.c',['../attribute_8c.html',1,'']]], + ['attribute_2eh_8',['attribute.h',['../attribute_8h.html',1,'']]], + ['attribute_5fcreate_9',['attribute_create',['../attribute_8c.html#a90566af01d8bb56b95be836bc00d60c5',1,'attribute_create(const char *name, AttributeType type, void *value): attribute.c'],['../attribute_8h.html#a90566af01d8bb56b95be836bc00d60c5',1,'attribute_create(const char *name, AttributeType type, void *value): attribute.c']]], + ['attribute_5fdestroy_10',['attribute_destroy',['../attribute_8c.html#a6124728ac9f45169d48d4ad0a2734e8e',1,'attribute_destroy(Attribute *attr): attribute.c'],['../attribute_8h.html#a6124728ac9f45169d48d4ad0a2734e8e',1,'attribute_destroy(Attribute *attr): attribute.c']]], + ['attribute_5fprint_11',['attribute_print',['../attribute_8c.html#abf605ec06c2893a3ec8069359146a2fd',1,'attribute_print(const Attribute *attr): attribute.c'],['../attribute_8h.html#abf605ec06c2893a3ec8069359146a2fd',1,'attribute_print(const Attribute *attr): attribute.c']]], + ['attributetype_12',['AttributeType',['../attribute_8h.html#a349a9cde14be8097df865ba0469c0ab2',1,'attribute.h']]] +]; diff --git a/search/all_1.js b/search/all_1.js new file mode 100644 index 0000000..472dbc4 --- /dev/null +++ b/search/all_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['cmp_0',['cmp',['../structSet.html#a39ade50c69068171b307b049a247cab3',1,'Set']]], + ['contributing_1',['Contributing',['../index.html#contributing',1,'']]] +]; diff --git a/search/all_2.js b/search/all_2.js new file mode 100644 index 0000000..f67b0e9 --- /dev/null +++ b/search/all_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['data_0',['data',['../structSetNode.html#a2c57957e74dbca54f44c8576c093ec2a',1,'SetNode']]] +]; diff --git a/search/all_3.js b/search/all_3.js new file mode 100644 index 0000000..681cd4a --- /dev/null +++ b/search/all_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['engine_0',['Relational Algebra Engine',['../index.html',1,'']]] +]; diff --git a/search/all_4.js b/search/all_4.js new file mode 100644 index 0000000..6149b68 --- /dev/null +++ b/search/all_4.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['findattributecontext_0',['FindAttributeContext',['../structFindAttributeContext.html',1,'']]], + ['findtuplecontext_1',['FindTupleContext',['../structFindTupleContext.html',1,'']]], + ['found_2',['found',['../structFindTupleContext.html#a3fe7ee615330fbd6f1a7c362575a1193',1,'FindTupleContext::found'],['../structFindAttributeContext.html#aeadd5aa34e3d1403cbd5a17e808c2eb6',1,'FindAttributeContext::found']]], + ['freer_3',['freer',['../structSet.html#a35539f1fb4dacf88ced13489cd008621',1,'Set']]] +]; diff --git a/search/all_5.js b/search/all_5.js new file mode 100644 index 0000000..435f881 --- /dev/null +++ b/search/all_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['head_0',['head',['../structSet.html#ade085a59e756c98bc65e9a9bce7cbb1f',1,'Set']]] +]; diff --git a/search/all_6.js b/search/all_6.js new file mode 100644 index 0000000..ad34512 --- /dev/null +++ b/search/all_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['license_0',['License',['../index.html#license',1,'']]] +]; diff --git a/search/all_7.js b/search/all_7.js new file mode 100644 index 0000000..fd55179 --- /dev/null +++ b/search/all_7.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['main_0',['main',['../main_8c.html#a840291bc02cba5474a4cb46a9b9566fe',1,'main.c']]], + ['main_2ec_1',['main.c',['../main_8c.html',1,'']]], + ['mainpage_2eh_2',['mainpage.h',['../mainpage_8h.html',1,'']]], + ['matched_3',['matched',['../structTupleEqualsContext.html#aa60b00cd04a44487de2b8f3fd526a5ea',1,'TupleEqualsContext']]] +]; diff --git a/search/all_8.js b/search/all_8.js new file mode 100644 index 0000000..f52c738 --- /dev/null +++ b/search/all_8.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['name_0',['name',['../structFindAttributeContext.html#a4d94ba8688cdd6f0560714e2b0accdad',1,'FindAttributeContext::name'],['../structAttribute.html#af3a246341507fd824515d868e00f1b0c',1,'Attribute::name'],['../structRelation.html#a62028d05b5ebcd1390d261101152aeed',1,'Relation::name']]], + ['next_1',['next',['../structSetNode.html#ac51725d344ad4629e000390b99a2e4e5',1,'SetNode']]] +]; diff --git a/search/all_9.js b/search/all_9.js new file mode 100644 index 0000000..1f347ec --- /dev/null +++ b/search/all_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['other_0',['other',['../structTupleEqualsContext.html#a578df75a6e7cf671d1ec7f37a6b790b5',1,'TupleEqualsContext']]] +]; diff --git a/search/all_a.js b/search/all_a.js new file mode 100644 index 0000000..c193766 --- /dev/null +++ b/search/all_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['project_20structure_0',['Project Structure',['../index.html#structure',1,'']]] +]; diff --git a/search/all_b.js b/search/all_b.js new file mode 100644 index 0000000..ff267b8 --- /dev/null +++ b/search/all_b.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['relation_0',['Relation',['../structRelation.html',1,'']]], + ['relation_2ec_1',['relation.c',['../relation_8c.html',1,'']]], + ['relation_2eh_2',['relation.h',['../relation_8h.html',1,'']]], + ['relation_5fadd_5ftuple_3',['relation_add_tuple',['../relation_8c.html#a718a2758d8ded2bd459f4b49e6ba5247',1,'relation_add_tuple(Relation *r, Tuple *t): relation.c'],['../relation_8h.html#a718a2758d8ded2bd459f4b49e6ba5247',1,'relation_add_tuple(Relation *r, Tuple *t): relation.c']]], + ['relation_5fcreate_4',['relation_create',['../relation_8c.html#a5ae6c335d05a38f5abf0810dd6fa2990',1,'relation_create(const char *name): relation.c'],['../relation_8h.html#a5ae6c335d05a38f5abf0810dd6fa2990',1,'relation_create(const char *name): relation.c']]], + ['relation_5fdestroy_5',['relation_destroy',['../relation_8c.html#a567fe5c42e7a418c9b2d25f543d055ab',1,'relation_destroy(Relation *r): relation.c'],['../relation_8h.html#a567fe5c42e7a418c9b2d25f543d055ab',1,'relation_destroy(Relation *r): relation.c']]], + ['relation_5ffind_5ftuple_6',['relation_find_tuple',['../relation_8c.html#a4d2b75c6c804dc9df58c95f167b17cfe',1,'relation_find_tuple(Relation *r, Tuple *target): relation.c'],['../relation_8h.html#a199adac14c45258decea3c585a1bdff2',1,'relation_find_tuple(Relation *r, Tuple *t): relation.c']]], + ['relation_5fprint_7',['relation_print',['../relation_8c.html#a7662cf41d30fcc49e9acf625ae389898',1,'relation_print(const Relation *r): relation.c'],['../relation_8h.html#a7662cf41d30fcc49e9acf625ae389898',1,'relation_print(const Relation *r): relation.c']]], + ['relational_20algebra_20engine_8',['Relational Algebra Engine',['../index.html',1,'']]] +]; diff --git a/search/all_c.js b/search/all_c.js new file mode 100644 index 0000000..9f48c93 --- /dev/null +++ b/search/all_c.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['set_0',['set',['../structSet.html',1,'Set'],['../set_8h.html#ae18711cd0f4e4e8356608ed79326276b',1,'Set: set.h']]], + ['set_2ec_1',['set.c',['../set_8c.html',1,'']]], + ['set_2eh_2',['set.h',['../set_8h.html',1,'']]], + ['set_5fadd_3',['set_add',['../set_8c.html#a6d3c6162152fb63fc571c269ff42932e',1,'set_add(Set *set, void *elem): set.c'],['../set_8h.html#a6d3c6162152fb63fc571c269ff42932e',1,'set_add(Set *set, void *elem): set.c']]], + ['set_5fcontains_4',['set_contains',['../set_8c.html#a1f829089f94f01c84a55010ad1e6ca77',1,'set_contains(const Set *set, const void *elem): set.c'],['../set_8h.html#a1f829089f94f01c84a55010ad1e6ca77',1,'set_contains(const Set *set, const void *elem): set.c']]], + ['set_5fcreate_5',['set_create',['../set_8h.html#a5b646b26d147dfeeeea8e757a8096a8c',1,'set_create(SetCompareFn cmp, SetFreeFn freer): set.c'],['../set_8c.html#a5b646b26d147dfeeeea8e757a8096a8c',1,'set_create(SetCompareFn cmp, SetFreeFn freer): set.c']]], + ['set_5fdestroy_6',['set_destroy',['../set_8c.html#a9d762a027f1c3bcdd22f70ee9093a7dd',1,'set_destroy(Set *set): set.c'],['../set_8h.html#a9d762a027f1c3bcdd22f70ee9093a7dd',1,'set_destroy(Set *set): set.c']]], + ['set_5fforeach_7',['set_foreach',['../set_8c.html#add1f5ca395dd043e9bf77e58d4ba7d96',1,'set_foreach(const Set *set, SetIterFn fn, void *userdata): set.c'],['../set_8h.html#add1f5ca395dd043e9bf77e58d4ba7d96',1,'set_foreach(const Set *set, SetIterFn fn, void *userdata): set.c']]], + ['set_5fremove_8',['set_remove',['../set_8c.html#a810577df03b3c0d077c2e9c90fef6648',1,'set_remove(Set *set, const void *elem): set.c'],['../set_8h.html#a810577df03b3c0d077c2e9c90fef6648',1,'set_remove(Set *set, const void *elem): set.c']]], + ['set_5fsize_9',['set_size',['../set_8c.html#a3337392b0e2da0fbacb5cbd04bff7ff3',1,'set_size(const Set *set): set.c'],['../set_8h.html#a3337392b0e2da0fbacb5cbd04bff7ff3',1,'set_size(const Set *set): set.c']]], + ['setcomparefn_10',['SetCompareFn',['../set_8h.html#a06af63e60b3ef1e2879ce1896685b599',1,'set.h']]], + ['setfreefn_11',['SetFreeFn',['../set_8h.html#ae58aa89dcaed24a2807b4b67ff8f9cf6',1,'set.h']]], + ['setiterfn_12',['SetIterFn',['../set_8h.html#a370a2d3c5b99f48b2b5c2354b419ee2e',1,'set.h']]], + ['setnode_13',['setnode',['../set_8c.html#af51dc1642db17f15aec9837f783b577d',1,'SetNode: set.c'],['../structSetNode.html',1,'SetNode']]], + ['size_14',['size',['../structSet.html#a7fb84713e171a21a8160a4e375dd6653',1,'Set']]], + ['structure_15',['Project Structure',['../index.html#structure',1,'']]] +]; diff --git a/search/all_d.js b/search/all_d.js new file mode 100644 index 0000000..6271272 --- /dev/null +++ b/search/all_d.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['target_0',['target',['../structFindTupleContext.html#ab2817d678ff12320e8c53b832cf24eb8',1,'FindTupleContext']]], + ['tuple_1',['Tuple',['../tuple_8h.html#a1dc581c6ec65e7a8712da56fb3a6d2ef',1,'tuple.h']]], + ['tuple_2ec_2',['tuple.c',['../tuple_8c.html',1,'']]], + ['tuple_2eh_3',['tuple.h',['../tuple_8h.html',1,'']]], + ['tuple_5fadd_5fattribute_4',['tuple_add_attribute',['../tuple_8h.html#a63de66548cc83afcefc268f4019d2daf',1,'tuple_add_attribute(Tuple *t, Attribute *attr): tuple.c'],['../tuple_8c.html#a63de66548cc83afcefc268f4019d2daf',1,'tuple_add_attribute(Tuple *t, Attribute *attr): tuple.c']]], + ['tuple_5fcreate_5',['tuple_create',['../tuple_8c.html#a639960fa1a575569355816fadd7437ee',1,'tuple_create(void): tuple.c'],['../tuple_8h.html#a639960fa1a575569355816fadd7437ee',1,'tuple_create(void): tuple.c']]], + ['tuple_5fdestroy_6',['tuple_destroy',['../tuple_8c.html#aeefa14da7fb7b4b40b8da4e1b536323e',1,'tuple_destroy(Tuple *t): tuple.c'],['../tuple_8h.html#aeefa14da7fb7b4b40b8da4e1b536323e',1,'tuple_destroy(Tuple *t): tuple.c']]], + ['tuple_5fequals_7',['tuple_equals',['../tuple_8c.html#a910c6d60f4130fc156f2c7d11c187be9',1,'tuple_equals(Tuple *a, Tuple *b): tuple.c'],['../tuple_8h.html#a910c6d60f4130fc156f2c7d11c187be9',1,'tuple_equals(Tuple *a, Tuple *b): tuple.c']]], + ['tuple_5ffind_5fattribute_8',['tuple_find_attribute',['../tuple_8c.html#abe09a57dbc3e53a9c75e7dfcd105e20a',1,'tuple_find_attribute(Tuple *t, const char *name): tuple.c'],['../tuple_8h.html#abe09a57dbc3e53a9c75e7dfcd105e20a',1,'tuple_find_attribute(Tuple *t, const char *name): tuple.c']]], + ['tuple_5fprint_9',['tuple_print',['../tuple_8c.html#a41061ae6a531d605c2bb4ea089edc674',1,'tuple_print(const Tuple *t): tuple.c'],['../tuple_8h.html#a41061ae6a531d605c2bb4ea089edc674',1,'tuple_print(const Tuple *t): tuple.c']]], + ['tupleequalscontext_10',['TupleEqualsContext',['../structTupleEqualsContext.html',1,'']]], + ['tuples_11',['tuples',['../structRelation.html#a4391a8b49141763a6be06860f0a9054b',1,'Relation']]], + ['type_12',['type',['../structAttribute.html#a0a15896484e2739d994af1db21c75127',1,'Attribute']]] +]; diff --git a/search/all_e.js b/search/all_e.js new file mode 100644 index 0000000..ebcade8 --- /dev/null +++ b/search/all_e.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['usage_0',['Usage',['../index.html#usage',1,'']]] +]; diff --git a/search/all_f.js b/search/all_f.js new file mode 100644 index 0000000..45a8b42 --- /dev/null +++ b/search/all_f.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['value_0',['value',['../structAttribute.html#ab26947dfe88e9652b002a19c891d8082',1,'Attribute']]] +]; diff --git a/search/classes_0.js b/search/classes_0.js new file mode 100644 index 0000000..f8df33b --- /dev/null +++ b/search/classes_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['attribute_0',['Attribute',['../structAttribute.html',1,'']]] +]; diff --git a/search/classes_1.js b/search/classes_1.js new file mode 100644 index 0000000..8a6fb8f --- /dev/null +++ b/search/classes_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['findattributecontext_0',['FindAttributeContext',['../structFindAttributeContext.html',1,'']]], + ['findtuplecontext_1',['FindTupleContext',['../structFindTupleContext.html',1,'']]] +]; diff --git a/search/classes_2.js b/search/classes_2.js new file mode 100644 index 0000000..9c1f195 --- /dev/null +++ b/search/classes_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['relation_0',['Relation',['../structRelation.html',1,'']]] +]; diff --git a/search/classes_3.js b/search/classes_3.js new file mode 100644 index 0000000..b4e26c9 --- /dev/null +++ b/search/classes_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['set_0',['Set',['../structSet.html',1,'']]], + ['setnode_1',['SetNode',['../structSetNode.html',1,'']]] +]; diff --git a/search/classes_4.js b/search/classes_4.js new file mode 100644 index 0000000..8349241 --- /dev/null +++ b/search/classes_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['tupleequalscontext_0',['TupleEqualsContext',['../structTupleEqualsContext.html',1,'']]] +]; diff --git a/search/close.svg b/search/close.svg new file mode 100644 index 0000000..337d6cc --- /dev/null +++ b/search/close.svg @@ -0,0 +1,18 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + viewBox="0 0 11 11" + height="11" + width="11" + id="svg2" + version="1.1"> + <defs + id="defs6" /> + <path + id="path12" + d="M 5.5 0.5 A 5 5 0 0 0 0.5 5.5 A 5 5 0 0 0 5.5 10.5 A 5 5 0 0 0 10.5 5.5 A 5 5 0 0 0 5.5 0.5 z M 3.5820312 3 A 0.58291923 0.58291923 0 0 1 4 3.1757812 L 5.5 4.6757812 L 7 3.1757812 A 0.58291923 0.58291923 0 0 1 7.4003906 3 A 0.58291923 0.58291923 0 0 1 7.8242188 4 L 6.3242188 5.5 L 7.8242188 7 A 0.58291923 0.58291923 0 1 1 7 7.8242188 L 5.5 6.3242188 L 4 7.8242188 A 0.58291923 0.58291923 0 1 1 3.1757812 7 L 4.6757812 5.5 L 3.1757812 4 A 0.58291923 0.58291923 0 0 1 3.5820312 3 z " + style="stroke-width:1.09870648;fill:#bababa;fill-opacity:1" /> +</svg> diff --git a/search/enums_0.js b/search/enums_0.js new file mode 100644 index 0000000..dd79074 --- /dev/null +++ b/search/enums_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['attributetype_0',['AttributeType',['../attribute_8h.html#a349a9cde14be8097df865ba0469c0ab2',1,'attribute.h']]] +]; diff --git a/search/enumvalues_0.js b/search/enumvalues_0.js new file mode 100644 index 0000000..04f8006 --- /dev/null +++ b/search/enumvalues_0.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['attr_5fdouble_0',['ATTR_DOUBLE',['../attribute_8h.html#a349a9cde14be8097df865ba0469c0ab2a0720d64774dfe00e8064434a7d55a11b',1,'attribute.h']]], + ['attr_5fint_1',['ATTR_INT',['../attribute_8h.html#a349a9cde14be8097df865ba0469c0ab2acfce9fbc6c39c85087edb6a9bc727dcf',1,'attribute.h']]], + ['attr_5fset_2',['ATTR_SET',['../attribute_8h.html#a349a9cde14be8097df865ba0469c0ab2a37475bd076e2882ca74017610d6c13d1',1,'attribute.h']]], + ['attr_5fstring_3',['ATTR_STRING',['../attribute_8h.html#a349a9cde14be8097df865ba0469c0ab2aa041276c55aea740bc728c3a2ea1cc8f',1,'attribute.h']]], + ['attr_5funknown_4',['ATTR_UNKNOWN',['../attribute_8h.html#a349a9cde14be8097df865ba0469c0ab2a3b3cacd0afda8882a34d8eef5a2c5ca6',1,'attribute.h']]] +]; diff --git a/search/files_0.js b/search/files_0.js new file mode 100644 index 0000000..0b4af1f --- /dev/null +++ b/search/files_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['attribute_2ec_0',['attribute.c',['../attribute_8c.html',1,'']]], + ['attribute_2eh_1',['attribute.h',['../attribute_8h.html',1,'']]] +]; diff --git a/search/files_1.js b/search/files_1.js new file mode 100644 index 0000000..81464fc --- /dev/null +++ b/search/files_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['main_2ec_0',['main.c',['../main_8c.html',1,'']]], + ['mainpage_2eh_1',['mainpage.h',['../mainpage_8h.html',1,'']]] +]; diff --git a/search/files_2.js b/search/files_2.js new file mode 100644 index 0000000..5b37af5 --- /dev/null +++ b/search/files_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['relation_2ec_0',['relation.c',['../relation_8c.html',1,'']]], + ['relation_2eh_1',['relation.h',['../relation_8h.html',1,'']]] +]; diff --git a/search/files_3.js b/search/files_3.js new file mode 100644 index 0000000..d276a51 --- /dev/null +++ b/search/files_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['set_2ec_0',['set.c',['../set_8c.html',1,'']]], + ['set_2eh_1',['set.h',['../set_8h.html',1,'']]] +]; diff --git a/search/files_4.js b/search/files_4.js new file mode 100644 index 0000000..b0c911f --- /dev/null +++ b/search/files_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['tuple_2ec_0',['tuple.c',['../tuple_8c.html',1,'']]], + ['tuple_2eh_1',['tuple.h',['../tuple_8h.html',1,'']]] +]; diff --git a/search/functions_0.js b/search/functions_0.js new file mode 100644 index 0000000..1b0b51e --- /dev/null +++ b/search/functions_0.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['attribute_5fcreate_0',['attribute_create',['../attribute_8c.html#a90566af01d8bb56b95be836bc00d60c5',1,'attribute_create(const char *name, AttributeType type, void *value): attribute.c'],['../attribute_8h.html#a90566af01d8bb56b95be836bc00d60c5',1,'attribute_create(const char *name, AttributeType type, void *value): attribute.c']]], + ['attribute_5fdestroy_1',['attribute_destroy',['../attribute_8c.html#a6124728ac9f45169d48d4ad0a2734e8e',1,'attribute_destroy(Attribute *attr): attribute.c'],['../attribute_8h.html#a6124728ac9f45169d48d4ad0a2734e8e',1,'attribute_destroy(Attribute *attr): attribute.c']]], + ['attribute_5fprint_2',['attribute_print',['../attribute_8c.html#abf605ec06c2893a3ec8069359146a2fd',1,'attribute_print(const Attribute *attr): attribute.c'],['../attribute_8h.html#abf605ec06c2893a3ec8069359146a2fd',1,'attribute_print(const Attribute *attr): attribute.c']]] +]; diff --git a/search/functions_1.js b/search/functions_1.js new file mode 100644 index 0000000..a669209 --- /dev/null +++ b/search/functions_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['main_0',['main',['../main_8c.html#a840291bc02cba5474a4cb46a9b9566fe',1,'main.c']]] +]; diff --git a/search/functions_2.js b/search/functions_2.js new file mode 100644 index 0000000..add1855 --- /dev/null +++ b/search/functions_2.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['relation_5fadd_5ftuple_0',['relation_add_tuple',['../relation_8c.html#a718a2758d8ded2bd459f4b49e6ba5247',1,'relation_add_tuple(Relation *r, Tuple *t): relation.c'],['../relation_8h.html#a718a2758d8ded2bd459f4b49e6ba5247',1,'relation_add_tuple(Relation *r, Tuple *t): relation.c']]], + ['relation_5fcreate_1',['relation_create',['../relation_8c.html#a5ae6c335d05a38f5abf0810dd6fa2990',1,'relation_create(const char *name): relation.c'],['../relation_8h.html#a5ae6c335d05a38f5abf0810dd6fa2990',1,'relation_create(const char *name): relation.c']]], + ['relation_5fdestroy_2',['relation_destroy',['../relation_8c.html#a567fe5c42e7a418c9b2d25f543d055ab',1,'relation_destroy(Relation *r): relation.c'],['../relation_8h.html#a567fe5c42e7a418c9b2d25f543d055ab',1,'relation_destroy(Relation *r): relation.c']]], + ['relation_5ffind_5ftuple_3',['relation_find_tuple',['../relation_8c.html#a4d2b75c6c804dc9df58c95f167b17cfe',1,'relation_find_tuple(Relation *r, Tuple *target): relation.c'],['../relation_8h.html#a199adac14c45258decea3c585a1bdff2',1,'relation_find_tuple(Relation *r, Tuple *t): relation.c']]], + ['relation_5fprint_4',['relation_print',['../relation_8c.html#a7662cf41d30fcc49e9acf625ae389898',1,'relation_print(const Relation *r): relation.c'],['../relation_8h.html#a7662cf41d30fcc49e9acf625ae389898',1,'relation_print(const Relation *r): relation.c']]] +]; diff --git a/search/functions_3.js b/search/functions_3.js new file mode 100644 index 0000000..8dfd816 --- /dev/null +++ b/search/functions_3.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['set_5fadd_0',['set_add',['../set_8c.html#a6d3c6162152fb63fc571c269ff42932e',1,'set_add(Set *set, void *elem): set.c'],['../set_8h.html#a6d3c6162152fb63fc571c269ff42932e',1,'set_add(Set *set, void *elem): set.c']]], + ['set_5fcontains_1',['set_contains',['../set_8c.html#a1f829089f94f01c84a55010ad1e6ca77',1,'set_contains(const Set *set, const void *elem): set.c'],['../set_8h.html#a1f829089f94f01c84a55010ad1e6ca77',1,'set_contains(const Set *set, const void *elem): set.c']]], + ['set_5fcreate_2',['set_create',['../set_8c.html#a5b646b26d147dfeeeea8e757a8096a8c',1,'set_create(SetCompareFn cmp, SetFreeFn freer): set.c'],['../set_8h.html#a5b646b26d147dfeeeea8e757a8096a8c',1,'set_create(SetCompareFn cmp, SetFreeFn freer): set.c']]], + ['set_5fdestroy_3',['set_destroy',['../set_8c.html#a9d762a027f1c3bcdd22f70ee9093a7dd',1,'set_destroy(Set *set): set.c'],['../set_8h.html#a9d762a027f1c3bcdd22f70ee9093a7dd',1,'set_destroy(Set *set): set.c']]], + ['set_5fforeach_4',['set_foreach',['../set_8c.html#add1f5ca395dd043e9bf77e58d4ba7d96',1,'set_foreach(const Set *set, SetIterFn fn, void *userdata): set.c'],['../set_8h.html#add1f5ca395dd043e9bf77e58d4ba7d96',1,'set_foreach(const Set *set, SetIterFn fn, void *userdata): set.c']]], + ['set_5fremove_5',['set_remove',['../set_8c.html#a810577df03b3c0d077c2e9c90fef6648',1,'set_remove(Set *set, const void *elem): set.c'],['../set_8h.html#a810577df03b3c0d077c2e9c90fef6648',1,'set_remove(Set *set, const void *elem): set.c']]], + ['set_5fsize_6',['set_size',['../set_8c.html#a3337392b0e2da0fbacb5cbd04bff7ff3',1,'set_size(const Set *set): set.c'],['../set_8h.html#a3337392b0e2da0fbacb5cbd04bff7ff3',1,'set_size(const Set *set): set.c']]] +]; diff --git a/search/functions_4.js b/search/functions_4.js new file mode 100644 index 0000000..73c83fc --- /dev/null +++ b/search/functions_4.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['tuple_5fadd_5fattribute_0',['tuple_add_attribute',['../tuple_8c.html#a63de66548cc83afcefc268f4019d2daf',1,'tuple_add_attribute(Tuple *t, Attribute *attr): tuple.c'],['../tuple_8h.html#a63de66548cc83afcefc268f4019d2daf',1,'tuple_add_attribute(Tuple *t, Attribute *attr): tuple.c']]], + ['tuple_5fcreate_1',['tuple_create',['../tuple_8c.html#a639960fa1a575569355816fadd7437ee',1,'tuple_create(void): tuple.c'],['../tuple_8h.html#a639960fa1a575569355816fadd7437ee',1,'tuple_create(void): tuple.c']]], + ['tuple_5fdestroy_2',['tuple_destroy',['../tuple_8c.html#aeefa14da7fb7b4b40b8da4e1b536323e',1,'tuple_destroy(Tuple *t): tuple.c'],['../tuple_8h.html#aeefa14da7fb7b4b40b8da4e1b536323e',1,'tuple_destroy(Tuple *t): tuple.c']]], + ['tuple_5fequals_3',['tuple_equals',['../tuple_8c.html#a910c6d60f4130fc156f2c7d11c187be9',1,'tuple_equals(Tuple *a, Tuple *b): tuple.c'],['../tuple_8h.html#a910c6d60f4130fc156f2c7d11c187be9',1,'tuple_equals(Tuple *a, Tuple *b): tuple.c']]], + ['tuple_5ffind_5fattribute_4',['tuple_find_attribute',['../tuple_8c.html#abe09a57dbc3e53a9c75e7dfcd105e20a',1,'tuple_find_attribute(Tuple *t, const char *name): tuple.c'],['../tuple_8h.html#abe09a57dbc3e53a9c75e7dfcd105e20a',1,'tuple_find_attribute(Tuple *t, const char *name): tuple.c']]], + ['tuple_5fprint_5',['tuple_print',['../tuple_8c.html#a41061ae6a531d605c2bb4ea089edc674',1,'tuple_print(const Tuple *t): tuple.c'],['../tuple_8h.html#a41061ae6a531d605c2bb4ea089edc674',1,'tuple_print(const Tuple *t): tuple.c']]] +]; diff --git a/search/mag.svg b/search/mag.svg new file mode 100644 index 0000000..ffb6cf0 --- /dev/null +++ b/search/mag.svg @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + viewBox="0 0 20 19" + height="19" + width="20" + id="svg2" + version="1.1"> + <defs + id="defs6" /> + <circle + r="3.5" + cy="8.5" + cx="5.5" + id="path4611" + style="fill:#000000;fill-opacity:0;stroke:#656565;stroke-width:1.4;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" /> + <path + id="path4630" + d="m 8.1085854,11.109059 2.7823556,2.782356" + style="fill:none;stroke:#656565;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> +</svg> diff --git a/search/mag_d.svg b/search/mag_d.svg new file mode 100644 index 0000000..4122773 --- /dev/null +++ b/search/mag_d.svg @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + viewBox="0 0 20 19" + height="19" + width="20" + id="svg2" + version="1.1"> + <defs + id="defs6" /> + <circle + r="3.5" + cy="8.5" + cx="5.5" + id="path4611" + style="fill:#000000;fill-opacity:0;stroke:#C5C5C5;stroke-width:1.4;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" /> + <path + id="path4630" + d="m 8.1085854,11.109059 2.7823556,2.782356" + style="fill:none;stroke:#C5C5C5;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> +</svg> diff --git a/search/mag_sel.svg b/search/mag_sel.svg new file mode 100644 index 0000000..553dba8 --- /dev/null +++ b/search/mag_sel.svg @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg + xmlns="http://www.w3.org/2000/svg" + version="1.1" + id="svg2" + width="20" + height="19" + viewBox="0 0 20 19" + > + <defs + id="defs6" /> + <circle + style="fill:#000000;fill-opacity:0;stroke:#656565;stroke-width:1.4;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" + id="path4611" + cx="5.5" + cy="8.5" + r="3.5" /> + <path + style="fill:#656565;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 11,7 13.5,10 16,7 Z" + id="path4609" + /> + <path + style="fill:none;stroke:#656565;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 8.1085854,11.109059 2.7823556,2.782356" + id="path4630" + /> +</svg> diff --git a/search/mag_seld.svg b/search/mag_seld.svg new file mode 100644 index 0000000..c906f84 --- /dev/null +++ b/search/mag_seld.svg @@ -0,0 +1,31 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" + "https://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> +<svg + xmlns="http://www.w3.org/2000/svg" + version="1.1" + id="svg2" + width="20" + height="19" + viewBox="0 0 20 19" + > + <defs + id="defs6" /> + <circle + style="fill:#000000;fill-opacity:0;stroke:#c5C5C5;stroke-width:1.4;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" + id="path4611" + cx="5.5" + cy="8.5" + r="3.5" /> + <path + style="fill:#c5C5C5;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 11,7 13.5,10 16,7 Z" + id="path4609" + /> + <path + style="fill:none;stroke:#c5C5C5;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 8.1085854,11.109059 2.7823556,2.782356" + id="path4630" + /> +</svg> diff --git a/search/pages_0.js b/search/pages_0.js new file mode 100644 index 0000000..84ede7f --- /dev/null +++ b/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['algebra_20engine_0',['Relational Algebra Engine',['../index.html',1,'']]] +]; diff --git a/search/pages_1.js b/search/pages_1.js new file mode 100644 index 0000000..681cd4a --- /dev/null +++ b/search/pages_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['engine_0',['Relational Algebra Engine',['../index.html',1,'']]] +]; diff --git a/search/pages_2.js b/search/pages_2.js new file mode 100644 index 0000000..625ba45 --- /dev/null +++ b/search/pages_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['relational_20algebra_20engine_0',['Relational Algebra Engine',['../index.html',1,'']]] +]; diff --git a/search/search.css b/search/search.css new file mode 100644 index 0000000..19f76f9 --- /dev/null +++ b/search/search.css @@ -0,0 +1,291 @@ +/*---------------- Search Box positioning */ + +#main-menu > li:last-child { + /* This <li> object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + +/*---------------- Search box styling */ + +.SRPage * { + font-weight: normal; + line-height: normal; +} + +dark-mode-toggle { + margin-left: 5px; + display: flex; + float: right; +} + +#MSearchBox { + display: inline-block; + white-space : nowrap; + background: var(--search-background-color); + border-radius: 0.65em; + box-shadow: var(--search-box-shadow); + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + width: 20px; + height: 19px; + background-image: var(--search-magnification-select-image); + margin: 0 0 0 0.3em; + padding: 0; +} + +#MSearchSelectExt { + display: inline-block; + vertical-align: middle; + width: 10px; + height: 19px; + background-image: var(--search-magnification-image); + margin: 0 0 0 0.5em; + padding: 0; +} + + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 19px; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: var(--search-foreground-color); + outline: none; + font-family: var(--font-family-search); + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + +@media(hover: none) { + /* to avoid zooming on iOS */ + #MSearchField { + font-size: 16px; + } +} + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: var(--search-active-color); +} + + + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-filter-border-color); + background-color: var(--search-filter-background-color); + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt var(--font-family-search); + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: var(--font-family-monospace); + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: var(--search-filter-foreground-color); + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: var(--search-filter-foreground-color); + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: var(--search-filter-highlight-text-color); + background-color: var(--search-filter-highlight-bg-color); + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + /*width: 60ex;*/ + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-results-border-color); + background-color: var(--search-results-background-color); + z-index:10000; + width: 300px; + height: 400px; + overflow: auto; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +div.SRPage { + margin: 5px 2px; + background-color: var(--search-results-background-color); +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + font-size: 8pt; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; + font-family: var(--font-family-search); +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: var(--font-family-search); +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: var(--nav-gradient-active-image-parent); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/search/search.js b/search/search.js new file mode 100644 index 0000000..6fd40c6 --- /dev/null +++ b/search/search.js @@ -0,0 +1,840 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + Permission is hereby granted, free of charge, to any person obtaining a copy of this software + and associated documentation files (the "Software"), to deal in the Software without restriction, + including without limitation the rights to use, copy, modify, merge, publish, distribute, + sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function convertToId(search) +{ + var result = ''; + for (i=0;i<search.length;i++) + { + var c = search.charAt(i); + var cn = c.charCodeAt(0); + if (c.match(/[a-z0-9\u0080-\uFFFF]/)) + { + result+=c; + } + else if (cn<16) + { + result+="_0"+cn.toString(16); + } + else + { + result+="_"+cn.toString(16); + } + } + return result; +} + +function getXPos(item) +{ + var x = 0; + if (item.offsetWidth) + { + while (item && item!=document.body) + { + x += item.offsetLeft; + item = item.offsetParent; + } + } + return x; +} + +function getYPos(item) +{ + var y = 0; + if (item.offsetWidth) + { + while (item && item!=document.body) + { + y += item.offsetTop; + item = item.offsetParent; + } + } + return y; +} + +var searchResults = new SearchResults("searchResults"); + +/* A class handling everything associated with the search panel. + + Parameters: + name - The name of the global variable that will be + storing this instance. Is needed to be able to set timeouts. + resultPath - path to use for external files +*/ +function SearchBox(name, resultsPath, extension) +{ + if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); } + if (!extension || extension == "") { extension = ".html"; } + + // ---------- Instance variables + this.name = name; + this.resultsPath = resultsPath; + this.keyTimeout = 0; + this.keyTimeoutLength = 500; + this.closeSelectionTimeout = 300; + this.lastSearchValue = ""; + this.lastResultsPage = ""; + this.hideTimeout = 0; + this.searchIndex = 0; + this.searchActive = false; + this.extension = extension; + + // ----------- DOM Elements + + this.DOMSearchField = function() + { return document.getElementById("MSearchField"); } + + this.DOMSearchSelect = function() + { return document.getElementById("MSearchSelect"); } + + this.DOMSearchSelectWindow = function() + { return document.getElementById("MSearchSelectWindow"); } + + this.DOMPopupSearchResults = function() + { return document.getElementById("MSearchResults"); } + + this.DOMPopupSearchResultsWindow = function() + { return document.getElementById("MSearchResultsWindow"); } + + this.DOMSearchClose = function() + { return document.getElementById("MSearchClose"); } + + this.DOMSearchBox = function() + { return document.getElementById("MSearchBox"); } + + // ------------ Event Handlers + + // Called when focus is added or removed from the search field. + this.OnSearchFieldFocus = function(isActive) + { + this.Activate(isActive); + } + + this.OnSearchSelectShow = function() + { + var searchSelectWindow = this.DOMSearchSelectWindow(); + var searchField = this.DOMSearchSelect(); + + var left = getXPos(searchField); + var top = getYPos(searchField); + top += searchField.offsetHeight; + + // show search selection popup + searchSelectWindow.style.display='block'; + searchSelectWindow.style.left = left + 'px'; + searchSelectWindow.style.top = top + 'px'; + + // stop selection hide timer + if (this.hideTimeout) + { + clearTimeout(this.hideTimeout); + this.hideTimeout=0; + } + return false; // to avoid "image drag" default event + } + + this.OnSearchSelectHide = function() + { + this.hideTimeout = setTimeout(this.CloseSelectionWindow.bind(this), + this.closeSelectionTimeout); + } + + // Called when the content of the search field is changed. + this.OnSearchFieldChange = function(evt) + { + if (this.keyTimeout) // kill running timer + { + clearTimeout(this.keyTimeout); + this.keyTimeout = 0; + } + + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 || e.keyCode==13) + { + if (e.shiftKey==1) + { + this.OnSearchSelectShow(); + var win=this.DOMSearchSelectWindow(); + for (i=0;i<win.childNodes.length;i++) + { + var child = win.childNodes[i]; // get span within a + if (child.className=='SelectItem') + { + child.focus(); + return; + } + } + return; + } + else + { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } + } + else if (e.keyCode==27) // Escape out of the search field + { + e.stopPropagation(); + this.DOMSearchField().blur(); + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.lastSearchValue = ''; + this.Activate(false); + return; + } + + // strip whitespaces + var searchValue = this.DOMSearchField().value.replace(/ +/g, ""); + + if (searchValue != this.lastSearchValue) // search value has changed + { + if (searchValue != "") // non-empty search + { + // set timer for search update + this.keyTimeout = setTimeout(this.Search.bind(this), + this.keyTimeoutLength); + } + else // empty search field + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.lastSearchValue = ''; + } + } + } + + this.SelectItemCount = function(id) + { + var count=0; + var win=this.DOMSearchSelectWindow(); + for (i=0;i<win.childNodes.length;i++) + { + var child = win.childNodes[i]; // get span within a + if (child.className=='SelectItem') + { + count++; + } + } + return count; + } + + this.SelectItemSet = function(id) + { + var i,j=0; + var win=this.DOMSearchSelectWindow(); + for (i=0;i<win.childNodes.length;i++) + { + var child = win.childNodes[i]; // get span within a + if (child.className=='SelectItem') + { + var node = child.firstChild; + if (j==id) + { + node.innerHTML='•'; + } + else + { + node.innerHTML=' '; + } + j++; + } + } + } + + // Called when an search filter selection is made. + // set item with index id as the active item + this.OnSelectItem = function(id) + { + this.searchIndex = id; + this.SelectItemSet(id); + var searchValue = this.DOMSearchField().value.replace(/ +/g, ""); + if (searchValue!="" && this.searchActive) // something was found -> do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down + { + this.searchIndex++; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==38 && this.searchIndex>0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + e.stopPropagation(); + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var jsFile; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; + } + + var loadJS = function(url, impl, loc){ + var scriptTag = document.createElement('script'); + scriptTag.src = url; + scriptTag.onload = impl; + scriptTag.onreadystatechange = impl; + loc.appendChild(scriptTag); + } + + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + var domSearchBox = this.DOMSearchBox(); + var domPopupSearchResults = this.DOMPopupSearchResults(); + var domSearchClose = this.DOMSearchClose(); + var resultsPath = this.resultsPath; + + var handleResults = function() { + document.getElementById("Loading").style.display="none"; + if (typeof searchData !== 'undefined') { + createResults(resultsPath); + document.getElementById("NoMatches").style.display="none"; + } + + if (idx!=-1) { + searchResults.Search(searchValue); + } else { // no file with search results => force empty search results + searchResults.Search('===='); + } + + if (domPopupSearchResultsWindow.style.display!='block') + { + domSearchClose.style.display = 'inline-block'; + var left = getXPos(domSearchBox) + 150; + var top = getYPos(domSearchBox) + 20; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + var maxWidth = document.body.clientWidth; + var maxHeight = document.body.clientHeight; + var width = 300; + if (left<10) left=10; + if (width+left+8>maxWidth) width=maxWidth-left-8; + var height = 400; + if (height+top+8>maxHeight) height=maxHeight-top-8; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResultsWindow.style.height = height + 'px'; + } + } + + if (jsFile) { + loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow()); + } else { + handleResults(); + } + + this.lastSearchValue = searchValue; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + this.searchActive = true; + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + this.DOMSearchField().value = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of <Search()>. + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + e.stopPropagation(); + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults(resultsPath) +{ + var results = document.getElementById("SRResults"); + results.innerHTML = ''; + for (var e=0; e<searchData.length; e++) + { + var id = searchData[e][0]; + var srResult = document.createElement('div'); + srResult.setAttribute('id','SR_'+id); + setClassAttr(srResult,'SRResult'); + var srEntry = document.createElement('div'); + setClassAttr(srEntry,'SREntry'); + var srLink = document.createElement('a'); + srLink.setAttribute('id','Item'+e); + setKeyActions(srLink,'return searchResults.Nav(event,'+e+')'); + setClassAttr(srLink,'SRSymbol'); + srLink.innerHTML = searchData[e][1][0]; + srEntry.appendChild(srLink); + if (searchData[e][1].length==2) // single result + { + srLink.setAttribute('href',resultsPath+searchData[e][1][1][0]); + srLink.setAttribute('onclick','searchBox.CloseResultsWindow()'); + if (searchData[e][1][1][1]) + { + srLink.setAttribute('target','_parent'); + } + else + { + srLink.setAttribute('target','_blank'); + } + var srScope = document.createElement('span'); + setClassAttr(srScope,'SRScope'); + srScope.innerHTML = searchData[e][1][1][2]; + srEntry.appendChild(srScope); + } + else // multiple results + { + srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")'); + var srChildren = document.createElement('div'); + setClassAttr(srChildren,'SRChildren'); + for (var c=0; c<searchData[e][1].length-1; c++) + { + var srChild = document.createElement('a'); + srChild.setAttribute('id','Item'+e+'_c'+c); + setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')'); + setClassAttr(srChild,'SRScope'); + srChild.setAttribute('href',resultsPath+searchData[e][1][c+1][0]); + srChild.setAttribute('onclick','searchBox.CloseResultsWindow()'); + if (searchData[e][1][c+1][1]) + { + srChild.setAttribute('target','_parent'); + } + else + { + srChild.setAttribute('target','_blank'); + } + srChild.innerHTML = searchData[e][1][c+1][2]; + srChildren.appendChild(srChild); + } + srEntry.appendChild(srChildren); + } + srResult.appendChild(srEntry); + results.appendChild(srResult); + } +} + +function init_search() +{ + var results = document.getElementById("MSearchSelectWindow"); + results.tabIndex=0; + for (var key in indexSectionLabels) + { + var link = document.createElement('a'); + link.setAttribute('class','SelectItem'); + link.setAttribute('onclick','searchBox.OnSelectItem('+key+')'); + link.href='javascript:void(0)'; + link.innerHTML='<span class="SelectionMark"> </span>'+indexSectionLabels[key]; + results.appendChild(link); + } + searchBox.OnSelectItem(0); + + var input = document.getElementById("MSearchSelect"); + var searchSelectWindow = document.getElementById("MSearchSelectWindow"); + input.tabIndex=0; + input.addEventListener("keydown", function(event) { + if (event.keyCode==13 || event.keyCode==40) { + event.preventDefault(); + if (searchSelectWindow.style.display == 'block') { + searchBox.CloseSelectionWindow(); + } else { + searchBox.OnSearchSelectShow(); + searchBox.DOMSearchSelectWindow().focus(); + } + } + }); +} +/* @license-end */ diff --git a/search/searchdata.js b/search/searchdata.js new file mode 100644 index 0000000..b9ad4d8 --- /dev/null +++ b/search/searchdata.js @@ -0,0 +1,39 @@ +var indexSectionsWithContent = +{ + 0: "acdefhlmnoprstuv", + 1: "afrst", + 2: "amrst", + 3: "amrst", + 4: "cdfhmnostv", + 5: "st", + 6: "a", + 7: "a", + 8: "aer" +}; + +var indexSectionNames = +{ + 0: "all", + 1: "classes", + 2: "files", + 3: "functions", + 4: "variables", + 5: "typedefs", + 6: "enums", + 7: "enumvalues", + 8: "pages" +}; + +var indexSectionLabels = +{ + 0: "All", + 1: "Classes", + 2: "Files", + 3: "Functions", + 4: "Variables", + 5: "Typedefs", + 6: "Enumerations", + 7: "Enumerator", + 8: "Pages" +}; + diff --git a/search/typedefs_0.js b/search/typedefs_0.js new file mode 100644 index 0000000..265f292 --- /dev/null +++ b/search/typedefs_0.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['set_0',['Set',['../set_8h.html#ae18711cd0f4e4e8356608ed79326276b',1,'set.h']]], + ['setcomparefn_1',['SetCompareFn',['../set_8h.html#a06af63e60b3ef1e2879ce1896685b599',1,'set.h']]], + ['setfreefn_2',['SetFreeFn',['../set_8h.html#ae58aa89dcaed24a2807b4b67ff8f9cf6',1,'set.h']]], + ['setiterfn_3',['SetIterFn',['../set_8h.html#a370a2d3c5b99f48b2b5c2354b419ee2e',1,'set.h']]], + ['setnode_4',['SetNode',['../set_8c.html#af51dc1642db17f15aec9837f783b577d',1,'set.c']]] +]; diff --git a/search/typedefs_1.js b/search/typedefs_1.js new file mode 100644 index 0000000..d40b6e6 --- /dev/null +++ b/search/typedefs_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['tuple_0',['Tuple',['../tuple_8h.html#a1dc581c6ec65e7a8712da56fb3a6d2ef',1,'tuple.h']]] +]; diff --git a/search/variables_0.js b/search/variables_0.js new file mode 100644 index 0000000..6a4caaa --- /dev/null +++ b/search/variables_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['cmp_0',['cmp',['../structSet.html#a39ade50c69068171b307b049a247cab3',1,'Set']]] +]; diff --git a/search/variables_1.js b/search/variables_1.js new file mode 100644 index 0000000..f67b0e9 --- /dev/null +++ b/search/variables_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['data_0',['data',['../structSetNode.html#a2c57957e74dbca54f44c8576c093ec2a',1,'SetNode']]] +]; diff --git a/search/variables_2.js b/search/variables_2.js new file mode 100644 index 0000000..9c369f2 --- /dev/null +++ b/search/variables_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['found_0',['found',['../structFindTupleContext.html#a3fe7ee615330fbd6f1a7c362575a1193',1,'FindTupleContext::found'],['../structFindAttributeContext.html#aeadd5aa34e3d1403cbd5a17e808c2eb6',1,'FindAttributeContext::found']]], + ['freer_1',['freer',['../structSet.html#a35539f1fb4dacf88ced13489cd008621',1,'Set']]] +]; diff --git a/search/variables_3.js b/search/variables_3.js new file mode 100644 index 0000000..435f881 --- /dev/null +++ b/search/variables_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['head_0',['head',['../structSet.html#ade085a59e756c98bc65e9a9bce7cbb1f',1,'Set']]] +]; diff --git a/search/variables_4.js b/search/variables_4.js new file mode 100644 index 0000000..55b2ee2 --- /dev/null +++ b/search/variables_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['matched_0',['matched',['../structTupleEqualsContext.html#aa60b00cd04a44487de2b8f3fd526a5ea',1,'TupleEqualsContext']]] +]; diff --git a/search/variables_5.js b/search/variables_5.js new file mode 100644 index 0000000..f52c738 --- /dev/null +++ b/search/variables_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['name_0',['name',['../structFindAttributeContext.html#a4d94ba8688cdd6f0560714e2b0accdad',1,'FindAttributeContext::name'],['../structAttribute.html#af3a246341507fd824515d868e00f1b0c',1,'Attribute::name'],['../structRelation.html#a62028d05b5ebcd1390d261101152aeed',1,'Relation::name']]], + ['next_1',['next',['../structSetNode.html#ac51725d344ad4629e000390b99a2e4e5',1,'SetNode']]] +]; diff --git a/search/variables_6.js b/search/variables_6.js new file mode 100644 index 0000000..1f347ec --- /dev/null +++ b/search/variables_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['other_0',['other',['../structTupleEqualsContext.html#a578df75a6e7cf671d1ec7f37a6b790b5',1,'TupleEqualsContext']]] +]; diff --git a/search/variables_7.js b/search/variables_7.js new file mode 100644 index 0000000..653776b --- /dev/null +++ b/search/variables_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['size_0',['size',['../structSet.html#a7fb84713e171a21a8160a4e375dd6653',1,'Set']]] +]; diff --git a/search/variables_8.js b/search/variables_8.js new file mode 100644 index 0000000..69a2840 --- /dev/null +++ b/search/variables_8.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['target_0',['target',['../structFindTupleContext.html#ab2817d678ff12320e8c53b832cf24eb8',1,'FindTupleContext']]], + ['tuples_1',['tuples',['../structRelation.html#a4391a8b49141763a6be06860f0a9054b',1,'Relation']]], + ['type_2',['type',['../structAttribute.html#a0a15896484e2739d994af1db21c75127',1,'Attribute']]] +]; diff --git a/search/variables_9.js b/search/variables_9.js new file mode 100644 index 0000000..45a8b42 --- /dev/null +++ b/search/variables_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['value_0',['value',['../structAttribute.html#ab26947dfe88e9652b002a19c891d8082',1,'Attribute']]] +]; |
