⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clidb.h

📁 一个不错的fastdb使用例子
💻 H
字号:
//-< 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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -