All Frameworks Class Hierarchy This Framework Previous Next Indexes
CATInstantCollabDesignCAAItf Interface CATIColSharable
System.IUnknown
|
+---System.IDispatch
|
+---System.CATBaseUnknown
|
+---CATIColSharable
Usage: you can reimplement this interface by deriving the supplied CATColISharableAdapter adapter class.
interface CATIColSharable
Interface to be implemented by the objects which are to be streamed by the collaborative engine
The methods of this interface are called during the share step to extract the dependendies of the feature
and create a closed set of features.
This enable the collaborative engine to instantiate the feature in any
context.
IMPORTANT : this interface MUST not be manipulated directly. A feature can be sharable thanks to the adhesion of this
CAA interface OR the internal DS interface. Use the CATCollabWrapper methods instead.
When do I implement this interface ?
1- I own a feature which inherits from a DS feature implementing itself the collaborative interfaces and I want
to add applicative rule during the share step.
2- I have created a feature which does not inherit from a known collaborative feature and I have no access to the DS
internal interfaces. IMPORTANT : in that case I have to inherit my component from the provide adapter :
CATColISharableAdapter
Method Index
- o
CanBeSharedAs(CATIColSharable::ShareMode&)
- Is this compatible with iMode ?.
- o
GetMergeContextTable(CATIColMergeContextTable*&)
- Fill and return the context table
- o
GetShareAccess(CATIColSharable::ShareAccess&)
- Returns the exposition of the sharable object inside the collaborative application.
- o
ListAvailableShareMode(CATListOfShareAccess&)
- Returns all the mode which can be used whith this.
- o
ShareAs(CATIColSharable::ShareMode&,CATBaseUnknown**,CATIColMergeContextTable**)
- User exit to customize the collaborative behavior of a feature dependending on a share mode.
Enumerated Type Index
- o
ShareAccess
- Defines the level of exposition inside the collaborative application (UI and engine)
- PUBLIC_SHARE : can be put explicitly inside the briefcase
- PUBLIC_HIDDEN_SHARE : can be put inside the briefcase but hidden inside the collaborative design
application
- PROTECTED_SHARE : cannot be shared explicitly but is visible
inside the collaborative application
- PRIVATE_SHARE : cannot be shared explicitly and is not visible
inside the collaborative application
- o
ShareMode
- Define which facet of the feature must be created in the destination part
- SPEC is standard mode
- DELETED is used for deletion sharing
- UNDER is used to share a feature as a container : the children are really merged whith the existing one
- Not yet implemented : RESULT is used to share a feature as a datum
- Not yet implemented : RESULT_WITH_LINK is used to share a feature as a datum with link
Methods
o CanBeSharedAs
public virtual CATBoolean CanBeSharedAs( | const CATIColSharable::ShareMode& | iMode) = 0 |
-
Is this compatible with iMode ?.
o GetMergeContextTable
-
Fill and return the context table
- Parameters:
-
- oMergeContextTable
- [out, CATBaseUnknown#Release] the context table
- Returns:
- S_OK
E_FAIL
o GetShareAccess
public virtual HRESULT GetShareAccess( | CATIColSharable::ShareAccess& | oShareAccess) = 0 |
-
Returns the exposition of the sharable object inside the collaborative application.
o ListAvailableShareMode
-
Returns all the mode which can be used whith this.
o ShareAs
-
User exit to customize the collaborative behavior of a feature dependending on a share mode.
- Parameters:
-
- oObjectToShare
- Object to share instead of this. Example : the datum instead of the spec when share mode is RESULT.
- ioContextTable
- The context table of this. It can be customized with applicative information.
Enumerated Types
o ShareAccess
-
enum ShareAccess {
PUBLIC_SHARE,
PROTECTED_SHARE,
PRIVATE_SHARE,
PUBLIC_HIDDEN_SHARE
}
Defines the level of exposition inside the collaborative application (UI and engine)
- PUBLIC_SHARE : can be put explicitly inside the briefcase
- PUBLIC_HIDDEN_SHARE : can be put inside the briefcase but hidden inside the collaborative design
application
- PROTECTED_SHARE : cannot be shared explicitly but is visible
inside the collaborative application
- PRIVATE_SHARE : cannot be shared explicitly and is not visible
inside the collaborative application
o ShareMode
-
enum ShareMode {
SPEC,
DELETED,
UNDER,
RESULT,
RESULT_WITH_LINK
}
Define which facet of the feature must be created in the destination part
- SPEC is standard mode
- DELETED is used for deletion sharing
- UNDER is used to share a feature as a container : the children are really merged whith the existing one
- Not yet implemented : RESULT is used to share a feature as a datum
- Not yet implemented : RESULT_WITH_LINK is used to share a feature as a datum with link
This object is included in the file: CATIColSharable.h
If needed, your Imakefile.mk should include the module: CATInstantCollabDesignItf