ObjectStore C++ API Reference

os_dynamic_extent

Derived from os_Collection, an instance of this class can be used to create an extended collection of all objects of a particular type, regardless of which segments the objects reside in. All objects are retrieved in an arbitrary order that is stable across traversals of the segments, as long as no objects are created or deleted from the segment, and no reorganization is performed (using schema evolution or compaction).

os_dynamic_extent is useful for joining together multiple collections of the same object type into a new collection. The new collection is created dynamically, which results in no additional storage consumption.

By default, os_dynamic_extent does not search subclasses when the requested object type is a class type. To enable this behavior, set the argument include_subclasses to true. When this behavior is enabled, os_dynamic_extent searches all classes that the requested class type is derived from.

You iterate over the os_dynamic_extent collection by creating an associated instance of os_cursor. Only the os_cursor::more, os_cursor::first, and os_cursor::next functions are supported by os_dynamic_extent. You can create an index for the os_dynamic_extent collection by calling add_index; however, creating an index requires additional storage.

os_dynamic_extent::os_dynamic_extent()

os_dynamic_extent(
      os_database * db, 
      os_typespec * typespec,
os_boolean include_subclasses=0
);
Constructs an os_dynamic_extent that associates all objects of os_typespec that exist in the specified os_database. This constructor should be used only for transient instances of os_dynamic_extent.

By default, os_dynamic_extent does not search subclasses when the requested object type is a class type. Set the argument include_subclasses to true to enable os_dynamic_extent to search all classes that the requested class type is derived from.

os_dynamic_extent(
      os_typespec * typespec,
      os_boolean options = os_dynamic_extent::all_segments
      os_boolean include_subclasses=0
);
Constructs an os_dynamic_extent that associates all objects of os_typespec. This constructor assumes that the os_dynamic_extent is persistent and searches the database where the os_dynamic_extent resides. If the option is os_dynamic_extent::all_segments, all segments are searched. The alternative option is os_dynamic_extent::of_segment, which searches only the segment in which the os_dynamic_extent is allocated.

By default, os_dynamic_extent does not search subclasses when the requested object type is a class type. Set the argument include_subclasses to true to enable os_dynamic_extent to search all classes that the requested class type is derived from.

os_dynamic_extent(
      os_database * db,
      os_typespec* typespec,
      os_segment* seg
      os_boolean include_subclasses=0
);
Constructs an os_dynamic_extent that associates only those objects of os_typespec that exist in the specified os_database and os_segment. This constructor should be used only for transient instances of os_dynamic_extent.

By default, os_dynamic_extent does not search subclasses when the requested object type is a class type. Set the argument include_subclasses to true to enable os_dynamic_extent to search all classes that the requested class type is derived from.

os_dynamic_extent::insert()

void insert(const void*);
Adds the specified void* to the index for the current os_dynamic_extent collection. You must first create an index by calling os_dynamic_extent::add_index(). See os_collection::add_index().

os_dynamic_extent::remove()

os_int32 remove(const void*);
Removes the specified void* from the os_dynamic_extent collection index.

If the index is ordered, the first occurrence of the specified void* is removed. Returns a nonzero os_int32 if an element was removed; 0 is returned otherwise.

os_dynamic_extent::~os_dynamic_extent()

~os_dynamic_extent();
Performs internal maintenance associated with os_dynamic_extent deallocation.



[previous] [next]

Copyright © 1997 Object Design, Inc. All rights reserved.

Updated: 03/31/98 17:25:09