This is coconut.info, produced by makeinfo version 4.0b from
coconut.texinfo.

   The Coconut Library - version 0.2.6

   Copyright (C) 2001 Steel Wheels Project

   Permission is granted to make and distribute verbatim copies of this
manual provided the copyright notice and this permission notice are
preserved on all copies.

   Permission is granted to copy and distribute modified versions of
this manual under the conditions for verbatim copying, provided that
the entire resulting derived work is distributed under the terms of a
permission notice identical to this one.

   Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be stated in a
translation approved by the Foundation.


File: coconut.info,  Node: Top,  Next: Introduction,  Prev: (dir),  Up: (dir)

   This file documents the Steel Wheels Objective-C Class Library.

* Menu:

* Introduction::                What is the coconut library.
* Copying::                     How you can copy and share the coconut library.
* Overview::                    Preliminary information.
* Coding rule::			local coding rule for this class library.
* Class group::			Each class are categorized for it's purpose
* Protocol::			Set of classes which have similar function.
* Classes::			Details of each classes.
* Functions::			Generic functions, type definitions and macros.
* Utilities::			Utility programs for this library.
* Sample::                      Sample program using the coconut library.
* Problems::                    Reporting bugs.
* Dictionary::			Terms for naming class, methods, etc..
* Function Index::		Index of methods.
* Concept Index::               Index of concepts.


File: coconut.info,  Node: Introduction,  Next: Copying,  Prev: Top,  Up: Top

Introduction
************

   The Coconut Library is a Objective-C class library for Unix like
systems.  The feauture of The Coconut Library is:
   * Support the basic classes for Graphics, Mathematics,
     Textprocessing, etc

   * Bind some major library by seemless way
        * glib - general purpose data operation

        * gtk - GUI widget opetation

        * libxml2 - XML data analysis and translation

        * obstack - growable sized memory object operation

        * popt - command line option parser

   * Easy to use

   * Precise documentation to use this library


File: coconut.info,  Node: Copying,  Next: Overview,  Prev: Introduction,  Up: Top

Copying
*******

   The Coconut Library is lisenced under GNU Lesser Public License.
For more details, see the web page
`http://www.gnu.org/copyleft/lgpl.html'.


File: coconut.info,  Node: Overview,  Next: Coding rule,  Prev: Copying,  Up: Top

Overview
********

   The Coconut Library is a set of classes of Objective-C.


File: coconut.info,  Node: Coding rule,  Next: Class group,  Prev: Overview,  Up: Top

Coding rule
***********

   The coding rule (ex: the location of file, letters used for the
files, names of method and  behavier of each methods) are restricted by
following rules.


File: coconut.info,  Node: Class group,  Next: Protocol,  Prev: Coding rule,  Up: Top

Class Group
***********

   All classes belong to the "class group".  The subset of classes
beloging to same class group has similar interfaces.

`Allocator class group'
     Dynamic allocated memory operation class.  The class belong to the
     allocator class group operate one or more memory objects which
     allocated dynamically.  The class in this group is used by set
     class group etc ...

`Math class group'
     Mathematical operation of objects and expression object handling
     class.

`TextForm class group'
     Formatter classes for plain text data.  The TextForm class group
     supports indentation of text.

`XML class group'

File: coconut.info,  Node: Protocol,  Next: Classes,  Prev: Class group,  Up: Top

Protocols
*********

Hierarchy of Protocols
======================

`PObject'
     The protocol implemented by all the other protocols.  This
     protocol defines the methods for allocation, initialization,
     deallocation and releasing object.

    `PAllocator'
          This protocol operates the dynamic memory object.  If the
          memory object containes two or more element, it is called
          "SetMemory" against "SingleMemory".  If you require the
          dynamic allocated memory, use this protocol or sub protocols
          inherit this one.
         `PGrowableAllocator'
               This protocol concatenate the memory object to the
               current one.  The size of single memory object will be
               increase, never decrease.

         `PSetAllocator'
               Operates the set of memory objects. The new object can
               be added to the set. And any objects can be removed from
               the set.

    `PIndent'
          The usage of this protocol is very limited.  The indented
          text has some spaces at the start of the line.  This protocol
          is used to operate the spaces.

    `POptParser'
          This protocol define the interface for the command line
          option parser.

    `PWidget'
          This protocol defines the interface of the GUI widget.


File: coconut.info,  Node: Classes,  Next: Functions,  Prev: Protocol,  Up: Top

Classes
*******

Class List
==========

   The following classes are supported.

`CArray'
     Fixed sized object vector

`CConstStr'
     Unmodifiable string data

`CDList'
     Double linked list

`CDouble'
     Floating point value operation

`CFile'
     File opetaion

`CHash'
     Object spool with hashkey

`CIndent'
     Auto indent

`CInt'
     Fixed point value operation

`CList'
     4 direction linked list (parent, child, prev/next siblings)

`CMemChunk'
     Fixed sized memory object list operation

`CMemory'
     Memory object operation

`CMemPage'
     Unit sized memory operation

`CMemSpool'
     the pool for undefined size memory objects

`CObject'
     super class of all objects

`CObstack'
     the pool for incremental sized memory objects

`COptParser'
     command line option/argument parser

`CParserSystem'
     CUI system base

`CRegExp'
     Regular Expression operation

`CStack'
     Fixed sized LIFO queue

`CStdIO'
     Standard input/output or error stream

`CString'
     Mutable string operation

`CSystem'
     The main control flow system base

`CXMLEditor'
     XML data modification

`CXMLFile'
     XML data file access

`CXMLPath'
     XPath control for XML data

`CXMLTree'
     XML data structure operation


File: coconut.info,  Node: Functions,  Next: Utilities,  Prev: Classes,  Up: Top

Function, Type definition and Macro
***********************************


File: coconut.info,  Node: Utilities,  Next: Sample,  Prev: Functions,  Up: Top

Utilities
*********


File: coconut.info,  Node: Sample,  Next: Problems,  Prev: Utilities,  Up: Top

Sample
******


File: coconut.info,  Node: Problems,  Next: Dictionary,  Prev: Sample,  Up: Top

Reporting Bugs
**************

   If you find a bug in the coconut library, please send electronic
mail to `wheel@osaka.email.ne.jp'.

   If you have other questions, comments or suggestions about the
coconut library, contact the author via electronic mail to
`wheel@osaka.email.ne.jp'.  The author will try to help you out,
although he may not have time to fix your problems.


File: coconut.info,  Node: Dictionary,  Next: Function Index,  Prev: Problems,  Up: Top

Dictionary
**********

   These words are used for naming the methods.

`add'
     Add an object to the data set. If the set is an ordered set, the
     new object is added just after current pointer.  The method which
     add the object to the last of ordered set must be named `append'.

`append'
     Add an object to the ordered data set.  The object will be added
     to the last of the ordered set.  If the target data is unordered
     set, use `add' instead of `append'.

`clear'
     Recover the initial state of an object.  All member of the object
     will be lost.

`print'
     Printout the information of the object to standard output.  This
     method is used for debugging.  Do not use this method to

`search'
     Seach one object from data set.  If the target objects are more
     than one, use `pickup'.


File: coconut.info,  Node: Function Index,  Next: Concept Index,  Prev: Dictionary,  Up: Top

Function Index
**************

* Menu:

* allocator, allocator class group:      Class group.
* Math, Math class group:                Class group.
* PObject:                               Protocol.
* TextForm, TextForm class group:        Class group.
* XML, XML class group:                  Class group.


File: coconut.info,  Node: Concept Index,  Prev: Function Index,  Up: Top

Concept Index
*************

* Menu:

* bugs:                                  Problems.
* class group <1>:                       Class group.
* class group:                           Overview.
* dictionary: add:                       Dictionary.
* dictionary: append:                    Dictionary.
* dictionary: clear:                     Dictionary.
* dictionary: print:                     Dictionary.
* dictionary: search:                    Dictionary.
* introduction:                          Introduction.
* overview:                              Overview.
* problems:                              Problems.



Tag Table:
Node: Top823
Node: Introduction1782
Node: Copying2450
Node: Overview2698
Node: Coding rule2862
Node: Class group3133
Node: Protocol3875
Node: Classes5312
Node: Functions6652
Node: Utilities6809
Node: Sample6913
Node: Problems7010
Node: Dictionary7471
Node: Function Index8392
Node: Concept Index8796

End Tag Table
