Class: TMultiBinStorageMechanism

Declaration: BasicDocumentStorage.h

Taxonomy Categories:

Member Functions:


Interface Category:

API.

Inherits From:

TStorageMechanism

Inherited By:

TChildStandardStorageMechanism TStandardStorageMechanism

Purpose:

TMultiBinStorageMechanism is a TStorageMechanism derived class which adds the API to manage multiple storage bins.

Instantiation:

TMultiBinStorageMechanism is an abstract base class and only instantiated as part of a derived class.

Deriving Classes:

This is an abstract class. Derived class must implement the protocol defined by this class. Derived classes must override the pure virtual functions: CreateIn, CopyInto, MoveInto, DoesExistIn, AddAttribute, DeleteAttribute, CopyAttribute, DeleteAllAttributes, and CopyAllAttributes. TStandardStorageMechanism is a derived class using Pluto file system entities.

Concurrency:

Multithread safe. Concurrency among threads within a team is provided by the shared hidden master. Concurrency between teams is provided by the underlying service used to implement the storage mechanism. In both cases, the semantics of multiple readers, or single writer will be enforced.

Resource Use:

TMultiBinStorageMechanism is abstract and always created and deleted as part of a derived class.

Member Function: TMultiBinStorageMechanism::~TMultiBinStorageMechanism

virtual ~ TMultiBinStorageMechanism ()

Interface Category:

API.

Purpose:

Destructor.

Calling Context:

Called to destroy an object.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

None.

Member Function: TMultiBinStorageMechanism::CreateIn

virtual void CreateIn (TStorageMechanism & parent)

Interface Category:

API.

Purpose:

Creates the storage mechanism inside the parent storage mechanism. This CreateIn operation depends on the type of storage mechanism used. For standard storage mechanism types, this results in the storage mechanism's directory being created underneath the parent standard storage mechanism's directory.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

This function is a pure virtual function and must be overridden by classes deriving from TMultiBinStorageMechanism.

Member Function: TMultiBinStorageMechanism::CopyInto

virtual TMultiBinStorageMechanism * CopyInto (TStorageMechanism & parent)

Interface Category:

API.

Purpose:

Creates a copy of the storage mechanism inside the parent storage mechanism. This CopyInto operation depends on the type of storage mechanism used. For standard storage mechanism types, this results in the copied storage mechanism's directory being created underneath the parent standard storage mechanism's directory.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

This function is a pure virtual function and must be overridden by classes deriving from TMultiBinStorageMechanism.

Member Function: TMultiBinStorageMechanism::MoveInto

virtual void MoveInto (TStorageMechanism & parent)

Interface Category:

API.

Purpose:

Moves the storage mechanism to be placed inside the parent storage mechanism. This MoveInto operation depends on the type of storage mechanism used. For standard storage mechanism types, this results in the storage mechanism's directory being moved to reside underneath the parent standard storage mechanism's directory.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

This function is a pure virtual function and must be overridden by classes deriving from TMultiBinStorageMechanism.

Member Function: TMultiBinStorageMechanism::AddAttribute

virtual void AddAttribute (const TDocumentAttribute & theAttribute)

Interface Category:

API.

Purpose:

Adds the attribute to the storage mechanism's attribute list replacing a matching attribute if one exists.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

This function is a pure virtual function and must be overridden by classes deriving from TMultiBinStorageMechanism. Postconditions: Assertion (CopyAttribute(const TDocumentAttribute) != NIL).

Member Function: TMultiBinStorageMechanism::DeleteAttribute

virtual void DeleteAttribute (const TDocumentAttribute & thePatternToMatch)

Interface Category:

API.

Purpose:

Deletes the attribute from the specified multi bin storage mechanism's attribute list if it exists.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

This function is a pure virtual function and must be overridden by classes deriving from TMultiBinStorageMechanism. Postconditions: Assertion (CopyDocumentAttribute(const TDocumentReference&, const TDocumentAttribute) ==NIL).

Member Function: TMultiBinStorageMechanism::CopyAttribute

virtual TDocumentAttribute * CopyAttribute (const TDocumentAttribute & thePatternToMatch) const

Interface Category:

API.

Purpose:

Copies a specific attribute from a document store if it exists.

Calling Context:

Call this function directly.

Parameters:

Return Value:

Returns the copied attribute or NIL if attribute did not exist for specified document.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

This function is a pure virtual function and must be overridden by classes deriving from TMultiBinStorageMechanism.

Member Function: TMultiBinStorageMechanism::DeleteAllAttributes

virtual void DeleteAllAttributes ()

Interface Category:

API.

Purpose:

Deletes all the attributes for the specified document

Calling Context:

Call this function directly.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

This function is a pure virtual function and must be overridden by classes deriving from TMultiBinStorageMechanism. Postconditions: Assertion (CopyAttribute(TDocumentAttribute&) ==NIL) for all attributes.

Member Function: TMultiBinStorageMechanism::CopyAllAttributes

virtual void CopyAllAttributes (TCollectionOf<TDocumentAttribute> &) const

Interface Category:

API.

Purpose:

Copies all the attributes for the specified document.

Calling Context:

Call this function directly.

Parameters:

Return Value:

None

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

This function is a pure virtual function and must be overridden by classes deriving from TMultiBinStorageMechanism.

Member Function: TMultiBinStorageMechanism::TMultiBinStorageMechanism

  1. TMultiBinStorageMechanism ()
  2. TMultiBinStorageMechanism (const TMultiBinStorageMechanism &)

Interface Category:

API.

Purpose:

  1. Default constructor. Used to resurrect a flattened storage mechanism.
  2. Copy constructor.

Calling Context:

  1. Called by the stream-in operators and derived class constructors.
  2. Called to copy an object.

Parameters:

Return Value:

None.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

TMultiBinStorageMechanism is an abstract base class--all the constructors are protected. Do not instantiate this class.

Member Function: TMultiBinStorageMechanism::operator=

TMultiBinStorageMechanism & operator =(const TMultiBinStorageMechanism &)

Interface Category:

API.

Purpose:

Assignment operator.

Calling Context:

Called when an object is assigned to another compatible object.

Parameters:

Return Value:

A non-const reference to the left-hand side object.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

TMultiBinStorageMechanism is an abstract base class--all the constructors are protected. Do not instantiate this class.

Member Function: TMultiBinStorageMechanism::DoesExistIn

virtual bool DoesExistIn (const TStorageMechanism & parent) const

Interface Category:

API.

Purpose:

Determines whether or not this storage mechanism exists in the specified parent. This operation depends on the type of storage mechanism used. For standard storage mechanism types, this function tests whether or not the storage mechanism's directory is in the parent storage mechanism's directory.

Calling Context:

Call this function directly.

Parameters:

Return Value:

Returns true if this document store exists in the specified parent; false otherwise.

Exceptions:

Throws no exceptions, passes all exceptions through.

Concurrency:

Multithread safe.

Other Considerations:

This function is a pure virtual function and must be overridden by classes deriving from TMultiBinStorageMechanism. Precondition: Assertion( GetStorageMechanism() != NIL ). Assertion( parent.GetStorageMechanism() != NIL ).
Click the icon to mail questions or corrections about this material to Taligent personnel.
Copyright©1995 Taligent,Inc. All rights reserved.