home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fish 4
/
FreshFish_May-June1994.bin
/
tools
/
kingfisher
/
kingfisher.doc
< prev
next >
Wrap
Text File
|
1994-04-16
|
19KB
|
462 lines
KingFisher 2.0
Copyright © 1992-1994 by Udo Schuermann
All rights reserved
0 NOTICE -----------------------------------------------------------------
This document is a preliminary copy that describes some features of
KingFisher 2.0 that may not all be functional. Please be aware of the fact
that KingFisher 2.0 is currently a BETA release and not a finished product
by any stretch of the imagination. Much, MUCH, *MUCH* more is coming!
(Just look at what is "hidden" in the menus for a HINT of the future.)
1 INTRODUCTION -----------------------------------------------------------
Despite rapid growth of KingFisher Release 1 (1.0 through 1.40) KingFisher
has retained largely the same interface. It was my first serious project
for the Amiga, through which I not only learned how to program the machine,
but also how to listen to users and work towards a more flexible solution
that offers the necessary growth potential.
The result of this effort is KingFisher 2.0, not just a rewrite of the
original, but a complete redesign of the underlying concepts. This makes
KingFisher 2.0 a significantly more powerful product. Alas, it has also
grown somewhat in complexity.
This document attempts to outline the concepts behind KingFisher 2.0 to
give you the necessary understanding of what KingFisher has grown up to
become.
2 FEATURES ---------------------------------------------------------------
Before we dwell on the implementation details, let us examine what this new
KingFisher can do for you:
1. You get a fully (proportional) font-sensitive GadTools interface that
runs in a window on the default public screen. You can resize this
window to your heart's content,
2. You can run two or more copies of KingFisher, run them side-by-side in
their own windows, use one to search, and the other to examine data,
3. You can access more than just a single database! You can now view the
Original Fred Fish database (Disks 1 through 1000) then switch to the
Aminet Database, then select your club's disk collection. Run two
copies of KingFisher and search one database while viewing another, or
search two databases simultaneously!
Do you like it so far?
4. KingFisher now supports Fred Fish's new field-oriented database format
(which I helped design) so you can perform relational searches based on
only specific fields,
5. Were the original six search expressions not enough for you? Would you
have liked to maintain a larger set of expressions to reference later?
KingFisher now supports a list of search expressions whose size limit is
yours to set and revise as you like,
6. Did you ever wish you could easily scan through all fish that a search
revealed without having to perform lengthy backward searches? This is
now a reality with Search Sets, any number of which you can even save to
disk and retrieve at later times!
Sounding better than ever?
7. Avoid finding, over and over again, programs you already have, or ones
which you already have evaluated, or are not interested in. KingFisher
2.0 lets you mark fish in the database so that searches will never find
them if you want them to stay hidden.
8. Parlez-vous Français? Sprechen Sie Deutsch? Habla Español? Parla
Italiano? KingFisher is fully localized, ready to speak YOUR language.
Change KingFisher's language to one you don't know and learn a foreign
language. Amaze your friends! Amaze yourself! ;-)
9. Localized, context sensitive AmigaGuide®-based help and information is
just a keystroke away.
Can't wait to see this marvel in action? Then read on:
3 CLIENT-SERVER ARCHITECTURE ---------------------------------------------
KingFisher 2.0 is no longer a single, self-contained application. As such,
it is not enough to start a single program, use it, and shut it down again.
At the heart of this new-found flexibility lies a concept known as the
Client-Server Model. The concept is simple:
One program (the Server) handles access to the databases and responds to
access requests from one or more clients. The clients need to know nothing
of the database format itself, and the server needs to know nothing about
how to present the data. Each is highly specialized and can therefore be
more expert in its field.
The "KingFisher 2.0 Database Server" is the server application which must
run in the background. The program will consume about 50K of memory while
it is running. You can close its status window if it bothers you and it
will open it again only when it wants to inform you of something.
You can then run one or more client applications which will connect to the
server and let you access the database. The "KingFisher 2.0 Package" comes
with several such client applications in addition to the ever-needed
server:
1. KingFisher 2.0
This is the GadTools interface which we introduced above. Documentation
for KingFisher will be given in another place.
NOTE: As of the BETA 2 release, KingFisher will start the KFServer if it
is not running; this requires that the KFServer program is in the
default directory (as far as KingFisher is concerned.)
2. RexxFisher 1.0
This is an ARexx interface to the Server through which a BBS can access
the server. Run multiple copies of RexxFisher to offer multiple BBS
users access to the database!
3. CLIent 1.1
A CLI-based interface for the Server. It is useful for simple lookup
and testing. It performs no formatting on the data retrieved from the
server, so it is not especially pretty to use.
Registered users will obtain source code to this program!
4. ReOrder 1.1
A CLI-based tool which allows you to copy a range of records from one
KingFisher database to another. Multiple invocations could copy ranges
of fish from multiple databases to produce a new database.
Registered users will obtain source code to this program!
Developers: Contact the author about development of additional client
programs. A MUI®-based client is especially desired.
4 STARTING KINGFISHER ----------------------------------------------------
When you start KingFisher, it will attempt to connect to the KingFisher 2.0
Database Server (KFServer); if it cannot locate the server, it will attempt
to start the server, which will work only if the KFServer is located in the
default directory. Without the server operational, KingFisher cannot
access a database.
The Server will open a default database and then wait for clients
to connect. It will also open a status display window. You can close this
window with the close gadget; this does not shutdown the server. See below
for ways to shutdown the server.
NOTE: If the Server cannot open its default database, it will shutdown
again. The default database is described by the contents of the
KFServer.kfdb file. It must be named that, and its contents should be
something along these lines:
# KingFisher 2.0 Server preferences
#
# Database is known to clients as
database-name=Frozen Fish Database
# Database Sections (StartEntry,EndEntry,Filename)
section=00000,00999,FrozenFish:FrozenFish01.data
section=01000,01999,FrozenFish:FrozenFish02.data
section=02000,02999,FrozenFish:FrozenFish03.data
section=03000,03999,FrozenFish:FrozenFish04.data
section=04000,04999,FrozenFish:FrozenFish05.data
section=05000,05999,FrozenFish:FrozenFish06.data
section=06000,06999,FrozenFish:FrozenFish07.data
section=07000,07999,FrozenFish:FrozenFish08.data
section=08000,08999,FrozenFish:FrozenFish09.data
section=09000,09999,FrozenFish:FrozenFish10.data
# Main index is to be stored ... (OnDisk or InRam)
index=inram
index-increment=100
index-name=FrozenFish:FrozenFish.Index
# Field index
# This one's not being used at this time
field-index-field=name
field-index-name=FrozenFish:FrozenFish-Name.Index
# THE FOLLOWING WILL ONLY WORK IN THE DEFAULT FILE,
# i.e. THE 'KFSERVER.KFDB' FILE:
#
# Maximum number of clients permitted
maxclients=2
# Output window
window=CON://640/200/KingFisher 2.0 Server Messages/AUTO
# How talkative shall the server be?
# MUTE, TERSE, QU