Variable Naming Conventions
In an effort to make the code more self-documenting, variable naming
conventions were adopted. Tcl only supports three basic types of
variables: strings, lists, and arrays. The following conventions
have been utilized throughout the code:
Namespace Hierarchy
Namespaces are organized hierarchically and are all nested beneath
a master (root) namespace called webSubmit.
For example, the namespace corresponding to the utility package is called
webSubmit::util. Namespace
names are correlated with the name of the Tcl file that contains the package.
Each package is named wsPackageName.tcl,
and the namespace corresponding to this package is packagename.
In some cases, there are additional namespaces nested within a given package.
No consistent convention was adopted regarding the use of fully- vs. partially-qualified
namespaces names. In many cases, namespace
imports were used to simplify coding, whereas in others, the fully-qualified
names were used.
Package File Structure
Each package is organized in a similar fashion. The primary namespace
definition lies at the top of the package. Namespace imports, namespace
exports, and variables definitions are all made within this section of
code. The remainder of the package contains the definitions of procedures
within this namespace.
wsUtil.tcl
Package name: wsUtil
Namespace: webSubmit::util
Description: A collection of utility routines
of general use throughout all packages in WebSubmit. These routines
typically perform functions such as variable or file manipulation.
Procedure Information
wsDatabase.tcl
Package name: wsDatabase
Namespace: webSubmit::database
Description: All routines related to database
manipulation are contained in this core package.
Procedure Information
wsAuth.tcl
Package name: wsAuth
Namespace: webSubmit::auth
Description: The WebSubmit authentication
package. Routines in this package are primarily used to establish
a user's identity at the outset of a session.
Procedure Information
wsForms.tcl
Package name: wsForms
Namespace: webSubmit::forms
Description: This package collects
routines related to automatic form generation, as well as session management.
Procedure Information
wsNetwork.tcl
Package name: wsNetwork
Namespace: webSubmit::network
Description: Remote execution of
commands via SSH is performed using routines in this package. There
are also supplementary procedures that execute simple, frequently-used
commands on remote systems.
Procedure Information
wsCgi.tcl
Package name: wsCgi
Namespace: webSubmit::cgi
Description: These routines supplement
the cgi.tcl library routines and
provide functionality specifically needed by WebSubmit.
Procedure Information
wsMaster.tcl
Package name: wsMaster
Namespace: webSubmit::master
Description: This package collects
all procedures related to the construction of the master page.
Procedure Information
wsLoadLeveler.tcl
Package name: wsLoadLeveler
Namespace: webSubmit::loadleveler
Description: Package containing
procedures related to interaction with the Load Leveler batch queuing facility.
This includes code for submission of jobs, construction of job control
files, and other miscellaneous utilities.
Procedure
Information