2. `ZOOM::connection`
Prev | Chapter 3. ZOOM-C++ | Next

## 2. `ZOOM::connection`

A `ZOOM::connection` object represents an open connection to a Z39.50 server. Such a connection is forged by constructing a `connection` object.

The class has this declaration:

        class connection {
        public:
          connection (const char *hostname, int portnum);
          ~connection ();
          const char *option (const char *key) const;
          const char *option (const char *key, const char *val);
        };

When a new `connection` is created, the hostname and port number of a Z39.50 server must be supplied, and the network connection is forged and wrapped in the new object. If the connection can't be established - perhaps because the hostname couldn't be resolved, or there is no server listening on the specified port - then an `exception` is thrown.

The only other methods on a `connection` object are for getting and setting options. Any name-value pair of strings may be set as options, and subsequently retrieved, but certain options have special meanings which are understood by the ZOOM code and affect the behaviour of the object that carries them. For example, the value of the `databaseName` option is used as the name of the database to query when a search is executed against the `connection`. For a full list of such special options, see the ZOOM abstract API and the ZOOM-C documentation (links below).

### 2.1. References

- Section 3.2 (Connection) of the ZOOM Abstract API

- The Connections section of the ZOOM-C documentation

Prev | Up | Next
Chapter 3. ZOOM-C++ | Home | 3. `ZOOM::query` and subclasses