comp.lang.ada
 help / color / mirror / Atom feed
From: "Warren W. Gay VE3WWG" <ve3wwg@NoSpam.cogeco.ca>
Subject: Re: APQ
Date: Thu, 16 Dec 2004 06:34:06 -0500
Date: 2004-12-16T06:34:06-05:00	[thread overview]
Message-ID: <Onewd.204$Wt5.95202@read2.cgocable.net> (raw)
In-Reply-To: <sa4brcv2l5m.fsf@snoopy.apana.org.au>

Brian May wrote:
> Hello,
> 
> Here are my suggested changes to APQ (not actually done or tested).

I'll just respond briefly here, since I am on my way to
work..

> 1. Decide on or write a "smart pointer" library. ie. a library that
> manages pointers based on a reference count. Obviously the license
> must be compatible with the license of APQ.
> 
> 2. No change to Connection_Type or Root_Connection_Type.
> 
> 3. Create new Database_Type. This type should not be
> tagged. Applications will use this instead of the
> Root_Connection_Type. It has the following data:
> 
> * Smart pointer to Root_Connection_Type'Class. This is dynamically
>   allocated when the connection is created.
> 
> It has the following methods:
> 
>   * Connect method takes a string, which is the connection URL.  Note:
>     Two ways of implementing:

Ok, this makes sense because you don't know the type
of Connection_Type apriori. I generally favour Booch
components myself, which includes a smart pointer.

...

> 4. Modify Root_Query_Type class:
> 
>    New_Query is the only function that takes a *Database_Type*
>    parameter.
> 
>    The functions that use to require Root_Connection_Type now use the
>    smart pointer that was saved instead.
> 
>    Why not make the procedures abstract instead of having them raise
>    an Is_Abstract? This way the checks can be done at compile time.

Answer: I wanted to put some code at the top level so that I
wouldn't have to repeat it for every database. For some reason
the compiler wouldn't let me do it (perhaps I was missing
something). I would be happy to have this done, but I was
unable to make it so in practice. Maybe someone else can
figure it out.

>    Execute already returns exception if not connected.
> 
>    Add methods for obtaining and clearing status information. This
>    should be cached so if you execute two separate queries (in two
>    separate variables) on the same database, you will get two status
>    messages saved.

You have to be real careful here, because database products
like Sybase use callbacks and things can change. In fact, Sybase
was a monster to tame with its oodles of states and callbacks.

> I hope this helps explain what I said earlier... I believe this solves
> a number of concerns with the existing system in one go.

I'll try to respond more fully later on, but this seems to make
sense.

--
Warren W. Gay VE3WWG
http://home.cogeco.ca/~ve3wwg



  reply	other threads:[~2004-12-16 11:34 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-15 23:31 APQ Brian May
2004-12-16 11:34 ` Warren W. Gay VE3WWG [this message]
2004-12-16 23:58   ` APQ Randy Brukardt
2004-12-17  3:45     ` APQ Brian May
2004-12-17  4:03       ` APQ Warren W. Gay VE3WWG
2004-12-17  4:38         ` APQ Brian May
2004-12-17  9:06           ` APQ Egil H. H�vik
2004-12-17 11:42             ` APQ Brian May
2004-12-17 22:55               ` APQ Brian May
2004-12-18 15:52                 ` APQ Warren W. Gay VE3WWG
2004-12-18 18:23                   ` APQ Dmitry A. Kazakov
2004-12-21 23:34                     ` APQ Brian May
2004-12-22  8:57                       ` APQ Dmitry A. Kazakov
2004-12-22 10:07                   ` APQ Martin Krischik
2004-12-22 13:15                     ` APQ Dmitry A. Kazakov
2004-12-22 16:53                       ` APQ Martin Krischik
2004-12-22 17:21                         ` APQ Dmitry A. Kazakov
2004-12-22 18:23                           ` APQ Martin Krischik
2004-12-17  8:59       ` APQ Stephen Leake
2004-12-17 14:12       ` APQ Dmitry A. Kazakov
2004-12-17 23:20         ` APQ Brian May
2004-12-18 16:13           ` APQ Dmitry A. Kazakov
2004-12-21 23:29         ` APQ Brian May
2004-12-22  9:14           ` APQ Dmitry A. Kazakov
2005-01-04 21:32             ` APQ Brian May
2005-01-05 11:58               ` APQ Dmitry A. Kazakov
2004-12-23 17:04           ` APQ (Connection Cloning) Warren W. Gay VE3WWG
2004-12-23 17:55             ` Georg Bauhaus
2004-12-23 18:52               ` Warren W. Gay VE3WWG
2005-01-03  7:40                 ` Frank Piron
2004-12-17 13:54 ` APQ Dmitry A. Kazakov
  -- strict thread matches above, loose matches on Subject: below --
2004-12-16  4:37 APQ Christoph Karl Walter Grein
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox