-/* $Id: record.h,v 1.1 2007-04-20 13:03:22 marc Exp $
+/* $Id: record.h,v 1.10 2007-06-13 21:29:04 adam Exp $
Copyright (c) 2006-2007, Index Data.
This file is part of Pazpar2.
struct record;
struct client;
-
+struct conf_service;
union data_types {
char *text;
} number;
};
+
+
struct record_metadata {
union data_types data;
- struct record_metadata *next; // next item of this name
+ // next item of this name
+ struct record_metadata *next;
};
+union data_types * data_types_assign(NMEM nmem,
+ union data_types ** data1,
+ union data_types data2);
+
+
struct record {
struct client *client;
- struct record_metadata **metadata; // Array mirrors list of metadata fields in config
- union data_types **sortkeys; // Array mirrors list of sortkey fields in config
- struct record *next; // Next in cluster of merged records
+ // Array mirrors list of metadata fields in config
+ struct record_metadata **metadata;
+ // Array mirrors list of sortkey fields in config
+ union data_types **sortkeys;
+ // Next in cluster of merged records
+ struct record *next;
+ // client result set position;
+ int position;
};
+
+struct record * record_create(NMEM nmem, int num_metadata, int num_sortkeys,
+ struct client *client, int position);
+
+struct record_metadata * record_metadata_create(NMEM nmem);
+
+struct record_metadata * record_metadata_insert(NMEM nmem,
+ struct record_metadata ** rmd,
+ union data_types data);
+
+
+struct record_metadata * record_add_metadata_field_id(NMEM nmem,
+ struct record * record,
+ int field_id,
+ union data_types data);
+
+
+struct record_metadata * record_add_metadata(NMEM nmem,
+ struct record * record,
+ struct conf_service * service,
+ const char * name,
+ union data_types data);
+
+
+union data_types * record_assign_sortkey_field_id(NMEM nmem,
+ struct record * record,
+ int field_id,
+ union data_types data);
+
+
+union data_types * record_assign_sortkey(NMEM nmem,
+ struct record * record,
+ struct conf_service * service,
+ const char * name,
+ union data_types data);
+
+
+
+
struct record_cluster
{
- struct record_metadata **metadata; // Array mirrors list of metadata fields in config
+ // Array mirrors list of metadata fields in config
+ struct record_metadata **metadata;
union data_types **sortkeys;
char *merge_key;
int relevance;
int *term_frequency_vec;
- int recid; // Set-specific ID for this record
+ // Set-specific ID for this record
+ int recid;
struct record *records;
};
+
+
#endif // RECORD_H
/*