text - making Shore objects visible to Unix


CONTENTS


SYNOPSIS

interface mytype { ... attribute TEXT visible; ... };

DESCRIPTION

Shore objects can have arbitrarily complex types. Some registered objects can be opened, read, and updated by Unix programs. Only a portion of a Shore object is visible to a Unix program; that portion is a string of bytes that behaves like a regular Unix file.

To make your Shore application create objects that have this behavior, you must create a type with an attribute whose type is TEXT. Whatever is stored in this attribute of an object is visible to Unix (if the object is registered). Unix programs can update this attribute (subject to access controls and transaction semantics).

Objects with a TEXT portion can be created by a Unix process as well. Such objects have the type UnixFile, which has only one attribute, whose type is TEXT.


IMPLEMENTATION

The system properties stored with a Shore object include two values:
ObjectOffset  tstart;
ObjectSize    hsize;
Tstart is the offset (into the object) of the first byte of the TEXT attribute. If the object has no TEXT attribute, tstart has the value NoText. Hsize is the length (in bytes) of the heap. The TEXT attribute always resides at the end of the object's heap, so the length of the text attribute can be computed from tstart and hsize.

If an object with TEXT is updated by the type system (any software that invokes the Value-Added Server), these values may have to be changed. All the methods that update objects have variations that permit the caller to adjust the value of tstart.


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

unixfile(svas), registered(svas), anonymous(svas), sysprops(svas), appendObj(svas), writeObj(svas), readObj(svas), truncObj(svas), and intro(sdl).