gnue-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnue-dev] Restructuring of GNUe Common directory


From: Jason Cater
Subject: Re: [Gnue-dev] Restructuring of GNUe Common directory
Date: Thu, 20 Feb 2003 21:36:45 -0600

Well, my mail client butchered the "detailed structure" list, so I
committed these notes in CVS as gnue/common/src/README. 

-- Jason

On Thu, 20 Feb 2003 21:27:30 -0600
Jason Cater <address@hidden> wrote:

> Good evening, all.
> 
> As anyone accessing CVS will notice, we have recently reorganized the
> structure of several GNUe-Common elements. The main gnue/common/src
> directory was getting cluttered with many, many often unrelated files.
> We've tried to group them into functionality as follows:
> 
> apps/              * Classes specific to a client or server app instance
> cursing/           * A UI abstraction library for a curses environment.
> datasources/       * Anything database-related
> definitions/       * Document definition framework (GFDs, GRDs, etc)
> events/            * An event framework
> external/          * License-compatable non-GNUe code that we 
> formatting/        * Support for formatting strings, numbers, dates,
> etc. logic/             * Development "logic" classes (aka,
> scripting/triggers) rpc/               * The RPC abstraction library
> utils/             * Miscellaneous "handy" utilities
> 
> Of course, as with any attempt to organize code into such neat little
> categories, there is bound to be overlap. Oh, well... it's better than
> what we had :)
> 
> -- Jason 
> 
> Detailed structure 
> ------------------
> 
> apps/                 * Classes specific to a client or server app
> instance
>   GBaseApp.py         * All apps inherit this. Provides command line
> attribute
>                         support, automatic help generation, etc. 
>   GClientApp.py       * A client app - contains routines for connecting
>   to
> 
>                         GServerApp instances, etc. 
>   GConfig.py          * Config-file support
>   GDebug.py           * Classes for debugging output to screen or file, 
>                         with output filtered by a "level" indicator. 
>   GLogger.py          * Classes for logfile generation
>   GServerApp.py       * A server application. Contains hooks for RPC 
>                         exposure, daemonization, etc.
>   RuntimeSettings.py  * Temporary run-time config file support (i.e., 
>                         last window positions, etc.)
> 
>                         
> cursing/              * A UI abstraction library for a curses
> environment.
>                         May become a standalone toolkit some day.
> 
>                         
> datasources/          * Data connections
>   GConditions.py      * Support for datasource conditionals
>   GConnections.py     * Connection/Database Manager
>   GDataObjects.py     * Base for the drivers. Defines ResultSets
>                         and RecordSets.
>   GDataSource.py      * Support for the basic datasource, which is 
>                         really a vendor-neutral wrapper for a 
>                         vendor-specific GDataObject
>   GLoginHandler.py    * Base class for login handlers. Meant to be 
>                         subclassed by the client program.
>     
>                         
>   drivers/            * Base directory for datasource drivers
>     postgresql/       * Base directory for any pgsql-related drivers
>       Base/           * Code common to all the pgsql data drivers
>       Schema/         * Schema tools for pgsql              
>         Discovery/    * Code to extract schema information from a
>                         database.  Primarily used by Designer. 
>         Creation/     * Code to generate schema objects in a database.
>                         These should be able to generate DDL that can
>                         be written to a script file as well as written
>                         directly to the database. 
>       Extensions/     * PG extensions to the basic GDataObject spec. 
>                         (For example, code to run raw SQL in triggers, 
>                         get the database time, get a sequence value,
>                         etc.)
>       popy/           * The "popy" driver
>       psycopg/        * The "psycopg" driver
>       pygresql/       * The "pygresql" driver
>       pypgsql/        * The "pypgsql" driver
>     ... (other db drivers)
>   
>   schema/             * Generate schema definitions. Uses 
>                         drivers/*/Schema/Creation
>     parser/           * The Parser classes to load/design schema
> definitions
>     scripter/         * Utility to actually write out schema definitions
> 
>     
> definitions/          * Document definitions (GFDs, GRDs, etc)
>   GObjects.py         * The basic document node
>   GParser.py          * Load from an XML format into GObject format
>   GParserHelpers.py   * Support classes for GParser
>   GRootObj.py         * Support classes for GObjects
>   drivers/            * This is still in planning and doesn't yet exist,
>   
>                         but will contain drivers for loading/saving 
>                         definition files. 
>     xml/              * All the "To/From" XML code that's currently in 
>                         GObjects and GParser will be moved here. 
>     datasources/      * Code to store/retrieve definitions from a
> datasource
>                         (i.e., stored in a database)
>   
>                         
> events/               * An event framework 
>   Event.py            * An actual event
>   EventAware.py       * An class that can receive events
>   EventController.py  * A class that can manage events
> 
>   
> external/             * License-compatable non-GNUe code that we 
>                         put in our tree for convenience. 
>   shellwords.py       * Parse a string into words like a POSIX shell
>   does
> 
>   
> formatting/           * Support for formatting strings, numbers, dates,
> etc.
>   BaseMask.py         * Base for the mask system. Not used directly by
>   an
> app.
>   DateMask.py         * A format mask system (input and output) for
>   dates FormatExceptions.py * Exceptions raised by the *Mask.py classes
>   GDataFormatter.py   * A very general formatting system. In the future,
> it 
>                         will directly use the *Mask system, but at the
> moment
>                         hard-codes several common formats for use in
> Reports.
>   GTypecast.py        * Typecasting system used by GParser
>   NumberMask.py       * A format mask system (input and output) for
>   dates TextMask.py         * A format mask system (input and output)
>   for dates
> 
>   
> gear/                 * The GNUe Archive system... store definitions in
> a 
>                         single compressed archive file. ** This will be
> moved
>                         to "definitions/drivers" some time soon as a
> storage 
>                         adapter.
> 
>                         
> logic/                * Development "logic" classes
>   GFormula.py         * Formula support. Formulas appear almost as
>   fields
>                         to the application. They are not passed values,
> but
>                         can take existing fields' values and generate
>                         it's own value. Formulas cannot alter the data
>                         they
> pull 
>                         from. 
>   GTrigger.py         * Trigger support. Triggers are code that can be
> bound
>                         to certain application events. They cannot be
> passed
>                         values or return values, though they can alter
>                         the values of data. 
>   GTriggerCore.py     * Common core code for trigger support
>   NamespaceCore.py    * Core code for namespace generation
>   GProcedure.py       * Procedure support. These are different from
> Formulas
>                         and triggers in that Procedures can be passed
> values
>                         and can return values. 
>   
> rpc/                  * The RPC abstraction library
>   GComm.py            * Core RPC utility.  Creates the necessary
>   adapters drivers/            * Contains all the RPC drivers
>     Base/             * Common class definitions for all RPC drivers
>     xmlrpc/           * Driver files for XML-RPC layer
>     ... (other)
> 
> 
> utils/                * Miscellaneous "handy" utilities
>   FileUtils.py        * File manipulation tools
>   GDateTime.py        * Very basic datetime class
>   GMimeTypes.py       * List of common mime types
>   TextUtils.py        * Text formatting utilities
> 
> 
> 
> 
> _______________________________________________
> Gnue-dev mailing list
> address@hidden
> http://mail.gnu.org/mailman/listinfo/gnue-dev
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]