7
#define VAULT_DIR "./local/"
8
#define VAULT_EXT ".vault"
9
#define AV_QUERY_LENGTH 1024*1024*3
11
#define TABLE_CREATE "CREATE TABLE Vault (Name varchar UNIQUE, Value varchar);"
14
NameTable<sqlite3> vaults;
15
char _query[AV_QUERY_LENGTH];
16
char _result[AV_QUERY_LENGTH];
20
List<sqlite3> vaultList;
21
vaults.append(&vaultList);
22
sqlite3* vault = vaultList.popFront();
26
vault = vaultList.popFront();
30
void store(char* vaultName, char* name, char* value)
32
sqlite3** vault = vaults.get(vaultName);
35
char pathName[1024*32];
37
//sprintf(pathName,"%s%s%s",VAULT_DIR,vaultName,VAULT_EXT);
40
char* homestr = getenv("HOME");
41
sprintf(pathName,"%s/.mirthkit/%s%s",homestr,vaultName,VAULT_EXT);
45
char* homestr = getenv("HOMEPATH");
46
sprintf(pathName,"%s/MirthKit/%s%s",homestr,vaultName,VAULT_EXT);
50
char* homestr = getenv("HOME");
51
sprintf(pathName,"%s/.mirthkit/%s%s",homestr,vaultName,VAULT_EXT);
54
sqlite3_open(pathName,vault);
55
sqlite3_exec(*vault,TABLE_CREATE,0,0,0);
57
sprintf(_query,"REPLACE INTO Vault (Name,Value) VALUES ('%s','%s');",name,value);
58
sqlite3_exec(*vault,_query,0,0,0);
61
int _avCallback(void* used,int numColumns,char** columns, char** columnNames)
63
*((bool*)used) = true;
64
strcpy(_result,columns[0]);
68
char* retrieve(char* vaultName, char* name)
70
sqlite3** vault = vaults.get(vaultName);
73
char pathName[1024*32];
75
//sprintf(pathName,"%s%s%s",VAULT_DIR,vaultName,VAULT_EXT);
78
char* homestr = getenv("HOME");
79
sprintf(pathName,"%s/.mirthkit/%s%s",homestr,vaultName,VAULT_EXT);
83
char* homestr = getenv("HOMEPATH");
84
sprintf(pathName,"%s/MirthKit/%s%s",homestr,vaultName,VAULT_EXT);
88
char* homestr = getenv("HOME");
89
sprintf(pathName,"%s/.mirthkit/%s%s",homestr,vaultName,VAULT_EXT);
92
sqlite3_open(pathName,vault);
93
if(sqlite3_exec(*vault,TABLE_CREATE,0,0,0)==SQLITE_OK) return 0;
96
sprintf(_query,"SELECT Value FROM Vault WHERE Name = '%s';",name);
98
sqlite3_exec(*vault,_query,_avCallback,&used,0);
104
#endif /* _AVOCADO_H */