FTPersistentSet


Abstract

Module of FT

Classes

_FTPersistentSetChunkIterator
Used to iterate over all chunks of a persistent set
_FTPersistentSetIterator
Used to iterate over all elements of a persistent set
_FTPersistentSetTransactionStep
Internal method used to perform the database updates
FTPersistentSetImpl
Utility class which uses a BDB database in order to manage a set of objects in the database


Methods

-addObject:
adds an object to this chunk. Does *not* store the result in the database! Call storeChunk for this purpose
-containsObject:
-count
-createForDatabase
Creates a chunk and stores its initial content in the database.
-createForDatabase:atRecordNumber:
Creates a chunk and stores its initial content in the database.
-initForDatabase
internal method call
-initForDatabase:atRecordNumber:usingObjects:
internal method call
-isChunkInTransaction
-loadChunk
Loads the chunk from the database
-objects
get all objects stored in this chunk lresult all objects stored in this chunk
-readFromDatabase
reads the specified chunk from the database
-readFromDatabase:atRecordNumber:
reads the specified chunk from the database
-recordNumber
-remove
removes the chunk from the database
-removeObject:
removes the specified objects. Operation is ignored if given object is not to be found in the chunk
-setChunkInTransaction:
-store
this method is used to store the content of the chunk into the database
-update
either stores the chunk or deletes it. The latter is done if the chunk contains no more data. This method should only called by transaction steps since it directly writes the content to the database

addObject:


adds an object to this chunk. Does *not* store the result in the database! Call storeChunk for this purpose

- addObject: (id) anObject; 
Parameter Descriptions
anObject
given object must implement NSCoding
method result
self

containsObject:


- (BOOL) containsObject: (id) anObject; 
method result
YES if the given object is to be found in the chunk

count


- (unsigned) count; 
method result
number of objects in this chunk

createForDatabase


Creates a chunk and stores its initial content in the database.

See Also:
createForDatabase:atRecordNumber:
+ (_FTPersistentSetChunk *) createForDatabase: (BDBDatabase *) aDatabase atRecordNumber: (unsigned) a_record_nr; 
Parameter Descriptions
aDatabase
database to use
a_record_nr
record number at which to store the chunk
method result
created chunk

createForDatabase:atRecordNumber:


Creates a chunk and stores its initial content in the database.

See Also:
createForDatabase
+ (_FTPersistentSetChunk *) createForDatabase: (BDBDatabase *) aDatabase atRecordNumber: (unsigned) a_record_nr; 
Parameter Descriptions
aDatabase
database to use
a_record_nr
record number at which to store the chunk

initForDatabase


internal method call

See Also:
initForDatabase:atRecordNumber:usingObjects:
- initForDatabase: (BDBDatabase *) aDatabase atRecordNumber: (unsigned) a_record_nr usingObjects: (NSArray *) givenObjects; 
Parameter Descriptions
aDatabase
database to use
a_record_nr
record number to use
givenObjects
used as the initial set of data for this chunk. if nil then an empty set will be created and loadedFromDatabase may only equal NO
method result
self

initForDatabase:atRecordNumber:usingObjects:


internal method call

See Also:
initForDatabase
- initForDatabase: (BDBDatabase *) aDatabase atRecordNumber: (unsigned) a_record_nr usingObjects: (NSArray *) givenObjects; 
Parameter Descriptions
aDatabase
database to use
a_record_nr
record number to use
givenObjects
used as the initial set of data for this chunk. if nil then an empty set will be created and loadedFromDatabase may only equal NO

isChunkInTransaction


- (BOOL) isChunkInTransaction; 
method result
YES if this chunk is already been placed in a transaction

loadChunk


Loads the chunk from the database

- loadChunk; 
method result
self

objects


get all objects stored in this chunk lresult all objects stored in this chunk

- (NSArray *) objects; 

readFromDatabase


reads the specified chunk from the database

See Also:
readFromDatabase:atRecordNumber:
+ (_FTPersistentSetChunk *) readFromDatabase: (BDBDatabase *) aDatabase atRecordNumber: (unsigned) record_nr; 
Parameter Descriptions
aDatabase
database to use
a_record_nr
record number at which to store the chunk
method result
loaded chunk or nil if not existent

readFromDatabase:atRecordNumber:


reads the specified chunk from the database

See Also:
readFromDatabase
+ (_FTPersistentSetChunk *) readFromDatabase: (BDBDatabase *) aDatabase atRecordNumber: (unsigned) record_nr; 
Parameter Descriptions
aDatabase
database to use
a_record_nr
record number at which to store the chunk

recordNumber


- (unsigned) recordNumber; 
method result
number of BDB record used for storing the chunk

remove


removes the chunk from the database

- (void) remove; 

removeObject:


removes the specified objects. Operation is ignored if given object is not to be found in the chunk

- removeObject: (id) anObject; 
method result
self

setChunkInTransaction:


- setChunkInTransaction: (BOOL) itIs; 
Parameter Descriptions
itIs
set to YES if the chunk is placed within a transaction
method result
self

store


this method is used to store the content of the chunk into the database

- store; 
method result
self

update


either stores the chunk or deletes it. The latter is done if the chunk contains no more data. This method should only called by transaction steps since it directly writes the content to the database

- (void) update; 
method result
self

© 2004, 2005, 2006 Free Software Foundation, Inc.

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

  -------------------------------------------------------------------------
  Modification history


30.03.06 ola initial version 23.08.06 ola license changed -------------------------------------------------------------------------
(Last Updated August 27, 2006)