oaChangeMgr Class Reference


Public Methods

void initTracking (const oaString &pluginName)
void initExport (const oaString &pluginName)
void getTrackingProtocols (oaCMProtocolArray &out) const
void getExportProtocols (oaCMProtocolArray &out) const
void setTrackingProtocol (const oaCMProtocol &in)
void setExportProtocol (const oaCMProtocol &in)
void beginTracking (const oaString &nameIn)
void endTracking ()
void exportFull (const oaString &changeSetName)
void exportIncr (const oaString &changeSetName)
oaChangeSetBasefindChangeSet (const oaString &nameIn) const
void discardAllChangeSets ()
ChangeSetConstIter beginChangeSet () const
ChangeSetConstIter endChangeSet () const
void discardChangeSet (const oaString &changeSetName)

Static Public Methods

oaChangeMgr * get ()

Public Types

typedef std::map< std::string, oaChangeSetBase * >::const_iterator ChangeSetConstIter

Friends

class oaChangeSetBase

Detailed Description

OpenAccess provides a foundation for an approach to sharing design data that enables fine-grained collaboration between multiple processes operating on the same design. OpenAccess defines a plug-in based infrastructure that allows software developers to provide plug-ins that support incremental data exchange between cooperating applications. The complete infrastructure is called the OpenAccess change management system (CMS).

Applications access CMS functionality through public functions on the oaChangeMgr class. The oaChangeMgr functions let applications initialize change tracking plug-ins, initialize export plug-ins, begin and end change tracking, and export the tracked changes. A function is also provided to discard all accumulated changes. The oaChangeMgr class supports multiple protocols for the various plug-ins.

Note that there is one and only one oaChangeMgr instance in any given process.

This class can be observed by deriving from oaObserver<oaChangeMgr>.


Member Typedef Documentation

typedef std::map<std::string, oaChangeSetBase*>::const_iterator oaChangeMgr::ChangeSetConstIter
 


Member Function Documentation

ChangeSetConstIter oaChangeMgr::beginChangeSet   const
 

This function returns a constant iterator that points to the first reference object managed by this change set.

void oaChangeMgr::beginTracking const oaString &    nameIn
 

This function begins tracking changes by beginning a change set, which is given the specified nameIn. The name cannot be the name of an existing change set.

From this point on, changes to design representations due to non-const OpenAccess API calls are recorded as change records in the specified change set.

Change sets cannot be nested. A call to beginTracking() on a specified change set must be followed by a call to endTracking() before another call to beginTracking() can start tracking on a new change set.

Parameters:
nameIn The name for the new change set.
Exceptions:
oacCMTrackingNotInitialized 
oacCMChangeSetIsActive 

void oaChangeMgr::discardAllChangeSets  
 

This function deletes all change sets known to the oaChangeMgr class.

void oaChangeMgr::discardChangeSet const oaString &    changeSetName
 

ChangeSetConstIter oaChangeMgr::endChangeSet   const
 

This function returns a constant iterator that points to the last reference object managed by this change set.

void oaChangeMgr::endTracking  
 

This function ends tracking by ending the currently active change set.

Exceptions:
oacCMTrackingNotInitialized 
oacCMChangeSetNotSet 

void oaChangeMgr::exportFull const oaString &    changeSetName
 

This function exports the full named change set using the currently selected export plug-in and export protocol.

A full export of a change set outputs all change records of a change set. This function requires that tracking has been stopped and the change set has ended. A full export can be called more than once for the same named change set. You can reset the protocol between calls to full export.

Refer to the exportIncr function if you want to export change sets in incremental chunks.

Incremental export and full export do not interact with each other.

Parameters:
changeSetName Name of the change set to export.
Exceptions:
oacCMExportNotInitialized 
oacCMChangeSetNotFound 
oacCMChangeSetIsActive 
oacCMProtocolHasNotBeenSet 

void oaChangeMgr::exportIncr const oaString &    changeSetName
 

This function exports the named change set from the last exportIncr() call using the currently selected export plug-in and export protocol. If this is the first exportIncr() call, the change set is exported from the start of the change set.

Exporting a change set incrementally emits only new change records that have not previously been exported, then marks those records as exported. This allows the change set to be emitted in chunks.

Incremental export should be called one last time after tracking has been stopped in order to emit the final set of changes.

Incremental export and full export do not interact with each other.

Parameters:
changeSetName Name of the change set to export.
Exceptions:
oacCMExportNotInitialized 
oacCMChangeSetNotFound 
oacCMProtocolHasNotBeenSet 

oaChangeSetBase * oaChangeMgr::findChangeSet const oaString &    nameIn const
 

This function finds the named change set in the change manager's current set of changes.

Parameters:
nameIn Name of the change set to find.

static oaChangeMgr * oaChangeMgr::get   [static]
 

This static function gets the pointer to the singleton oaChangeMgr object.

void oaChangeMgr::getExportProtocols oaCMProtocolArray &    out const
 

This function retrieves the set of protocols supported by the export plug-in and places them in the out protocol array.

Parameters:
out The returned array of export protocols.

void oaChangeMgr::getTrackingProtocols oaCMProtocolArray &    out const
 

This function retrieves the set of protocols supported by the tracking plug-in and places them in the out protocol array.

Parameters:
out The returned array of tracking protocols.

void oaChangeMgr::initExport const oaString &    pluginName
 

This function loads and initializes the specified export plug-in. OpenAccess obtains the protocol array supported by the plug-in and verifies that the protocols in the array have the same pluginName as the plug-in that returns them.

This function does not implicitly end a change set.

Parameters:
pluginName The name of the export plug-in to initialize.
Exceptions:
oacCMInvalidPlugInProtocol 

void oaChangeMgr::initTracking const oaString &    pluginName
 

This function loads and initializes the specified tracking plug-in. OpenAccess obtains the protocol array supported by the plug-in and verifies that the protocols in the array have the same pluginName as the plug-in that returns them.

This function does not implicitly begin a change set.

Parameters:
pluginName The name of the tracking plug-in to initialize.
Exceptions:
oacCMInvalidPlugInProtocol 

void oaChangeMgr::setExportProtocol const oaCMProtocol &    in
 

This function sets the protocol to be used by the export plug-in. It must match one of the protocols in the protocol array returned by getExportProtocols().

Parameters:
in The protocol to set on the export plug in.
Exceptions:
oacCMProtocolCannotBeSet The protocol has unset attributes that must be set before continuing.
oacCMProtocolArrayMatchNotFound The specified protocol does not correspond to a protocol from the array of export protocols.

void oaChangeMgr::setTrackingProtocol const oaCMProtocol &    in
 

This function sets the protocol to be used by the tracking plug-in. It must match one of the protocols in the protocol array returned by getTrackingProtocols().

Parameters:
in The protocol to set on the tracking plug in.
Exceptions:
oacCMProtocolCannotBeSet The protocol has unset attributes that must be set before continuing.
oacCMProtocolArrayMatchNotFound The specified protocol does not correspond to a protocol from the array of tracking protocols.


Friends And Related Function Documentation

friend class oaChangeSetBase [friend]
 


The documentation for this class was generated from the following files:

Return to top of page