Library

    Rp_LibraryInit()
    Rp_LibraryCopy(const Rp_Library* o)
    Rp_LibraryDestroy(Rp_Library *lib)

    Outcome *Rp_LibraryLoadXml(Rp_Library *lib, const char *xmltext)
    Outcome *Rp_LibraryLoadFile(Rp_Library *lib, const char *filename)


    void Rp_LibraryValue(Rp_Library *lib, const char *key,
        void *storage, size_t numHints, ...)

    Rp_Chain *Rp_LibraryDiff(Rp_Library *lib1, Rp_Library *lib2)

    void Rp_LibraryRemove (Rp_Library *lib, const char *key)

    const char *Rp_LibraryXml(Rp_Library *lib) const

    Outcome *Rp_LibraryOutcome(Rp_Library *lib) const
    int Rp_LibraryError(Rp_Library *lib) const

    Outcome *Rp_LibraryResult(Rp_Library *lib, int status)

    const Rp_Chain *Rp_LibraryContains(Rp_Library *lib) const

---------------------------------------

Outcome *Rp_LibraryLoadXml(Rp_Library *lib, const char *xmltext)
    Purpose: parse the Rappture1.1 xml data in "xmltext".
                populate this library object with the Rappture
                objects described in the xml data.
    Input Arguments: 2
        1. Rp_Library *lib - pointer to Library object
        1. const char *xmltext - Rappture1.1 xml data
    Return Value: status of the object
    Notes: None
    Code Example:

Outcome *Rp_LibraryLoadFile(Rp_Library *lib, const char *filename);
    Purpose: read the file "filename" and parse the
                Rappture1.1 xml data found inside of it.
                populate this library object with the Rappture
                objects described in the xml data.
    Input Arguments: 2
        1. Rp_Library *lib - pointer to Library object
        2. const char *filename - file containing Rappture1.1
                                    xml data
    Return Value: status of the object
    Notes: None
    Code Example:

void Rp_LibraryValue(Rp_Library *lib, const char *key, void *storage,
                     size_t numHints, ...);
    Purpose: retrieve the value of the object named "key" and
                store it in "storage". If there are hints,
                pass them along to the object being retrieved
                to tell it how the value should be configured.
    Input Arguments: at least 4
        1. Rp_Library *lib - pointer to Library object
        2. const char *key - name of the object being retrieved
        3. void *storage - where to place the value of the
                            retrieved object
        4. size_t numHints - number of hints provided
        5. ... - hints listed as strings
    Return Value: None
    Notes: hints are listed as strings of the form
            "hintKey=hintVal". hintKey is the key for the hint
            and hintVal is the value to be applied to the hint.
            generally, unrecognized hints are ignored. the hints
            should be listed as comma separated strings in the
            function's argument list.
    Code Example:

Rp_Chain *Rp_LibraryDiff(Rp_Library *lib1, Rp_Library *lib2);
    Purpose: find the difference between two library objects
    Input Arguments: 2
        1. Rp_Library *lib1 - base object used in comparison
        2. Rp_Library *lib2 - other object used in comparison
    Return Value: Linked list of differences
    Notes: None
    Code Example:

void Rp_LibraryRemove (Rp_Library *lib, const char *key);
    Purpose: remove the object from this library named "key"
    Input Arguments: 2
        1. Rp_Library *lib - pointer to Library object
        2. const char *key - name of the object to remove
    Return Value: None
    Notes: The object is removed and it's memory is deleted
    Code Example:

const char *Rp_LibraryXml(Rp_Library *lib) const;
    Purpose: return the Rappture1.1 xml representation of the
                objects stored in this library.
    Input Arguments: 1
        1. Rp_Library *lib - pointer to Library object
    Return Value: None
    Notes: user is responsible for free'ing returned memory?
    Code Example:

Outcome *Rp_LibraryOutcome(Rp_Library *lib) const;
    Purpose: return the status of the object
    Input Arguments: 1
        1. Rp_Library *lib - pointer to Library object
    Return Value: status of the object
    Notes: None
    Code Example:

int Rp_LibraryError(Rp_Library *lib) const;
    Purpose: return the status of the object
    Input Arguments: 1
        1. Rp_Library *lib - pointer to Library object
    Return Value: status of the object
    Notes: None
    Code Example:

Outcome *Rp_LibraryResult(Rp_Library *lib, int status);
    Purpose: write the stored objects to a data file and
                signal the end of processing.
    Input Arguments: 2
        1. Rp_Library *lib - pointer to Library object
        2. int status - status of the simulation
    Return Value: None
    Notes: currently data file are written out as Rappture1.1
            xml. this function generates the RAPPTURE-RUN=>
            signal.
    Code Example:

const Rp_Chain *Rp_LibraryContains(Rp_Library *lib) const;
    Purpose: return a linked list of the Rappture objects
                stored in this library.
    Input Arguments: 1
        1. Rp_Library *lib - pointer to Library object
    Return Value: linked list of the Rappture objects stored in
                    this library.
    Notes: None
    Code Example:
