IDMObjectStatus Class Reference

Inheritance diagram for IDMObjectStatus:

IBase


Public Methods

virtual void getDMObject (IDMObject *&object)=0
virtual oa::oaUInt4 getStatus ()=0

Public Types

enum  StatusEnum {
  cControlled = 0x00000001, cEditable = 0x00000002, cUpToDate = 0x00000004, cAdded = 0x00000008,
  cDeleted = 0x00000010, cModified = 0x00000020, cLocked = 0x00000040, cMerged = 0x00000080,
  cConflict = 0x00000100, cMissing = 0x00000200, cRemote = 0x00000400, cAllStatus = 0xFFFFFFFF
}

Detailed Description

This interface represents a pairing of a DM object with a version control status. This interface is intended to be used in conjunction with the IBaseIter interface to pass collections of object and status pairs between OpenAccess and the VC/DM plug-ins. In most cases, OpenAccess allocates memory for the collection, and the plug-in iterates it calling setStatus with the actual status of the file in the repository.


Member Function Documentation

void IDMObjectStatus::getDMObject IDMObject *&    object [pure virtual]
 

This function will return the IDMObject interface pointer for the object whose status is being reported. Note that (as with all interface output parameters) the reference count on "object" will be incremented by this function prior to returning.

Parameters:
object A reference to a pointer to an IDMObject interface. This can also be a smart pointer of the form SPtr<IDMObject>. The calling syntax would be as follows:
SPtr<IDMObject> myObj; objStat->getDMObject(myObj);

uint32 IDMObjectStatus::getStatus   [pure virtual]
 

This function returns the status bitfield for the object whose status is being reported.


Member Enumeration Documentation

enum IDMObjectStatus::StatusEnum
 

This enumeration represents a bit-field that can hold all of the status information for a given file. The rules for plug-in implementors and clients are: You must be able to deal with a status value that contains a bit that wasn't defined at the time your code was compiled (simple masking will deal with this) You can set or clear any flag that was in effect at the time your code was compiled. Rules that the interface will follow: The set of bits that are currently defined will not change their values, or be removed, after the interface has been declared as finalized. New bits can be added to the set of values but can only occupy unused spaces in the bitfield.

Enumeration values:
cControlled  When this bit is set, the corresponding object is "controlled" by this VC system. In most cases this means that there is a checked-in file that represents this object on the disk.
cEditable  When this bit is set it is safe to modify the object on disk. In some systems, that means the file for this object is checked out. Some systems allow modifications to files without check-out - for such a system, objects will always be reported as "Editable".
cUpToDate  This bit indicates that the file on disk is either identical to the latest version in the VC repository, or, if edits have been made, it is based on the latest version in the repository.
cAdded  This bit is used for VC systems that have a notion of "Added but not committed" (e.g. CVS). This means that the local workspace shows that this object has been marked to be added to the repository, but that it hasn't yet been committed.
cDeleted  This bit is set if the file for this object has been marked for deletion in the local workspace, but this change hasn't yet been committed. (See "cAdded")
cModified  This bit is set if the file for this object has been modified on disk in the local workspace, and this change hasn't yet been committed.
cLocked  This bit is set if the file for this object has been locked *in the VC system* to prevent concurrent check-outs. This is not the same as locking a file in the OA library which is intended to prevent concurrent edits in the same local workspace.
cMerged  This bit is set if the file on disk is the result of a recent merge operation from the repository. This will always imply "Edited". This will only be reported if the underlying VC system keeps track of merge status.
cConflict  This bit will be set if the file in the local workspace currently contains a conflict acquired from the merge of an edited file and changes in the repository. On systems that can't detect when the conflicts have been resolved, this bit may stay set until the local edits are committed.
cMissing  This bit will be set if the file is in the repository but the copy in the local workspace is missing. This bit may never be used for VC systems that point to a central remote area for files that haven't been modified locally (e.g. ClearCase).
cRemote  This bit is set if the file for this object is located remotely, and not cached in the local workspace.


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

Return to top of page