Inheritance diagram for CdbBdbSMetaDataP:

Public Member Functions | |
| CdbBdbSMetaDataP (const BdbTime &theMinValidityTime=BdbTime::minusInfinity, const BdbTime &theMaxValidityTime=BdbTime::plusInfinity, const BdbTime &theMinInsertionTime=BdbTime::minusInfinity) | |
| Normal & default constructor. | |
| virtual | ~CdbBdbSMetaDataP () |
| BdbTime | minValidity () const |
| BdbTime | maxValidity () const |
| BdbTime | minInsertion () const |
| BdbTime | maxInsertion () const |
| BdbRef (CdbBdbSOiCollectionP) originaIntervalsCollection() const | |
| BdbTime | modified () const |
| When the metadata object was modified last time. | |
| CdbStatus | close (const BdbTime &theMaxInsertionTime, const char *theNewRevisionName=0, const BdbTime &theNewRevisionCreationTime=BdbTime::minusInfinity, const char *theNewRevisionDescription=0) |
| Close the metadata. | |
| CdbStatus | insert (const CdbBdbSOi &theInterval) |
| Insert an interval. | |
| CdbStatus | rebuild (CdbBdbSRebuildAction *theRebuildAction, const BdbTime &theBeginTime=BdbTime::minusInfinity, const BdbTime &theEndTime=BdbTime::plusInfinity) |
| Rebuild the meta-data. | |
| CdbStatus | repoint (CdbBdbObjectClone &theObjectCloningTool, CdbBdbCache< ooRef(ooObj)> &theTranslationDictionary) |
| Repoint OID-s in metadata into cloned objects. | |
| CdbStatus | findByRevision (const BdbTime &theRevisionId, const BdbTime &theValidityTime, CdbBdbSOi &theOriginalInterval, BdbTime &theBeginOfVisiblePeriod, BdbTime &theEndOfVisiblePeriod) const |
| Find an interval using revision identifier and validity time. | |
| CdbStatus | findByRevision (const char *theRevisionName, const BdbTime &theValidityTime, CdbBdbSOi &theOriginalInterval, BdbTime &theBeginOfVisiblePeriod, BdbTime &theEndOfVisiblePeriod) const |
| Find an interval using revision name and validity time. | |
| CdbStatus | findByInsertion (const BdbTime &theInsertionTime, const BdbTime &theValidityTime, CdbBdbSOi &theOriginalInterval, BdbTime &theBeginOfDurationPeriod, BdbTime &theEndOfDurationPeriod) const |
| Find an interval using insertion time and validity time. | |
| CdbStatus | findRevision (const BdbTime &theId, BdbRef(CdbBdbSRevisionP)&theRef) const |
| Find a revision in the collection by the revision identifier. | |
| CdbStatus | findRevision (const char *theName, BdbRef(CdbBdbSRevisionP)&theRef) const |
| Find a revision in the collection by its name. | |
| CdbStatus | createRevision (const BdbTime &theId, const char *theName, const BdbTime &theCreationTime, const char *theDescription) |
| Create new revision. | |
| CdbStatus | revisionIdIterator (CdbItr< BdbTime > &theItr) const |
| Set an iterator for revisions identifiers. | |
| CdbStatus | revisionNameIterator (CdbItr< const char * > &theItr) const |
| Set an iterator for revisions names. | |
| CdbStatus | objectIterator (CdbItr< CdbBdbSCi > &theItr, const BdbTime &theRevisionId, const BdbTime &theBeginTime=BdbTime::minusInfinity, const BdbTime &theEndTime=BdbTime::plusInfinity) const |
| Get an instance of an iterator for objects. | |
| CdbStatus | objectIterator (CdbItr< CdbBdbSCi > &theItr, const char *theName, const BdbTime &theBeginTime=BdbTime::minusInfinity, const BdbTime &theEndTime=BdbTime::plusInfinity) const |
| Get an instance of an iterator for "combined intervals". | |
This is a persistent class.
Definition at line 27 of file CdbBdbSMetaDataP.ddl.
|
||||||||||||||||
|
Normal & default constructor. The parameters of the constructor specify a window for stored intervals at the 2-D space of the "insertion" and "validity" dimensions. This window is "open" on the top to allow new insertions. The meta-data is "open" for insertion of new intervals as long as stored intervals fit into the window. Definition at line 670 of file CdbBdbSMetaDataP.cc. |
|
|
Definition at line 684 of file CdbBdbSMetaDataP.cc. |
|
|
Referenced by close(), createRevision(), findByRevision(), objectIterator(), rebuild(), and repoint(). |
|
||||||||||||||||||||
|
Close the metadata. This operation will dissallow any subsequent insertions into it. The value passed through the method's parameter plays the role of the new upper limit of the 2-D window. This limit should not be equal to "+Infinity". This operation will also create a new revision with the identifier equal to the current value of the "modification" time, unless there is one in the collection of revisions. Optional revision parameters can also be passed to the procedure. However these parameters are the mandatory ones if a new revision is going to be created. Definition at line 728 of file CdbBdbSMetaDataP.cc. References BdbRef(), createRevision(), CdbStatus::Error, BdbTime::minusInfinity, and CdbStatus::Success. |
|
||||||||||||||||||||
|
Create new revision. New revision gets created with specified identifier and the name. NOTE #1: The metadata object should not be closed yet NOTE #2: The revision identifier can't be neither "-Inifinity" nor the "+Infinity" one. NOTE #3: There should not be any revision with equal or newer revision identifier. NOTE #4: The name must not be a null string. NOTE #5: There should not be any revision with equal or newer revision identifier. NOTE #6: The "id" time of a revision must fit into the 2-D window of the meta-data object.
Definition at line 1512 of file CdbBdbSMetaDataP.cc. References BdbRef(), CdbStatus::Error, and CdbStatus::Success. Referenced by close(). |
|
||||||||||||||||||||||||
|
Find an interval using insertion time and validity time. The parameters of the request must fit into the 2-D window of the metadata object. This method upon its completion will return the following information:
This method may return "CdbStatus::NotFound" if the parameters of the query are correct, but if there is no information about an interval in question in the database. NOTE: The concept of the 'visible' interval as it's defined above does not work for this scenario of finding objects. Instead clients are given the 'original' validity of a found object and its duration period in the insertion time. So it's up to the logic of a client's application how to use this information. One scenario would be that client treated the 'original' validity interval as the 'visible' one as long as the corresponding insertion time fits into the limits of the 'duration' interval.
Definition at line 1371 of file CdbBdbSMetaDataP.cc. References CdbBdbSOi::begin, CdbBdbSOi::end, CdbStatus::Error, and CdbStatus::Success. |
|
||||||||||||||||||||||||
|
Find an interval using revision name and validity time. See previous method for the comments.
Definition at line 1323 of file CdbBdbSMetaDataP.cc. References BdbRef(), CdbStatus::Error, findByRevision(), BdbTime::plusInfinity, and CdbStatus::Success. |
|
||||||||||||||||||||||||
|
Find an interval using revision identifier and validity time. The parameters of the request must fit into the 2-D window of the metadata object. This method upon its completion will return the following information:
This method may return "CdbStatus::NotFound" if the parameters of the query are correct, but if there is no information about an interval in question in the database. SPECIAL RULES FOR THE 'VISIBLE' INTERVAL:
Definition at line 1213 of file CdbBdbSMetaDataP.cc. References BdbRef(), CdbBdbSTimeLineInterval< V >::begin, CdbBdbSTimeLineInterval< V >::end, CdbStatus::Error, CdbStatus::NotFound, BdbTime::plusInfinity, CdbStatus::Success, and CdbBdbSTimeLineInterval< V >::value. Referenced by findByRevision(). |
|
||||||||||||
|
Find a revision in the collection by its name. The name passed as a parameter should not be 0 pointer. If "" is passed then the topmost revision (if any) will be returned. In addition to usual (Success or Error) completion status values, this one can also return CdbStatus::NotFound if the revision was not found.
Definition at line 1473 of file CdbBdbSMetaDataP.cc. References CdbStatus::NotFound, and CdbStatus::Success. |
|
||||||||||||
|
Find a revision in the collection by the revision identifier. Remember, that "revision id" is a point in the "insertion" time dimension when a revison was created. If BdbTime::plusInfinity is passed then the topmost revision (if any) will be returned. In addition to usual (Success or Error) completion status values, this one can also return CdbStatus::NotFound if the revision was not found.
Definition at line 1436 of file CdbBdbSMetaDataP.cc. References CdbStatus::NotFound, BdbTime::plusInfinity, and CdbStatus::Success. Referenced by objectIterator(). |
|
|
Insert an interval. NOTE #1: The stored interval must point onto a non-zero condition object. NOTE #2: The "insertion" time of an interval must fit into the 2-D window of the meta-data object. NOTE #3: The cross-section in the "validity" dimension between the passed interval and the 2-D window of the metadata must not be of zero length. NOTE #4: The stored interval will get the truncated length in the "validity" dimension if it does not fit into the 2-D window (see previous note). Definition at line 808 of file CdbBdbSMetaDataP.cc. References CdbBdbSOi::begin, CdbBdbSOi::end, CdbStatus::Error, CdbBdbSOi::inserted, and CdbStatus::Success. Referenced by rebuild(). |
|
|
Definition at line 710 of file CdbBdbSMetaDataP.cc. |
|
|
Definition at line 698 of file CdbBdbSMetaDataP.cc. |
|
|
Definition at line 704 of file CdbBdbSMetaDataP.cc. |
|
|
Definition at line 692 of file CdbBdbSMetaDataP.cc. |
|
|
When the metadata object was modified last time. This operation returns a point in the "insertion" time dimension when the object was modified. This time falls into the insertion time range of the metadata object. The value of this time is initialized to the lower border (minInsertion) of the metadata object upon its (object's) construction. Then it's updated with the insertion time of every single original interval stored, The value can also be modified to be equal to the newely created revisions identifiers if these values are greater than the current value of the modification time. NOTE: Revisions can be created "back in time". For those revisions the modification time is not updated. And finally, when the metadata object gets closed the so called "final" revision is created with its identifier equal to the value of the modification time. Therefore the value of the modification time can be used to look for this revision. Definition at line 722 of file CdbBdbSMetaDataP.cc. |
|
||||||||||||||||||||
|
Get an instance of an iterator for "combined intervals". Provides a complementary solution to the above defined method in case when a revision name is only known.
Definition at line 1708 of file CdbBdbSMetaDataP.cc. References BdbRef(), CdbStatus::Error, findRevision(), and CdbStatus::Success. |
|
||||||||||||||||||||
|
Get an instance of an iterator for objects. The iterator will deliver information about registered conditon objects how they are seen from specified revision. The objects are described by mean of the "combined intervals", including both the original information about an objects as well as its visible validity as it's seen from the revision. The intervals delivered via this iterator are ordered (from -Infinity towards +Infinity) in the validity time dimension. The first interval delivered by the iterator will _include_ the specified begin time. The last one will _exclude_ the specified end time. In other words the end time will be beyond that last interval. Validity limits passed to the method must be within the "validity window" of a metadata object. Formally these requirements can be described as the logical "AND" of the following 3 statements: window.begin <= begin < window.end window.begin < end <= window.end begin < end If these rules are not observed then error status will be returned.
Definition at line 1668 of file CdbBdbSMetaDataP.cc. References BdbRef(), CdbStatus::Error, findRevision(), and CdbStatus::Success. |
|
||||||||||||||||
|
Rebuild the meta-data. This operation rebuilds the metadata using its current list of original intervals. A user supplied "action" object is called for each original interval. A non-const reference to the interval is passed to the action object. The action object can modify the interval so that it (the modified interval) will be used (and stored) instead of the original one. The scope of the operation can be limited in the insertion time dimension through two parameters. The action object can only be called for original intervals in the specified range. Other intervals will be copied "as is". Specifying minus/plus infinity as the corresponding limit would mean "no limit". The semantic of this limiting interval is as usually: [begin,end). NOTE #1: The operation is not allowed for a metadata having a non-topmost revision. NOTE #2: The operation is not allowed for the "closed" metadata. NOTE #3: The ownership over the action object is not transferred into the method.
Definition at line 900 of file CdbBdbSMetaDataP.cc. References CdbBdbSRebuildAction::ACTION_COPY, CdbBdbSRebuildAction::ACTION_ERROR, CdbBdbSRebuildAction::ActionType, BdbRef(), CdbStatus::Error, BdbTime::getGmtNsec(), BdbTime::getGmtSec(), insert(), CdbBdbSOi::inserted, CdbItr< T >::next(), BdbTime::plusInfinity, revisionIdIterator(), CdbStatus::Success, CdbBdbSRebuildAction::userAction(), and CdbItr< T >::value(). |
|
||||||||||||
|
Repoint OID-s in metadata into cloned objects. This operations will go through a list of 'original' intervaks, invoke the passed object clone tool to clone user defined objects and repoint metadata onto cloned objects. NONE #1: The operation will not affect (neither modify nor destroy them) the old objects. NOTE #2: The operation is also allowed for the "closed" metadata. NOTE #3: The ownership over the cloning tool is not transferred into the method. Upon its completion the method will also fill up a dictionary. The dictionary will have translations for the repointed OID-s. The dictionary's key is an OID os an old object and the corresponding value is the OID of a new object replacing the old one. NOTE #4: The translation dictionary is not reset by the method. It's just updated..
Definition at line 1100 of file CdbBdbSMetaDataP.cc. References CdbBdbCache< Object >::addObject(), BdbRef(), CdbBdbObjectClone::clone(), CdbStatus::Error, CdbBdbCache< Object >::findObject(), ooRef(), and CdbStatus::Success. |
|
|
Set an iterator for revisions identifiers. NOTE #1: The topmost revision if present will also beincluded into the sequence. NOTE #2: Revisions will be sorted by the values of identifiers. Definition at line 1599 of file CdbBdbSMetaDataP.cc. References CdbStatus::Success. Referenced by rebuild(). |
|
|
Set an iterator for revisions names. NOTE #1: The topmost revision if present will also beincluded into the sequence. NOTE #2: Revisions will be sorted by the values of identifiers. Definition at line 1610 of file CdbBdbSMetaDataP.cc. References CdbStatus::Success. |
1.3-rc3