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
    public virtual HRESULT GetMergeContextTable(CATIColMergeContextTable*& oMergeContextTable) = 0
    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
    public virtual HRESULT ListAvailableShareMode(CATListOfShareAccess& oModes) = 0
    Returns all the mode which can be used whith this.
    o ShareAs
    public virtual HRESULT ShareAs( const CATIColSharable::ShareMode& iMode,
    CATBaseUnknown** oObjectToShare,
    CATIColMergeContextTable** ioContextTable) = 0
    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

    Copyright © 2003, Dassault Systèmes. All rights reserved.