X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=base%2Fclasses.cl;fp=base%2Fclasses.cl;h=26dbf715157acf7aa03b6c1866d256fa99ec0d16;hb=31d1a78ee915ae4db7c042b7e5cb1ab7b5a73448;hp=0000000000000000000000000000000000000000;hpb=cbec78ec2d390fcf641108c1ca8d1589a0f22ed8;p=clsql.git diff --git a/base/classes.cl b/base/classes.cl new file mode 100644 index 0000000..26dbf71 --- /dev/null +++ b/base/classes.cl @@ -0,0 +1,55 @@ +;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*- +;;;; ************************************************************************* +;;;; FILE IDENTIFICATION +;;;; +;;;; Name: classes.cl +;;;; Purpose: Classes for High-level SQL interface +;;;; Programmers: Kevin M. Rosenberg based on +;;;; original code by Pierre R. Mai +;;;; Date Started: Feb 2002 +;;;; +;;;; $Id: classes.cl,v 1.4 2002/09/17 17:16:43 kevin Exp $ +;;;; +;;;; This file, part of CLSQL, is Copyright (c) 2002 by Kevin M. Rosenberg +;;;; and Copyright (c) 1999-2001 by Pierre R. Mai +;;;; +;;;; CLSQL users are granted the rights to distribute and use this software +;;;; as governed by the terms of the Lisp Lesser GNU Public License +;;;; (http://opensource.franz.com/preamble.html), also known as the LLGPL. +;;;; ************************************************************************* + +(declaim (optimize (debug 3) (speed 3) (safety 1) (compilation-speed 0))) +(in-package :clsql-base-sys) + + +(defclass database () + ((name :initform nil :initarg :name :reader database-name) + (connection-spec :initform nil :initarg :connection-spec :reader connection-spec + :documentation "Require to use connection pool") + (transaction-level :initform 0 :accessor transaction-level) + (transaction :initform nil :accessor transaction) + (conn-pool :initform nil :initarg :conn-pool :accessor conn-pool)) + (:documentation + "This class is the supertype of all databases handled by CLSQL.")) + +(defmethod print-object ((object database) stream) + (print-unreadable-object (object stream :type t :identity t) + (write-string (if (slot-boundp object 'name) + (database-name object) + "") + stream))) + +;; Closed database idea and original code comes from UncommonSQL + +(defclass closed-database () + ((name :initarg :name :reader database-name)) + (:documentation + "This class represents databases after they are closed via 'disconnect'.")) + +(defmethod print-object ((object closed-database) stream) + (print-unreadable-object (object stream :type t :identity t) + (write-string (if (slot-boundp object 'name) + (database-name object) + "") + stream))) +