X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=base%2Fclasses.cl;fp=base%2Fclasses.cl;h=0a91a16db682ddd7afb54c82c86a7937757b3da6;hb=43d545f166cd4eb23ba835aa92685d5bd6d23d01;hp=0000000000000000000000000000000000000000;hpb=5a544e155a2570dd10e88426a921db4e4d7aaa5f;p=clsql.git diff --git a/base/classes.cl b/base/classes.cl new file mode 100644 index 0000000..0a91a16 --- /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.1 2002/05/13 16:22:08 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-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))) +