3ds Max C++ API Reference
IATSProvider Class Referenceabstract

ATS Provider Interface. More...

#include <IATSProvider.h>

+ Inheritance diagram for IATSProvider:

Public Member Functions

virtual ~IATSProvider ()
 Destructor. More...
 
virtual const MCHARGetProviderName ()=0
 Get provider name. More...
 
virtual ATSOption GetSupportOptions ()=0
 Get provider's support options. More...
 
virtual bool IsInitialized ()=0
 Get initialization status. More...
 
virtual bool IsProjectOpen ()=0
 Get project status. More...
 
virtual ATSResult Initialize (ATSClientInfo &atsClientInfo, ATSOption atsOptions=ATS::kATSOptNone)=0
 Initialize. More...
 
virtual ATSResult Uninitialize (ATSOption atsOptions=ATS::kATSOptNone)=0
 Uninitialize. More...
 
virtual ATSResult OpenProject (const MCHAR *szPath, const MCHAR *szComment, ATSOption atsOptions=ATS::kATSOptNone)=0
 Open project. More...
 
virtual ATSResult CloseProject (ATSOption atsOptions=ATS::kATSOptNone)=0
 Close project. More...
 
virtual const MCHARGetWorkingFolder ()=0
 Get working folder. More...
 
virtual ATSResult SetWorkingFolder (const MCHAR *szWorkingFolder)=0
 Set working folder. More...
 
virtual ATSResult Checkin (ATSFileList &atsFileList, const MCHAR *szComment, ATSOption atsOptions=ATS::kATSOptNone)=0
 Checkin files. More...
 
virtual ATSResult Checkout (ATSFileList &atsFileList, const MCHAR *szComment, ATSOption atsOptions=ATS::kATSOptNone)=0
 Checkout files. More...
 
virtual ATSResult UndoCheckout (ATSFileList &atsFileList, ATSOption atsOptions=ATS::kATSOptNone)=0
 Undo checkout. More...
 
virtual ATSResult GetLatest (ATSFileList &atsFileList, ATSOption atsOptions=ATS::kATSOptNone)=0
 Get latest. More...
 
virtual ATSResult GetVersionRange (ATSFileList &atsFileList, ATSVersion &verMin, ATSVersion &verMax, ATSOption atsOptions=ATS::kATSOptNone)=0
 Get version range. More...
 
virtual ATSResult GetVersion (ATSFileList &atsFileList, ATSVersion ver, ATSOption atsOptions=ATS::kATSOptNone)=0
 Get version. More...
 
virtual ATSResult AddFiles (ATSFileList &atsFileList, const MCHAR *szComment, ATSOption atsOptions=ATS::kATSOptNone)=0
 Add files. More...
 
virtual ATSResult History (ATSFileList &atsFileList, ATSOption atsOptions=ATS::kATSOptNone)=0
 Show version history. More...
 
virtual ATSResult Properties (ATSFileList &atsFileList, ATSOption atsOptions=ATS::kATSOptNone)=0
 Show file properties. More...
 
virtual ATSResult GetFileStatus (ATSFileList &atsFileList, ATSOption atsOptions=ATS::kATSOptNone)=0
 Get file status. More...
 
virtual ATSResult GetLockedFileUserList (ATSFileList &atsFileList, ATSUserList &atsUserList, ATSOption atsOptions=ATS::kATSOptNone)=0
 Get name of users that have files locked. More...
 
virtual ATSResult ExploreProvider (ATSFileList &atsFileList, ATSExploreProviderParams &exploreParams, ATSOption atsOptions=ATS::kATSOptNone)=0
 Explore provider. More...
 
virtual ATSResult ShowProviderOptions (ATSOption atsOptions=ATS::kATSOptNone)=0
 Show provider options. More...
 
virtual ATSResult LaunchProvider (ATSOption atsOptions=ATS::kATSOptNone)=0
 Launch provider. More...
 
virtual ATSResult GetAssociatedFiles (ATSFileList &atsFileList, ATSOption atsOptions=ATS::kATSOptNone)=0
 Get associated files. More...
 
virtual bool IsATSMSSCCWrapper ()=0
 Is provider using MSSCC interface. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from MaxHeapOperators
static UtilExport voidoperator new (size_t size)
 Standard new operator used to allocate objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e)
 Standard new operator used to allocate objects if there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new (size_t size, const char *filename, int line)
 New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate objects that takes the type of memory, filename and line number where the new was called If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e, const char *filename, int line)
 New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new (size_t size, unsigned long flags)
 New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e, unsigned long flags)
 New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size, const char *filename, int line)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate arrays of objects. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e, const char *filename, int line)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport voidoperator new[] (size_t size, unsigned long flags)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown. More...
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e, unsigned long flags)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned. More...
 
static UtilExport void operator delete (void *ptr)
 Standard delete operator used to deallocate an object If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e)
 Standard delete operator used to deallocate an object If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete (void *ptr, const char *filename, int line)
 Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, int block_type, const char *filename, int line)
 Delete operator used to deallocate an object that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e, const char *filename, int line)
 Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete (void *ptr, unsigned long flags)
 Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e, unsigned long flags)
 Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr)
 Standard delete operator used to deallocate an array of objects If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e)
 Standard delete operator used to deallocate an array of objects If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, int block_type, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen. More...
 
static UtilExport void operator delete[] (void *ptr, unsigned long flags)
 Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e, unsigned long flags)
 Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown. More...
 
static UtilExport voidoperator new (size_t size, void *placement_ptr)
 Placement new operator. More...
 
static UtilExport void operator delete (void *ptr, void *placement_ptr)
 Placement delete operator. More...
 
static UtilExport voidaligned_malloc (size_t size, size_t alignment)
 Allocates memory on a specified alignment boundary. More...
 
static UtilExport voidaligned_realloc (void *ptr, size_t size, size_t alignment)
 Reallocates memory on a specified alignment boundary. More...
 
static UtilExport void aligned_free (void *ptr)
 Frees a block of memory that was allocated with aligned_malloc/aligned_realloc. More...
 

Detailed Description

ATS Provider Interface.

This is the main interface for interacting with an ATS Provider. It provides for basic version control functionality, retrieval of status, connections, dependency reporting, etc.

See also
IATSMax, ATSFileList, ATSClientInfo, ATSUserList

Constructor & Destructor Documentation

◆ ~IATSProvider()

virtual ~IATSProvider ( )
inlinevirtual

Destructor.

784 {}

Member Function Documentation

◆ GetProviderName()

virtual const MCHAR* GetProviderName ( )
pure virtual

Get provider name.

Returns
string containing provider name

◆ GetSupportOptions()

virtual ATSOption GetSupportOptions ( )
pure virtual

Get provider's support options.

This allows the provider to specify whether or not they support some of the more advanced version control method, such as dependency reporting and exploring. See kATSSupport* flags.

Returns
Support option flags (ATSOption)

◆ IsInitialized()

virtual bool IsInitialized ( )
pure virtual

Get initialization status.

Returns
true if the provider has been initialized, false if it has not.

◆ IsProjectOpen()

virtual bool IsProjectOpen ( )
pure virtual

Get project status.

Returns
true if the provider has a project open, false if it has not.

◆ Initialize()

virtual ATSResult Initialize ( ATSClientInfo atsClientInfo,
ATSOption  atsOptions = ATS::kATSOptNone 
)
pure virtual

Initialize.

This is called when the user has decided to connect or logon to the provider. At this point, the provider should be prepared to open a project, launch provider, explorer provider, or show options. The provider might also ask the user to login if neccessary, although that can be delayed until a project is opened.

Parameters
[in]atsClientInforeference to ATSClientInfo object. Any data of interested should be copied locally to the provider.
[in]atsOptionsdefault value kATSOptNone. kATSOptSilent is valid.
Returns
ATSResult value

◆ Uninitialize()

virtual ATSResult Uninitialize ( ATSOption  atsOptions = ATS::kATSOptNone)
pure virtual

Uninitialize.

This is called when the user has decided to disconnect or logout of the provider.

Parameters
[in]atsOptionsdefault value kATSOptNone. kATSOptSilent is valid.
Returns
ATSResult value

◆ OpenProject()

virtual ATSResult OpenProject ( const MCHAR szPath,
const MCHAR szComment,
ATSOption  atsOptions = ATS::kATSOptNone 
)
pure virtual

Open project.

This is called when the client has opened a project. At this point a project path has been determined from document or document related project files. For certain providers, the specified path might be used to determine if the project can be resolved to a workspace by the provider.

Parameters
[in,out]szPathstring containing the path to the project. This typically is the path in which the document was opened.
[in]szCommentstring containing any initial or default comment for the project.
[in]atsOptionsdefault value kATSOptNone. kATSOptSilent is valid.
Returns
ATSResult value

◆ CloseProject()

virtual ATSResult CloseProject ( ATSOption  atsOptions = ATS::kATSOptNone)
pure virtual

Close project.

This is called when the client has closed a project. This occurs when the user has opened a new document or is closing down the client application.

Parameters
[in]atsOptionsdefault value kATSOptNone. kATSOptSilent is valid.
Returns
ATSResult value

◆ GetWorkingFolder()

virtual const MCHAR* GetWorkingFolder ( )
pure virtual

Get working folder.

Returns
string containing current working folder used to resolve project files

◆ SetWorkingFolder()

virtual ATSResult SetWorkingFolder ( const MCHAR szWorkingFolder)
pure virtual

Set working folder.

The working folder for most providers is used to map the root folder in the version provider's file system to the local file system.

Parameters
[in]szWorkingFolderstring containing the new working folder.
Returns
ATSResult value

◆ Checkin()

virtual ATSResult Checkin ( ATSFileList atsFileList,
const MCHAR szComment,
ATSOption  atsOptions = ATS::kATSOptNone 
)
pure virtual

Checkin files.

Active files in the ATSFileList object should be checked in to the provider.

Parameters
[in,out]atsFileListreference to ATSFileList object. The active file list should be used.
[in]szCommentstring containing the comment to include with this version.
[in]atsOptionsdefault value kATSOptNone. kATSOptSilent and kATSOptKeepCheckedOut are valid.
Returns
ATSResult value

◆ Checkout()

virtual ATSResult Checkout ( ATSFileList atsFileList,
const MCHAR szComment,
ATSOption  atsOptions = ATS::kATSOptNone 
)
pure virtual

Checkout files.

Active files in the ATSFileList object should be checked out from the provider.

Parameters
[in,out]atsFileListreference to ATSFileList object. The active file list should be used.
[in]szCommentstring containing the comment to include with this version.
[in]atsOptionsdefault value kATSOptNone. kATSOptSilent and kATSOptReplaceLocalCopy are valid.
Returns
ATSResult value

◆ UndoCheckout()

virtual ATSResult UndoCheckout ( ATSFileList atsFileList,
ATSOption  atsOptions = ATS::kATSOptNone 
)
pure virtual

Undo checkout.

Active files in the ATSFileList object should no longer be checked out by the provider.

Parameters
[in,out]atsFileListreference to ATSFileList object. The active file list should be used.
[in]atsOptionsdefault value kATSOptNone. kATSOptSilent and kATSOptReplaceLocalCopy are valid.
Returns
ATSResult value

◆ GetLatest()

virtual ATSResult GetLatest ( ATSFileList atsFileList,
ATSOption  atsOptions = ATS::kATSOptNone 
)
pure virtual

Get latest.

Active files in the ATSFileList object should have their latest version downloaded.

Parameters
[in,out]atsFileListreference to ATSFileList object. The active file list should be used.
[in]atsOptionsdefault value kATSOptNone. kATSOptSilent is valid.
Returns
ATSResult value

◆ GetVersionRange()

virtual ATSResult GetVersionRange ( ATSFileList atsFileList,
ATSVersion verMin,
ATSVersion verMax,
ATSOption  atsOptions = ATS::kATSOptNone 
)
pure virtual

Get version range.

Get the range of version numbers. If multiple active file entries are in atsFileList, the verMin is the minimum of all the files, and verMax is the maximum of all the files.

Parameters
[in,out]atsFileListreference to ATSFileList object. The active file list should be used.
[out]verMinminimum version number
[out]verMaxmaximum version number
[in]atsOptionsdefault value kATSOptNone.
Returns
ATSResult value

◆ GetVersion()

virtual ATSResult GetVersion ( ATSFileList atsFileList,
ATSVersion  ver,
ATSOption  atsOptions = ATS::kATSOptNone 
)
pure virtual

Get version.

Downloads the specified version for the active files in the ATSFileList object.

Parameters
[in,out]atsFileListreference to ATSFileList object. The active file list should be used.
[in]verversion number
[in]atsOptionsdefault value kATSOptNone. kATSOptSilent is valid.
Returns
ATSResult value

◆ AddFiles()

virtual ATSResult AddFiles ( ATSFileList atsFileList,
const MCHAR szComment,
ATSOption  atsOptions = ATS::kATSOptNone 
)
pure virtual

Add files.

Active files in the ATSFileList object should be added to the provider.

Parameters
[in,out]atsFileListreference to ATSFileList object. The active file list should be used.
[in]szCommentstring containing the comment to include with this version.
[in]atsOptionsdefault value kATSOptNone. kATSOptSilent and kATSOptKeepCheckedOut are valid.
Returns
ATSResult value

◆ History()

virtual ATSResult History ( ATSFileList atsFileList,
ATSOption  atsOptions = ATS::kATSOptNone 
)
pure virtual

Show version history.

The version history of the active files in the ATSFileList object should be shown. If multiple histories can not be displayed, the first active file should be displayed.

Parameters
[in,out]atsFileListreference to ATSFileList object. The active file list should be used.
[in]atsOptionsdefault value kATSOptNone. kATSOptSilent is valid.
Returns
ATSResult value. If the history dialog resulted in a version change of one of the file, kATSResSuccessReload should be returned.

◆ Properties()

virtual ATSResult Properties ( ATSFileList atsFileList,
ATSOption  atsOptions = ATS::kATSOptNone 
)
pure virtual

Show file properties.

The properties of the active files in the ATSFileList object should be shown. If multiple file properties can not be displayed, the first active file should be displayed.

Parameters
[in,out]atsFileListreference to ATSFileList object. The active file list should be used.
[in]atsOptionsdefault value kATSOptNone. kATSOptSilent is valid.
Returns
ATSResult value

◆ GetFileStatus()

virtual ATSResult GetFileStatus ( ATSFileList atsFileList,
ATSOption  atsOptions = ATS::kATSOptNone 
)
pure virtual

Get file status.

The status of the active files in the ATSFileList object should be updated. The status should be placed in the Out flags of the ATSFileEntry.

See also
ATSFileEntry
Parameters
[in,out]atsFileListreference to ATSFileList object. The active file list should be used.
[in]atsOptionsdefault value kATSOptNone. kATSOptSilent is valid.
Returns
ATSResult value

◆ GetLockedFileUserList()

virtual ATSResult GetLockedFileUserList ( ATSFileList atsFileList,
ATSUserList atsUserList,
ATSOption  atsOptions = ATS::kATSOptNone 
)
pure virtual

Get name of users that have files locked.

For each active file in the ATSFileList object, a corresponding atsUserList entry will be created. The provider will fill in an ATSUserEntry object with information about the user that has the active file locked or checked out. If a file in the active list is not locked, the provider will create a blank ATSUserEntry object in place.

See also
ATSUserEntry
Parameters
[in,out]atsFileListreference to ATSFileList object. The active file list should be used.
[out]atsUserListreference to ATSUserList object. This will be populated by the provider.
[in]atsOptionsdefault value kATSOptNone.
Returns
ATSResult value

◆ ExploreProvider()

virtual ATSResult ExploreProvider ( ATSFileList atsFileList,
ATSExploreProviderParams exploreParams,
ATSOption  atsOptions = ATS::kATSOptNone 
)
pure virtual

Explore provider.

If supported, the provider should display a dialog to allow the user to explorer the contents of the provider. The file or files selected by the user will be returned and optionally downloaded.

See also
ATSExploreProviderParams
Parameters
[in,out]atsFileListreference to ATSFileList object. Active entries should be created for the selected files.
[in]exploreParamsreference to ATSExploreProviderParams object that defines the parameters for the explorer provider dialog.
[in]atsOptionsdefault value kATSOptNone.
Returns
ATSResult value

◆ ShowProviderOptions()

virtual ATSResult ShowProviderOptions ( ATSOption  atsOptions = ATS::kATSOptNone)
pure virtual

Show provider options.

The provider should optional display a dialog containing any options.

Parameters
[in]atsOptionsdefault value kATSOptNone.
Returns
ATSResult value. If any change in options might affect the status of the files, kATSResSuccessReload should be returned.

◆ LaunchProvider()

virtual ATSResult LaunchProvider ( ATSOption  atsOptions = ATS::kATSOptNone)
pure virtual

Launch provider.

The provider should optional launch an associated client application.

Parameters
[in]atsOptionsdefault value kATSOptNone.
Returns
ATSResult value. If any change in options might affect the status of the files, kATSResSuccessReload should be returned.

◆ GetAssociatedFiles()

virtual ATSResult GetAssociatedFiles ( ATSFileList atsFileList,
ATSOption  atsOptions = ATS::kATSOptNone 
)
pure virtual

Get associated files.

This method provides for specifying file associations. If supported, the provider should add the specified associated files for each file in the list as child for that ATSFileEntry. It should clear any children already in the list before adding its own.

Parameters
[in,out]atsFileListreference to ATSFileList object. If supported, the provider should add the specified associated files for each file in the list as child for that ATSFileEntry. It should clear any children already in the list before adding its own.
[in]atsOptionsdefault value kATSOptNone. kATSOptSilent, kATSOptAssocChildren, kATSOptAssocParents, kATSOptAssocRecurse and are valid.
Returns
ATSResult value.

◆ IsATSMSSCCWrapper()

virtual bool IsATSMSSCCWrapper ( )
pure virtual

Is provider using MSSCC interface.

This specifies whether an ATS Provider is directly supporting the IATSProvider interface or if the ATS core is supplying IATSProvider support through an MSSCC interface.

Returns
true if MSSCC dll, false if not.