appendObj - increase the size of a Shore object


CONTENTS


SYNOPSIS

VASResult shore_vas::appendObj(
            const  lrid_t    &obj,
            const  vec_t     &data
);

VASResult shore_vas::appendObj(
            const  lrid_t    &obj,
            const  vec_t     &data,
            ObjectOffset     newtstart
);

DESCRIPTION

AppendObj writes data in the caller's address space to the end of an object, increasing the object's size.

ARGUMENTS

The argument obj is the full logical object identifier of the object to be modified.

The argument data is a gather vector that identifies the data in the caller's address space that is to be appended to the object. There is a run-time-defined limit to the size of this vector; the size is limited by the size of the TCP socket buffers used by the server and the client, when the server is remote. It is limited by the amount of shared memory allocated for communication with the server, when the server is local. If these limits are not acceptable, use the method updateObj instead.

The vectors may be empty.

AppendObj can change the location of the TEXT portion of the object. If the argument newtstart is given, it indicates the new location of the beginning of the TEXT attribute.

An exclusive lock is acquired before the append occurs.


ENVIRONMENT

All these methods are available on both the server and clients.

All forms of appendObj must be called when a transaction is active.


ERRORS

Deadlocks can occur while locks are being acquired. See transaction(svas) for information about deadlocks.

A complete list of errors is in errors(svas).


VERSION

This manual page applies to Version 1.1.1 of the Shore software.

SPONSORSHIP

The Shore project is sponsored by the Advanced Research Project Agency, ARPA order number 018 (formerly 8230), monitored by the U.S. Army Research Laboratory under contract DAAB07-91-C-Q518.

COPYRIGHT

Copyright © 1994, 1995, 1996, 1997, Computer Sciences Department, University of Wisconsin -- Madison. All Rights Reserved.

SEE ALSO

sysprops(svas), readObj(svas), truncObj(svas), writeObj(svas), updateObj(svas), errors(svas), transaction(svas), and text(svas).