home *** CD-ROM | disk | FTP | other *** search
- /*
- IXPostingSet.h
- Copyright 1991,NeXT Computer,Inc.
- */
-
- #import <objc/Object.h>
- #import "protocols.h"
-
- // This class implements a dynamic array of postings, sorted by handle. Its
- // primary use is for combining sets of postings - i.e., performing set union,
- // intersection and subtraction.
-
- #ifdef NX_COMPILER_RELEASE_3_0
- #import <remote/transport.h>
- typedef id <IXPostingExchange> IXPostingExchangeType;
- @interface IXPostingSet: Object <NXTransport, IXPostingExchange, IXPostingOperations>
- #else NX_COMPILER_RELEASE_3_0
- typedef id IXPostingExchangeType;
- @interface IXPostingSet: Object
- #endif NX_COMPILER_RELEASE_3_0
- {
- @public
- unsigned thisElement;
- unsigned numElements;
- unsigned maxElements;
- struct IXPosting *postings;
- }
-
- // These two methods initialize the posting set with existing postings. The
- // first method takes the postings from an object that conforms to the posting
- // exchange protocol. The second one takes the postings from the caller.
-
- - initWithPostingsIn:(IXPostingExchangeType)anObject;
- - initCount:(unsigned)theCount andPostings:(const IXPosting *)thePostings;
-
- // These methods perform set union, intersection and subtraction between the
- // posting set and an object that conforms to the posting exchange protocol,
- // leaving the result in the posting set. These are commonly used to refine or
- // expand query results on a posting cursor.
-
- - formUnionWithPostingsIn:(IXPostingExchangeType)anObject;
- - formIntersectionWithPostingsIn:(IXPostingExchangeType)anObject;
- - subtractPostingsIn:(IXPostingExchangeType)anObject;
-
- // This method sets the posting set to a specific position or element. The
- // numbering starts with zero. The count is returned by the count method.
-
- - (unsigned)setPosition:(unsigned)aPosition;
-
- - setCount:(unsigned)theCount // sets the postings without copying.
- andPostings:(IXPosting *)thePostings byCopy:(BOOL)aBoolean;
-
- // The posting set can be archived to and unarchived from a typed stream. It
- // can also be passed between processes using the distributed object substrate.
-
- - read:(NXTypedStream *)typedStream;
- - write:(NXTypedStream *)typedStream;
-
- @end
-