The HOOPLE Libraries

[Hierarchical Object-Oriented Programming Language Extensions]

    HOOPLE is a collection of C++ libraries, applications and test programs.  It is hierarchical in nature in that each library is allowed to build upon the services of all lower-level libraries.  The lowest level library is called "basis", and it has both the most fundamental and the most widely used classes.  The HOOPLE source code is distributed under the GNU General Public License.  Copy it far and wide, use it for your own personal tasks however you please, but if you publish programs based on HOOPLE, then they must also follow the GNU GPL.
    Please send feedback & changes to the [Administrator].  The project page is located at SourceForge.  In the following documentation, we will abbreviate HOOPLE as hoople.

hoople version 1.700.3057.0 packaged on Wednesday March 10 2010 06:32:20 AM

hoople Download

  • The full collection of hoople libraries and applications is here: hoople_library.tar.gz
  • The third-party libraries used for win32 compilation is here: 3rdparty_support.tar.gz
  • The hoople libraries use the CLAM Makefile System for compilation.  A version of CLAM is already included in the hoople archive.
  • Search Engine and Curious Friendly Code Root (points at the top of the hoople source code)

CVS Access at SourceForge

  1. Login and retrieve the hoople codebase:
    cvs -d:pserver:anonymous@hoople-org.cvs.sourceforge.net:/cvsroot/hoople-org login
         (just hit Enter when asked for a password)
    cvs -z3 -d:pserver:anonymous@hoople-org.cvs.sourceforge.net:/cvsroot/hoople-org co -P hoople
  2. Optional: Retrieve the hoople 3rdparty dependencies for win32 (only needed for windows compilation).
    cd hoople  (change directory to hoople download location)
    cvs -z3 -d:pserver:anonymous@hoople-org.cvs.sourceforge.net:/cvsroot/hoople-org co -P 3rdparty

Please consider donating to the hoople project: Support This Project  We can use the help.

hoople Documentation

C++ Class Reference

There is fairly substantial automatically generated documentation for hoople here: hoople/docs/html/index.html
This is generated by doxygen, which creates cross-referenced documentation with dependency charts.

Quick Start Guide

  1. Getting hoople and doing the first build:
    1. download hoople (see above).  if you get a tar.gz file, untar (tar -xzf) it into your home folder as ~/hoople..
    2. if you do not yet have bash and other unix apps, see the link "Setting up CLAM" for information on how to obtain them.
    3. go to the top of the build (either ~/hoople or l:\) and execute this command: bash bin/bootstrap_build.sh
    4. this should run for a while and end up generating many applications in the exe and tests subfolders, as well as a few dynamic libraries in the dll folder.  please excuse the windows terminology there, these apps and dynamic libraries are mostly portable and have been ported to unix, linux and win32 platforms.
  2. Preparing for further software builds:
    1. modify your ~/.bashrc to include the follow definitions:
          export REPOSITORY_DIR=~/hoople
          export MAKEFLAGS="-I $REPOSITORY_DIR/clam"
          if [ -z $TMP ]; then
            export TMP=~/.tmp
            if [ ! -d $TMP ]; then mkdir $TMP; fi
          fi
    2. go to anywhere in the hoople hierarchy that you want to recompile something and type: make
  3. Running hoople applications and tests:
    1. add this to your current environment or to your .bashrc:
          export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$REPOSITORY_DIR/dll
    2. launch the application from the exe directory or from the tests hierarchy, and it should now find the hoople shared libraries.

More Information








hoople Library Groups

Basis

Essential Foundational Objects

Buffers buff


Memory Buffer Management

Connectionslinkages


Network Connection Administrator

CROMP

Compact Remote Object Model Platform (RPC Replacement)

Data Structures

Collection of Various Abstract Data Types

Trigonometry & Geometry Classes

Interrupt

Unix Interrupt Handling

Linear Algebra

Numerical Matrix Manipulation

List Synchronizer

Merges Lists of Objects

Mathematics

Mathematical Support Objects

Mechanisms

Finite Automata, e.g. State Machines

MFC Extensions

Extensions to MS Foundation Classes

Nodes

Lists, Trees, Graphs


Octopus inky

Design Pattern for Packetized Request Processing

Operating System venerable ancient

Generalized OS Platform Services

Post Office

Object Mail Delivery Subsystem

Resolver

DNS Name Resolution

Scheduler

Soft Real-Time Schedule Driver

Service Extensions

Wrappers for win32 Service Functionality

Sockets

BSD Socket Support

Textual dead sea scroll

String Manipulation & Parsing

Window Parts watchin'

(passive & active)

Windowing Objects (using Open Motif)

Win32 Extensions

Wrappers for win32 Functionality







hoople Applications

Assign Bases

Rewrites base addresses of win32 dlls to a specific range

Bookmark Tools

URL tools: mozilla import, link website creator, bookmark sorter / cleaner, link health check

Dependency Generator

makedep tool generates makefile dependencies (originally from X Window System)

Nechung

Fortune generator but based on Nechung Oracle Program (NOP)

Utilities

Useful applications like bytedump, version stamper, dos2unix, text splitter, and others