Parser: parse into custom dive site table

To extend the undo system to dive sites, the importers and downloaders
must not parse directly into the global dive site table. Instead,
pass a dive_site_table argument to parse into.

For now, always pass the global dive_site_table so that this commit
should not cause any functional change.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
This commit is contained in:
Berthold Stoeger 2019-02-28 22:45:17 +01:00 committed by Dirk Hohndel
parent 926b6895bb
commit 37146c5742
36 changed files with 216 additions and 185 deletions

View file

@ -438,7 +438,7 @@ static int shearwater_cloud_dive(void *param, int columns, char **data, char **c
}
int parse_shearwater_buffer(sqlite3 *handle, const char *url, const char *buffer, int size,
struct dive_table *table, struct trip_table *trips)
struct dive_table *table, struct trip_table *trips, struct dive_site_table *sites)
{
UNUSED(buffer);
UNUSED(size);
@ -450,6 +450,7 @@ int parse_shearwater_buffer(sqlite3 *handle, const char *url, const char *buffer
init_parser_state(&state);
state.target_table = table;
state.trips = trips;
state.sites = sites;
state.sql_handle = handle;
// So far have not seen any sample rate in Shearwater Desktop
@ -469,7 +470,7 @@ int parse_shearwater_buffer(sqlite3 *handle, const char *url, const char *buffer
}
int parse_shearwater_cloud_buffer(sqlite3 *handle, const char *url, const char *buffer, int size,
struct dive_table *table, struct trip_table *trips)
struct dive_table *table, struct trip_table *trips, struct dive_site_table *sites)
{
UNUSED(buffer);
UNUSED(size);
@ -481,6 +482,7 @@ int parse_shearwater_cloud_buffer(sqlite3 *handle, const char *url, const char *
init_parser_state(&state);
state.target_table = table;
state.trips = trips;
state.sites = sites;
state.sql_handle = handle;
char get_dives[] = "select l.number,strftime('%s', DiveDate),location||' / '||site,buddy,notes,imperialUnits,maxDepth,maxTime,startSurfacePressure,computerSerial,computerModel,d.diveId,l.sampleRateMs FROM dive_details AS d JOIN dive_logs AS l ON d.diveId=l.diveId";