Guide to the Shore Source Code
Version 0.1

The Shore Project Group
Computer Sciences Department
Madison, WI

Thu Nov 3 14:12:16 CST 1994


1 Introduction

This document briefly describes the contents of the directories in the Shore Alpha release.

2 Binaries and Documents (installed)

This directory is present in a source release and in a binary release. In both cases, this directory contains the documents in Postscript form, in installed/ps, and in HTML form, in installed/html.

Source releases do not contain any executable programs or libraries. When you build Shore, the programs, libraries and include files are installed in this directory or in a directory of your choice. See the installation manual for details.

3 Configuration management (config, tools)

These directories are not present in a binary release.

The config directory contains files used by Imake to generate Makefiles. The tools directory contains tools used in compiling and managing the sources.

4 Sources (src)

This directory is not present in a binary release. It contains the source code for Shore. The subdirectories of src are presented here in the order of their dependency. In other words, the code in a directory depends on code in the previously described directories.

4.1 Foundation Classes (src/fc)

The fc directory contains what we call foundation classes. These C++ classes are meant to be easy to use in software systems other than Shore. They do not depend on any other Shore code. Included are classes for such things as lists, hash tables and error handling.

4.2 Thread Package (src/sthread)

The sthread directory contains a thread package and asynchronous I/O facility.

4.3 Common Code (src/common)

The common directory contains code needed by most layers of Shore. In this directory are the interfaces and implementations for data types from which Shore's persistent data structures are built. Included are implementations of object identifiers, thread-safe hash tables and options.

4.4 Storage Manager (src/sm)

The sm directory contains code for the Shore Storage Manager (SSM). The interface for the SSM consists of the public interfaces of the classes ssm, pin_i and scan_xxx_i classes defined in sm.h, pin.h and scan.h, respectively.

4.5 RPC Package (src/rpc4.0)

The rpc4.0 directory contains a modified copy of Sun Microsystems' "Portable ONC/NFS", a public-domain implementation of the Sun RPC and XDR protocols.

We have made minor changes for its use in Shore. We use only a portion of the package. The complete package is included here, but we support only the portion that Shore uses (rpc4.0/rpc and rpc4.0/rpcgen).

4.6 Shore Value-Added Server (src/vas)

The vas directory contains code for the Shore Value-Added Server (SVAS). This directory has the following subdirectories:

The include files needed by software that uses the SVAS.

The SVAS client library. This is linked with an application. The client library caches some information for local processing, but most SVAS methods are remote operations that are performed by the server.

A simple program for testing the SVAS client library.

The code that is used in both the server and the tester.

The Shore Value-Added server. Running make in this directory builds complete Shore server.

4.7 Language Independent Library (src/lil)

The vas directory is for libraries that provide programming-language-independent functionality above the SVAS. The object cache resides here, and in future releases, the link-level Unix-compatibility library will be here.

4.7.1 Object Cache (src/lil/oc)

The lil/oc directory contains code for the object cache that is linked with applications.

4.8 Shore Data Language Compiler (src/sdl)

The sdl directory contains the SDL type compiler and the SDL C++ language-binding generator.

4.9 Utilities (src/util)

The util directory holds miscellaneous Shore utilities.

The only such program in the Alpha release is is mount, for mounting the Shore file system as an NFS file system.

4.10 Example Applications(src/example)

The example directory contains example application programs.

4.11 OO7 Benchmark (src/oo7)

The oo7 directory contains an implementation of the OO7 Benchmark.
Thu Nov 3 14:12:12 CST 1994