Table of Contents | Previous | Next | Index


project

Contains data for an entire application.

Server-side object

Implemented in

NES 2.0

Created by

The JavaScript runtime engine on the server automatically creates a project object for each application running on the server.

Description

The JavaScript runtime engine on the server creates a project object when an application starts and destroys the project object when the application or server stops. The typical project object lifetime is days or weeks.

Each client accessing the same application shares the same project object. Use the project object to maintain global data for an entire application. Many clients can access an application simultaneously, and the project object lets these clients share information.

The runtime engine creates a set of project objects for each distinct Netscape HTTPD process running on the server. Because several server HTTPD processes may be running on different port numbers, the runtime engine creates a set of project objects for each process.

You can lock the project object to ensure that different clients do not change its properties simultaneously. When one client locks the project object, other clients must wait before they can lock it. See Lock for more information about locking the project object.

Property Summary

The project object has no predefined properties. You create custom properties to contain project-specific data that is required by an application.

You can create a property for the project object by assigning it a name and a value. For example, you can create a project object property to keep track of the next available Customer ID. Any client that accesses the application without a Customer ID is sequentially assigned one, and the value of the ID is incremented for each initial access.

Method Summary

Method Description
lock

Obtains the lock.

unlock

Releases the lock.

In addition, this object inherits the watch and unwatch methods from Object.

Examples

Example 1. This example creates the lastID property and assigns a value to it by incrementing an existing value.

project.lastID = 1 + parseInt(project.lastID, 10)
Example 2. This example increments the value of the lastID property and uses it to assign a value to the customerID property.

project.lock()
project.lastID = 1 + parseInt(project.lastID, 10);
client.customerID = project.lastID;
project.unlock();
In the previous example, notice that the project object is locked while the customerID property is assigned, so no other client can attempt to change the lastID property at the same time.

See also

client, request, server


lock

Obtains the lock. If another thread has the lock, this method waits until it can get the lock.

Method of

project

Implemented in

NES 2.0

Syntax

lock()

Parameters

None.

Returns

Nothing.

Description

You can obtain a lock for an object to ensure that different clients do not access a critical section of code simultaneously. When an application locks an object, other client requests must wait before they can lock the object.

Note that this mechanism requires voluntary compliance by asking for the lock in the first place.

See also

Lock, project.unlock


unlock

Releases the lock.

Method of

project

Implemented in

NES 2.0

Syntax

unlock()

Parameters

None.

Returns

False if it fails; otherwise, true. Failure indicates an internal JavaScript error or that you attempted to unlock a lock that you don't own.

Description

If you unlock a lock that is unlocked, the resulting behavior is undefined.

See also

Lock, project.lock


Table of Contents | Previous | Next | Index

Last Updated: 11/13/98 10:23:37

Copyright 1998 Netscape Communications Corporation