GridLab
Grid Application Toolkit

A simple API for Grid Applications
GAT

Menu



Main Page   Alphabetical List   Compound List   File List   Compound Members   File Members  

advertservice_database.c File Reference

Source file for the database routines used to simulate a real advert service. More...

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <GAT.h>
#include <GATUtil.h>
#include "regex.h"
#include "advertservice_database.h"

Include dependency graph for advertservice_database.c:

Include dependency graph

Go to the source code of this file.

Defines

#define MAX_DB_NAME   256

Functions

GATResult advertservice_db_get_version (sqlite *db, GATuint32 *version, char **err_msg)
GATResult advertservice_db_execute_sql_statements (sqlite *db, char const **stmts, char **err_msg)
 advertservice_db_execute_sql_statements

GATResult advertservice_db_begin_transaction (sqlite *db, char **err_msg)
 advertservice_db_begin_transaction

GATResult advertservice_db_commit_transaction (sqlite *db, char **err_msg)
 advertservice_db_commit_transaction

GATResult advertservice_db_find_node (sqlite *db, char const *path, int *node_id, GATBool createnode, char **err_msg)
 advertservice_db_find_node

GATResult advertservice_db_write_data (sqlite *db, int node_id, char const *data, GATTable_const metadata, char **err_msg)
 advertservice_db_write_data

GATResult advertservice_db_delete_node (sqlite *db, int node_id, char **err_msg)
 advertservice_db_delete_node

GATResult advertservice_db_get_node_metadata (sqlite *db, int node_id, GATTable *metadata, char **err_msg)
 advertservice_db_get_node_metadata

GATResult advertservice_db_get_node_data (sqlite *db, int node_id, char **advert_data, char **err_msg)
 advertservice_db_get_node_metadata

GATResult advertservice_db_find_pathes (sqlite *db, int nrows, char **values, GATList_String node_paths, char **err_msg)
 advertservice_db_find_pathes

GATResult advertservice_db_construct_path (sqlite *db, char *node_id_str, char **path, char **err_msg)
 advertservice_db_construct_path

int advertservice_db_read_node_id (sqlite *db, char const *node_name, int parent_id, int *node_id, char **err_msg)
 advertservice_db_read_node_id

int advertservice_db_alter_table (sqlite *db, char const **keys, char **err_msg)
 advertservice_db_alter_table

int advertservice_db_create_datatable (sqlite *db, char **old_fields, int count, char **new_fields, int table_number, char **err_msg)
 advertservice_db_create_datatable

int advertservice_db_copy_datatable (sqlite *db, char **old_fields, int count, int table_number, char **err_msg)
 advertservice_db_copy_datatable

int advertservice_db_add_metadata (sqlite *db, char **new_fields, char **err_msg)
 advertservice_db_add_metadata

int advertservice_db_get_datatable_number (sqlite *db, int *number, char **err_msg)
 advertservice_db_get_datatable_number

void advertservice_db_re_match (sqlite_func *func, int argc, const char **argv)
 advertservice_db_re_match

int append_string (char **str, char const *to_append)
unsigned int fields_count (char **fields)
GATResult add_field (char ***fields, char const *key)
void release_fields (char ***fields)
GATResult advertservice_db_init (GATContext context, sqlite **db)
 advertservice_db_init

void advertservice_db_close (sqlite **db)
 advertservice_db_close

GATResult advertservice_db_write_advert_data (GATContext context, sqlite *db, char const *path, char const *data, GATTable_const metadata)
 advertservice_db_write_advert_data

GATResult advertservice_db_delete_advert_data (GATContext context, sqlite *db, char const *path)
 advertservice_db_delete_advert_data

GATResult advertservice_db_get_metadata (GATContext context, sqlite *db, char const *path, GATTable *metadata)
 advertservice_db_get_metadata

GATResult advertservice_db_get_advert_data (GATContext context, sqlite *db, char const *path, char **data)
 advertservice_db_get_advertisable_data

GATResult advertservice_db_find (GATContext context, sqlite *db, GATTable_const metadata, GATList_String *paths)
 advertservice_db_find


Variables

const char * rcsid = "$Header: /export/cvs-gridlab/wp-1/Codes/GATEngine/C-reference/adaptors/advertservice_adaptor/advertservice_database.c,v 1.9 2004/04/18 15:04:59 merzky Exp $"
char const * init_db_stmts []
char const * begin_transaction_stmts []
char const * commit_transaction_stmts []


Detailed Description

Source file for the database routines used to simulate a real advert service.

Date:
Fri Mar 19 2004
Version:
Header:
/export/cvs-gridlab/wp-1/Codes/GATEngine/C-reference/adaptors/advertservice_adaptor/advertservice_database.c,v 1.9 2004/04/18 15:04:59 merzky Exp

Copyright (C) Hartmut Kaiser This file is part of the GAT Engine. Contributed by Hartmut Kaiser <hartmutkaiser [at] t-online [dot] de>.

Use, modification and distribution is subject to the Gridlab Software License. (See accompanying file GLlicense.txt or copy at http://www.gridlab.org/GLlicense.txt)

Definition in file advertservice_database.c.


Define Documentation

#define MAX_DB_NAME   256
 

Definition at line 33 of file advertservice_database.c.


Function Documentation

GATResult advertservice_db_get_version sqlite *    db,
GATuint32   version,
char **    err_msg
[static]
 

Definition at line 483 of file advertservice_database.c.

References assert, GATuint32, and SQLITE_TO_GAT.

Referenced by advertservice_db_init().

GATResult advertservice_db_execute_sql_statements sqlite *    db,
char const **    stmts,
char **    err_msg
[static]
 

advertservice_db_execute_sql_statements

Definition at line 509 of file advertservice_database.c.

References SQLITE_TO_GAT.

Referenced by advertservice_db_begin_transaction(), advertservice_db_commit_transaction(), and advertservice_db_init().

GATResult advertservice_db_begin_transaction sqlite *    db,
char **    err_msg
[static]
 

advertservice_db_begin_transaction

Definition at line 529 of file advertservice_database.c.

References advertservice_db_execute_sql_statements(), and begin_transaction_stmts.

Referenced by advertservice_db_delete_advert_data(), and advertservice_db_write_advert_data().

GATResult advertservice_db_commit_transaction sqlite *    db,
char **    err_msg
[static]
 

advertservice_db_commit_transaction

Definition at line 539 of file advertservice_database.c.

References advertservice_db_execute_sql_statements(), and commit_transaction_stmts.

Referenced by advertservice_db_delete_advert_data(), and advertservice_db_write_advert_data().

GATResult advertservice_db_find_node sqlite *    db,
char const *    pathstr,
int *    node_id,
GATBool    createnode,
char **    err_msg
[static]
 

advertservice_db_find_node

Definition at line 549 of file advertservice_database.c.

References advertservice_db_read_node_id(), GAT_INVALID_PARAMETER, GAT_MEMORYFAILURE, GAT_SUCCESS, GATBool, GATResult, GATUtil_strdup(), and SQLITE_TO_GAT.

Referenced by advertservice_db_delete_advert_data(), advertservice_db_get_advert_data(), advertservice_db_get_metadata(), and advertservice_db_write_advert_data().

GATResult advertservice_db_write_data sqlite *    db,
int    node_id,
char const *    data,
GATTable_const    metadata,
char **    err_msg
[static]
 

advertservice_db_write_data

Definition at line 691 of file advertservice_database.c.

References advertservice_db_alter_table(), advertservice_db_get_datatable_number(), append_string(), data, GAT_INVALID_PARAMETER, GAT_SUCCEEDED, GATTable_const, GATTable_Get_String(), GATTable_GetKeys(), GATTable_ReleaseKeys(), and SQLITE_TO_GAT.

Referenced by advertservice_db_write_advert_data().

GATResult advertservice_db_delete_node sqlite *    db,
int    node_id,
char **    err_msg
[static]
 

advertservice_db_delete_node

Definition at line 1158 of file advertservice_database.c.

References advertservice_db_get_datatable_number(), and SQLITE_TO_GAT.

Referenced by advertservice_db_delete_advert_data().

GATResult advertservice_db_get_node_metadata sqlite *    db,
int    node_id,
GATTable   metadata,
char **    err_msg
[static]
 

advertservice_db_get_node_metadata

Definition at line 1213 of file advertservice_database.c.

References advertservice_db_get_datatable_number(), GAT_FAILED, GAT_INVALID_PARAMETER, GAT_MEMORYFAILURE, GAT_SUCCEEDED, GAT_SUCCESS, GATResult, GATTable_Add_String(), GATTable_Create(), GATTable_Destroy(), and SQLITE_TO_GAT.

Referenced by advertservice_db_get_metadata().

GATResult advertservice_db_get_node_data sqlite *    db,
int    node_id,
char **    advert_data,
char **    err_msg
[static]
 

advertservice_db_get_node_metadata

Definition at line 1291 of file advertservice_database.c.

References advertservice_db_get_datatable_number(), data, GAT_INVALID_PARAMETER, GAT_MEMORYFAILURE, GAT_SUCCEEDED, GAT_SUCCESS, GATResult, GATUtil_strdup(), and SQLITE_TO_GAT.

Referenced by advertservice_db_get_advert_data().

GATResult advertservice_db_find_pathes sqlite *    db,
int    nrows,
char **    values,
GATList_String    node_paths,
char **    err_msg
[static]
 

advertservice_db_find_pathes

Definition at line 1409 of file advertservice_database.c.

References advertservice_db_construct_path(), GAT_SUCCEEDED, GATList_String_End(), GATList_String_Insert(), GATResult, and SQLITE_TO_GAT.

Referenced by advertservice_db_find().

GATResult advertservice_db_construct_path sqlite *    db,
char *    node_id_str,
char **    path,
char **    err_msg
[static]
 

advertservice_db_construct_path

Definition at line 1439 of file advertservice_database.c.

References append_string(), GAT_INVALID_PARAMETER, GAT_MEMORYFAILURE, GAT_SUCCEEDED, GAT_SUCCESS, GATResult, and SQLITE_TO_GAT.

Referenced by advertservice_db_find_pathes().

int advertservice_db_read_node_id sqlite *    db,
char const *    node_name,
int    parent_id,
int *    node_id,
char **    err_msg
[static]
 

advertservice_db_read_node_id

Definition at line 785 of file advertservice_database.c.

References assert.

Referenced by advertservice_db_find_node().

int advertservice_db_alter_table sqlite *    db,
char const **    keys,
char **    err_msg
[static]
 

advertservice_db_alter_table

Since the SQLite database doesn't support the ALTER TABLE SQL command, we have to create a new table with the required structure and must copy over the old data to the new table. The old table is dropped afterwards.

Definition at line 867 of file advertservice_database.c.

References add_field(), advertservice_db_add_metadata(), advertservice_db_copy_datatable(), advertservice_db_create_datatable(), advertservice_db_get_datatable_number(), GATBool, GATFalse, GATTrue, and release_fields().

Referenced by advertservice_db_write_data().

int advertservice_db_create_datatable sqlite *    db,
char **    old_fields,
int    count,
char **    new_fields,
int    table_number,
char **    err_msg
[static]
 

advertservice_db_create_datatable

Definition at line 972 of file advertservice_database.c.

References append_string().

Referenced by advertservice_db_alter_table().

int advertservice_db_copy_datatable sqlite *    db,
char **    old_fields,
int    count,
int    table_number,
char **    err_msg
[static]
 

advertservice_db_copy_datatable

Definition at line 1035 of file advertservice_database.c.

References append_string().

Referenced by advertservice_db_alter_table().

int advertservice_db_add_metadata sqlite *    db,
char **    new_fields,
char **    err_msg
[static]
 

advertservice_db_add_metadata

Definition at line 1105 of file advertservice_database.c.

Referenced by advertservice_db_alter_table().

int advertservice_db_get_datatable_number sqlite *    db,
int *    number,
char **    err_msg
[static]
 

advertservice_db_get_datatable_number

Definition at line 1127 of file advertservice_database.c.

Referenced by advertservice_db_alter_table(), advertservice_db_delete_node(), advertservice_db_find(), advertservice_db_get_node_data(), advertservice_db_get_node_metadata(), and advertservice_db_write_data().

void advertservice_db_re_match sqlite_func *    func,
int    argc,
const char **    argv
[static]
 

advertservice_db_re_match

User defined SQL function re_match()

Definition at line 1351 of file advertservice_database.c.

References func, GAT_SUCCEEDED, GATResult, GATSelf_ResolveErrorMessage(), GATuint32, and REGEX_TO_GAT.

Referenced by advertservice_db_find().

int append_string char **    str,
char const *    to_append
[static]
 

Definition at line 669 of file advertservice_database.c.

References GATBool, GATFalse, GATTrue, and str.

Referenced by advertservice_db_construct_path(), advertservice_db_copy_datatable(), advertservice_db_create_datatable(), advertservice_db_find(), and advertservice_db_write_data().

unsigned int fields_count char **    fields [static]
 

Definition at line 810 of file advertservice_database.c.

Referenced by add_field().

GATResult add_field char ***    fields,
char const *    key
[static]
 

Definition at line 824 of file advertservice_database.c.

References fields_count(), GAT_MEMORYFAILURE, GAT_SUCCESS, and GATUtil_strdup().

Referenced by advertservice_db_alter_table().

void release_fields char ***    fields [static]
 

Definition at line 846 of file advertservice_database.c.

Referenced by advertservice_db_alter_table().

GATResult advertservice_db_init GATContext    context,
sqlite **    db
 

advertservice_db_init

Initialise the engine and create the database, if appropriate (if it doesn't exist).

Definition at line 185 of file advertservice_database.c.

References advertservice_db_execute_sql_statements(), advertservice_db_get_version(), GAT_CREATE_STATUS, GAT_CREATE_STATUS_IF, GAT_CREATE_STATUS_UNCOND, GAT_CURRENT_STATUS, GAT_FAILED, GAT_INVALID_PARAMETER, GAT_RETURN_STATUS, GAT_STATUS_ADD_MESSAGE, GAT_SUCCEEDED, GAT_USES_STATUS, init_db_stmts, and SQLITE_TO_GAT.

Referenced by advertservice_adaptor_GATAdvertServiceCPI_Add(), advertservice_adaptor_GATAdvertServiceCPI_CreateInstance(), advertservice_adaptor_GATAdvertServiceCPI_Delete(), advertservice_adaptor_GATAdvertServiceCPI_Find(), advertservice_adaptor_GATAdvertServiceCPI_GetAdvertisable(), and advertservice_adaptor_GATAdvertServiceCPI_GetMetaData().

void advertservice_db_close sqlite **    db
 

advertservice_db_close

Definition at line 237 of file advertservice_database.c.

Referenced by advertservice_adaptor_GATAdvertServiceCPI_Add(), advertservice_adaptor_GATAdvertServiceCPI_CreateInstance(), advertservice_adaptor_GATAdvertServiceCPI_Delete(), advertservice_adaptor_GATAdvertServiceCPI_Find(), advertservice_adaptor_GATAdvertServiceCPI_GetAdvertisable(), and advertservice_adaptor_GATAdvertServiceCPI_GetMetaData().

GATResult advertservice_db_write_advert_data GATContext    ctx,
sqlite *    db,
char const *    path,
char const *    data,
GATTable_const    metadata
 

advertservice_db_write_advert_data

Definition at line 250 of file advertservice_database.c.

References advertservice_db_begin_transaction(), advertservice_db_commit_transaction(), advertservice_db_find_node(), advertservice_db_write_data(), data, GAT_CREATE_STATUS, GAT_CURRENT_STATUS, GAT_FAILED, GAT_RETURN_STATUS, GAT_STATUS_ADD_MESSAGE, GAT_USES_STATUS, GATTable_const, and GATTrue.

Referenced by advertservice_adaptor_GATAdvertServiceCPI_Add().

GATResult advertservice_db_delete_advert_data GATContext    ctx,
sqlite *    db,
char const *    path
 

advertservice_db_delete_advert_data

Definition at line 284 of file advertservice_database.c.

References advertservice_db_begin_transaction(), advertservice_db_commit_transaction(), advertservice_db_delete_node(), advertservice_db_find_node(), GAT_CREATE_STATUS, GAT_CURRENT_STATUS, GAT_FAILED, GAT_RETURN_STATUS, GAT_STATUS_ADD_MESSAGE, GAT_USES_STATUS, and GATFalse.

Referenced by advertservice_adaptor_GATAdvertServiceCPI_Delete().

GATResult advertservice_db_get_metadata GATContext    ctx,
sqlite *    db,
char const *    path,
GATTable   metadata
 

advertservice_db_get_metadata

Definition at line 317 of file advertservice_database.c.

References advertservice_db_find_node(), advertservice_db_get_node_metadata(), GAT_CREATE_STATUS, GAT_CURRENT_STATUS, GAT_FAILED, GAT_RETURN_STATUS, GAT_STATUS_ADD_MESSAGE, GAT_USES_STATUS, and GATFalse.

Referenced by advertservice_adaptor_GATAdvertServiceCPI_GetMetaData().

GATResult advertservice_db_get_advert_data GATContext    context,
sqlite *    db,
char const *    pathstr,
char **    data
 

advertservice_db_get_advertisable_data

Definition at line 345 of file advertservice_database.c.

References advertservice_db_find_node(), advertservice_db_get_node_data(), data, GAT_CREATE_STATUS, GAT_CURRENT_STATUS, GAT_FAILED, GAT_RETURN_STATUS, GAT_STATUS_ADD_MESSAGE, GAT_USES_STATUS, and GATFalse.

Referenced by advertservice_adaptor_GATAdvertServiceCPI_GetAdvertisable().

GATResult advertservice_db_find GATContext    context,
sqlite *    db,
GATTable_const    metadata,
GATList_String *    paths
 

advertservice_db_find

Definition at line 373 of file advertservice_database.c.

References advertservice_db_find_pathes(), advertservice_db_get_datatable_number(), advertservice_db_re_match(), append_string(), GAT_CREATE_STATUS, GAT_CREATE_STATUS_IF, GAT_CURRENT_STATUS, GAT_FAILED, GAT_INVALID_PARAMETER, GAT_MEMORYFAILURE, GAT_RETURN_STATUS, GAT_STATUS_ADD_MESSAGE, GAT_SUCCEEDED, GAT_USES_STATUS, GATList_String_Create(), GATList_String_Destroy(), GATTable_const, GATTable_Get_String(), GATTable_GetKeys(), GATTable_ReleaseKeys(), GATTable_Size(), GATuint32, and SQLITE_TO_GAT.

Referenced by advertservice_adaptor_GATAdvertServiceCPI_Find().


Variable Documentation

const char* rcsid = "$Header: /export/cvs-gridlab/wp-1/Codes/GATEngine/C-reference/adaptors/advertservice_adaptor/advertservice_database.c,v 1.9 2004/04/18 15:04:59 merzky Exp $" [static]
 

Definition at line 18 of file advertservice_database.c.

char const* init_db_stmts[] [static]
 

Definition at line 121 of file advertservice_database.c.

Referenced by advertservice_db_init().

char const* begin_transaction_stmts[] [static]
 

Initial value:

 
{
  "begin transaction on conflict rollback;",
  0
}

Definition at line 164 of file advertservice_database.c.

Referenced by advertservice_db_begin_transaction().

char const* commit_transaction_stmts[] [static]
 

Initial value:

 
{
  "commit transaction;",
  0
}

Definition at line 171 of file advertservice_database.c.

Referenced by advertservice_db_commit_transaction().