clidb.h

来自「fastdb-241源码」· C头文件 代码 · 共 151 行

H
151
字号
//-< CLIDB.H >-------------------------------------------------------*--------*
// FastDB                    Version 1.0         (c) 1999  GARRET    *     ?  *
// (Main Memory 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
//-------------------------------------------------------------------*--------*

#ifndef __CLIDB_H__
#define __CLIDB_H__

#include "fastdb.h"
#include "wwwapi.h"

class History;
class Manager;
class Segment;

class Client { 
  public:
    char const* organization;
    char const* phone;
    char const* phone2;
    char const* fax;
    char const* email;
    char const* www;
    char const* person;
    char const* person2;
    char const* lpr;
    char const* addr;
    char const* info;
    char const* status;
    int         clientId;
    dbReference<Segment> segment;
    dbArray<dbReference<History> > history;

    void print(WWWconnection& con) const;
    
    TYPE_DESCRIPTOR((KEY(clientId, INDEXED),
		     FIELD(organization),
		     FIELD(phone),
		     FIELD(phone2),
		     FIELD(fax),
		     FIELD(email),
		     FIELD(www),
		     FIELD(person),
		     FIELD(person2),
		     FIELD(lpr),
		     FIELD(addr),
		     FIELD(info),
		     FIELD(status),
		     RELATION(segment, clients),
		     OWNER(history, client)));
};

class History { 
  public:
    int         messageId;
    char const* message;
    dbDateTime  date;
    dbReference<Manager> manager;
    dbReference<Client>  client;
    
    void print(WWWconnection& con) const;

    TYPE_DESCRIPTOR((KEY(messageId, INDEXED),
		     FIELD(message),
		     FIELD(date),
		     RELATION(client, history),
		     RELATION(manager, messages)));
};

class Manager { 
  public:
    char const* name;
    char const* IPaddr;
    int         flags;
    dbReference<Segment> segment;
    dbArray<dbReference<History> > messages;

    static bool loginFromAnyHost;

    enum { 
	isMinAdmin      = 1,
	isAdministrator = 2
    };
    
    void print(WWWconnection& con) const;

    TYPE_DESCRIPTOR((KEY(name, INDEXED),
		     FIELD(IPaddr),
		     FIELD(flags),
		     RELATION(segment, managers),
		     RELATION(messages, manager)));
};

class Segment { 
  public:
    char const* name;
    dbArray<dbReference<Client> >  clients;
    dbArray<dbReference<Manager> > managers;
 
    void print(WWWconnection& con) const;

    TYPE_DESCRIPTOR((KEY(name, INDEXED),
		     OWNER(clients, segment),
		     OWNER(managers, segment)));
};

class Sequencer { 
  public:
    int lastClientId;
    int lastMessageId;

    TYPE_DESCRIPTOR((FIELD(lastClientId),
		     FIELD(lastMessageId)));
};

class ThreadContext { 
  public:
    dbCursor<Client>  clients;
    dbCursor<Manager> managers;
    dbCursor<Segment> segments;
    dbCursor<History> messages;
    dbCursor<Sequencer> sequencer;

    dbQuery qClient;
    dbQuery qManager;
    dbQuery qClients;
    dbQuery qManagers;
    dbQuery qSegment;
    dbQuery qMessage;
    dbQuery qMessages;
    
    bool  managerForm;

    int   clientId;
    int   messageId;
    char* name;
    dbArray<dbReference<Client> >*  clientsArray;
    dbArray<dbReference<Manager> >* managersArray;
    dbArray<dbReference<History> >* messagesArray;
    
    ThreadContext();
    static ThreadContext& of(WWWconnection& con);
};

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?