//-< CLIDB.CPP >-----------------------------------------------------*--------*
// GigaBASE Version 1.0 (c) 1999 GARRET * ? *
// (Post Relational Database Management System) * /\| *
// * / \ *
// Created: 7-Nov-99 K.A. Knizhnik * / [] \ *
// Last update: 7-Nov-99 K.A. Knizhnik * GARRET *
//-------------------------------------------------------------------*--------*
// Example of Web database publishing: Clients Database
//-------------------------------------------------------------------*--------*
#include "clidb.h"
dbDatabase db;
//- Client ------------------------------------------------
void Client::print(WWWconnection& con) const
{
con << TAG << "";
}
REGISTER(Client);
//- Manager ------------------------------------------------
bool Manager::loginFromAnyHost;
void Manager::print(WWWconnection& con) const
{
con << TAG << "";
}
REGISTER(Manager);
//- Segment ------------------------------------------------
void Segment::print(WWWconnection& con) const
{
con << TAG << "";
}
REGISTER(Segment);
//- History ------------------------------------------------
void History::print(WWWconnection& con) const
{
ThreadContext& the = ThreadContext::of(con);
char buf[64];
con << TAG << "";
}
REGISTER(History);
//---- ClientSequencer -------------------------------------
REGISTER(Sequencer);
template
void print(WWWconnection& con, dbCursor& cursor) {
do {
cursor->print(con);
} while(cursor.next());
}
template
void print(WWWconnection& con, dbArray > const& arr) {
dbCursor cursor;
for (int i = 0, n = (int)arr.length(); i < n; i++) {
cursor.at(arr[i])->print(con);
}
}
//---- Thread Context --------------------------------------------------
ThreadContext& ThreadContext::of(WWWconnection& con)
{
if (con.userData == NULL) {
con.userData = new ThreadContext;
}
return *(ThreadContext*)con.userData;
}
ThreadContext::ThreadContext()
{
qClient = "clientId=",clientId;
qManager = "name=",&name;
qClients = "start from",clientsArray,"order by organization";
qManagers = "start from",managersArray,"order by name";
qSegment = "name=",&name;
qMessage = "messageId=",messageId;
qMessages = "start from",messagesArray,
"order by",dbDateTime::descent("date");
}
//--- HTML specific part -------------------------------------------
#define HTML_HEAD "Content-type: text/html\r\n\r\n\
"
#define BODY ""
#define EMPTY_LIST "
"
void mainMenuReference(WWWconnection& con)
{
char* manager = con.get("manager");
if (manager != NULL) {
con << TAG
<< "
Back to main menu";
}
con << TAG << "";
}
bool error(WWWconnection& con, char const* msg)
{
con << TAG <<
HTML_HEAD "ClientDB error"
""
<< msg << "