]> arthur.barton.de Git - netatalk.git/blobdiff - etc/afpd/spotlight_SPARQL_map.h
Set Tracker environment
[netatalk.git] / etc / afpd / spotlight_SPARQL_map.h
index 582b9ae132473d13c4f39eff95fcca165566c3c3..250894b1094ad12e4c18ea028915f61199e5575b 100644 (file)
 #ifndef SPOTLIGHT_SPARQL_MAP_H
 #define SPOTLIGHT_SPARQL_MAP_H
 
+enum ssm_type {
+    ssmt_bool,   /* a boolean value that doesn't requires a SPARQL FILTER */
+    ssmt_num,    /* a numeric value that requires a SPARQL FILTER */
+    ssmt_str,    /* a string value that requieres a SPARQL FILTER */
+    ssmt_fts,    /* a string value that will be queried with SPARQL 'fts:match' */
+    ssmt_date,   /* date values are handled in a special map function map_daterange() */
+    ssmt_type    /* kMDItemContentType, requires special mapping */
+};
+
+enum kMDTypeMap {
+    kMDTypeMapNotSup,           /* not supported */
+    kMDTypeMapRDF,              /* query with rdf:type */
+    kMDTypeMapMime              /* query with nie:mimeType */
+};
+
 struct spotlight_sparql_map {
     const char *ssm_spotlight_attr;
+    enum ssm_type ssm_type;
     const char *ssm_sparql_attr;
-    const char *ssm_sparql_query_fmtstr;
+};
+
+struct MDTypeMap {
+    const char *mdtm_value;     /* MD query value of attributes '_kMDItemGroupId' and 'kMDItemContentTypeTree' */
+    enum kMDTypeMap mdtm_type;   /* whether SPARQL query must search attribute rdf:type or nie:mime_Type */
+    const char *mdtm_sparql;    /* the SPARQL query match string */
 };
 
 extern struct spotlight_sparql_map spotlight_sparql_map[];
 extern struct spotlight_sparql_map spotlight_sparql_date_map[];
-
+extern struct MDTypeMap MDTypeMap[];
 #endif