/* Disclaimer: The users of these APIs are considered advanced users who are familiar with the command-line parameters passed to each qcommand. Error checking and validation of command-line parameters will be very limited and will not exceed what the command-line framework already provides */ #ifndef __QAPI_H__ #define __QAPI_H__ /*! \file QAPI.h \brief QAPI header file This is the header file for QAPIs and contains all necessary declarations required to invoke QAPIs. */ /*----------------------------------- Include headers -----------------------------------*/ #include /*----------------------------------- Macros -----------------------------------*/ /*! \def QAPI_VERSION \brief QAPI version */ #define QAPI_VERSION "2.0" #ifdef WIN32 #define QAPI_DLLAPI __declspec(dllexport) #else #define QAPI_DLLAPI #endif /*----------------------------------- Enums -----------------------------------*/ /* New entries in enum must be added at the end to maintain backward compatibilty -Krishna */ /*! \enum QAPI_OutputMode \brief QAPI output mode */ enum QAPI_OutputMode { QAPI_OUTPUTMODE_CONSOLE, //!< Command output is redirected to console QAPI_OUTPUTMODE_CALLBACK //!< Command output is redirected to callback routine }; /*! \enum QAPI_ListSubType \brief Qlist subcommand types */ enum QAPI_ListSubType { QAPI_LIST_CLIENT, //!< Subcommand 'client' QAPI_LIST_DATAAGENT, //!< Subcommand 'dataagent' QAPI_LIST_INSTANCE, //!< Subcommand 'instance' QAPI_LIST_BACKUPSET, //!< Subcommand 'backupset' QAPI_LIST_SUBCLIENT, //!< Subcommand 'subclient' QAPI_LIST_SP, //!< Subcommand 'sp' QAPI_LIST_SPCOPIES, //!< Subcommand 'spcopy' QAPI_LIST_MEDIAAGENT, //!< Subcommand 'mediaagent' QAPI_LIST_MEDIALIBRARIES, //!< Subcommand 'library' QAPI_LIST_MDRIVEPOOLS, //!< Subcommand 'masterdrivepool' QAPI_LIST_JOBS, //!< Subcommand 'job' QAPI_LIST_LOCATION, //!< Subcommand 'location' QAPI_LIST_VTP, //!< Subcommand 'vtp' QAPI_LIST_DRIVEPOOLS, //!< Subcommand 'drivepool' QAPI_LIST_MEDIA, //!< Subcommand 'media' QAPI_LIST_JOBSUMMARY, //!< Subcommand 'jobsummary' QAPI_LIST_QUICKMEDIA, //!< Subcommand 'quickmedia' QAPI_LIST_SCRATCHPOOL, //!< Subcommand 'scratchpool' QAPI_LIST_DRIVE, //!< Subcommand 'drive' QAPI_LIST_JOBHISTORY, //!< Subcommand 'jobhistory' QAPI_LIST_LASTBACKUPJOB, //!< Subcommand 'lastjob' QAPI_LIST_CLIENTGROUP, //!< Subcommand 'clientgroup' QAPI_LIST_GLOBALFILTER, //!< Subcommand 'globalfilter' QAPI_LIST_SCHEDULEPOLICIES, //!< Subcommand 'schedulepolicy' QAPI_LIST_SCHEDULES, //!< Subcommand 'schedule' QAPI_LIST_REPLICATIONSET, //!< Subcommand 'replicationset' QAPI_LIST_REPLICATIONPAIR, //!< Subcommand 'replicationpair' QAPI_LIST_USERGROUP, //!< Subcommand 'usergroup' QAPI_LIST_SNAPS, //!< Subcommand 'snap' QAPI_LIST_CONTAINER, //!< Subcommand 'container' QAPI_LIST_MEDIASHELF, //!< Subcommand 'shelf' QAPI_LIST_IRONMOUNTAIN, //!< Subcommand 'iron' QAPI_LIST_VTACTION, //!< Subcommand 'vta' QAPI_LIST_INDEXFILES, //!< Subcommand 'indexfiles' QAPI_LIST_MEDIACONTENTS //!< Subcommand 'mediacontents' }; /*! \enum QAPI_CreateSubType \brief Qcreate subcommand types */ enum QAPI_CreateSubType { QAPI_CREATE_BACKUPSET, //!< Subcommand 'backupset' QAPI_CREATE_INSTANCE, //!< Subcommand 'instance' QAPI_CREATE_REPSET, //!< Subcommand 'repset' QAPI_CREATE_SP, //!< Subcommand 'sp' QAPI_CREATE_SPCOPY, //!< Subcommand 'spcopy' QAPI_CREATE_SUBCLIENT, //!< Subcommand 'subclient' QAPI_CREATE_USER, //!< Subcommand 'user' QAPI_CREATE_REPLICATIONPAIR, //!< Subcommand 'replicationpair' QAPI_CREATE_LOCATION, //!< Subcommand 'location' QAPI_CREATE_CONTAINER, //!< Subcommand 'container' QAPI_CREATE_MEDIASHELF, //!< Subcommand 'shelf' QAPI_CREATE_IRONMOUNTAIN, //!< Subcommand 'iron' QAPI_CREATE_VTPOLICY //!< Subcommand 'vtp' }; /*! \enum QAPI_DeleteSubType \brief Qdelete subcommand types */ enum QAPI_DeleteSubType { QAPI_DELETE_BACKUPSET, //!< Subcommand 'backupset' QAPI_DELETE_CLIENT, //!< Subcommand 'client' QAPI_DELETE_DATAAGENT, //!< Subcommand 'dataagent' QAPI_DELETE_MEDIAAGENT, //!< Subcommand 'mediaagent' QAPI_DELETE_SP, //!< Subcommand 'sp' QAPI_DELETE_SPCOPY, //!< Subcommand 'spcopy' QAPI_DELETE_SUBCLIENT, //!< Subcommand 'subclient' QAPI_DELETE_LOCATION, //!< Subcommand 'location' QAPI_DELETE_CONTAINER, //!< Subcommand 'container' QAPI_DELETE_MEDIASHELF, //!< Subcommand 'shelf' QAPI_DELETE_IRONMOUNTAIN, //!< Subcommand 'iron' QAPI_DELETE_VTPOLICY //!< Subcommand 'vtp' }; /*! \enum QAPI_OperationSubType \brief Operation subcommand types */ enum QAPI_OperationSubType { QAPI_OPERATION_ADDUSER_TO_GROUP, //!< Subcommand 'adduser' QAPI_OPERATION_AGEDATA, //!< Subcommand 'agedata' QAPI_OPERATION_AUXCOPY, //!< Subcommand 'auxcopy' QAPI_OPERATION_BACKUP, //!< Subcommand 'backup' QAPI_OPERATION_CAPTURE, //!< Subcommand 'capture' QAPI_OPERATION_DOCKCLIENT, //!< Subcommand 'dock' QAPI_OPERATION_DRBACKUP, //!< Subcommand 'drbackup' QAPI_OPERATION_EXECSCRIPT, //!< Subcommand 'execScript' QAPI_OPERATION_FIND, //!< Subcommand 'find' QAPI_OPERATION_REPORT, //!< Subcommand 'report' QAPI_OPERATION_JOBCONTROL, //!< Subcommand 'jobcontrol' QAPI_OPERATION_JOBRETENTION, //!< Subcommand 'jobretention' QAPI_OPERATION_MERGE, //!< Subcommand 'merge' QAPI_OPERATION_MOVEENTITY, //!< Subcommand 'move' QAPI_OPERATION_QINETIXUPDATE, //!< Subcommand 'automaticupdate' QAPI_OPERATION_REGISTERCLIENT, //!< Subcommand 'register' QAPI_OPERATION_REPLICATION, //!< Subcommand 'replication' QAPI_OPERATION_RESTORE, //!< Subcommand 'restore' QAPI_OPERATION_SNAP, //!< Subcommand 'snap' QAPI_OPERATION_VAULTTRACKER, //!< Subcommand 'vaulttracker' QAPI_OPERATION_MEDIA, //!< Subcommand 'media' QAPI_OPERATION_EXECUTE, //!< Subcommand 'execute' QAPI_OPERATION_CHECK_READY, //!< Subcommand 'checkready' QAPI_OPERATION_REMOTE_EXECSCRIPT, //!< Subcommand 'remoteexecscript' QAPI_OPERATION_SEND_LOGS, //!< Subcommand 'sendlogs' QAPI_OPERATION_SET_PASSPHRASE, //!< Subcommand 'setpassphrase' QAPI_OPERATION_SET_ENCRYPTIONPROPS, //!< Subcommand 'setencryptionprops' QAPI_OPERATION_VTACTION, //!< Subcommand 'vaulttracker' QAPI_OPERATION_QUICK_RUN //!< Subcommand 'quickrun' }; /*! \enum QAPI_ModifySubType \brief Qmodify subcommand types */ enum QAPI_ModifySubType { QAPI_MODIFY_CLIENTGROUP, //!< Subcommand 'clientgroup' QAPI_MODIFY_GALAXYPASSWORD, //!< Subcommand 'galaxypassword' QAPI_MODIFY_GLOBALFILTERS, //!< Subcommand 'globalfilter' QAPI_MODIFY_INSTANCE, //!< Subcommand 'instance' QAPI_MODIFY_PASSWORD, //!< Subcommand 'password' QAPI_MODIFY_SCHEDULEPOLICY, //!< Subcommand 'schedulepolicy' QAPI_MODIFY_SUBCLIENT, //!< Subcommand 'subclient' QAPI_MODIFY_SPCOPY, //!< Subcommand 'spcopy' QAPI_MODIFY_CONTAINER, //!< Subcommand 'container' QAPI_MODIFY_VTPOLICY, //!< Subcommand 'vtpolicy' QAPI_MODIFY_LOCATION, //!< Subcommand 'vtpolicy' QAPI_MODIFY_MEDIASHELF //!< Subcommand 'mediashelf' }; /*! \enum QAPI_InfoSubType \brief QInfo subcommand types */ enum QAPI_InfoSubType { QAPI_INFO_BACKUPSET, //!< Subcommand 'backupset' QAPI_INFO_INSTANCE, //!< Subcommand 'instance' QAPI_INFO_MEDIA, //!< Subcommand 'media' QAPI_INFO_SUBCLIENT //!< Subcommand 'subclient' }; /*! \enum QAPI_LibrarySubType \brief QLibrary subcommand types */ enum QAPI_LibrarySubType { QAPI_LIBRARY_DISABLE, //!< Subcommand 'disable' QAPI_LIBRARY_DISCOVER, //!< Subcommand 'discover' QAPI_LIBRARY_ENABLE, //!< Subcommand 'enable' QAPI_LIBRARY_FULLSCAN, //!< Subcommand 'fullscan' QAPI_LIBRARY_IMPORT, //!< Subcommand 'import' QAPI_LIBRARY_RESET, //!< Subcommand 'reset' QAPI_LIBRARY_SCRATCHPOOL //!< Subcommand 'scratchpool' }; /*! \enum QAPI_MediaSubType \brief QLibrary subcommand types */ enum QAPI_MediaSubType { QAPI_MEDIA_ALLOWEXPORT, //!< Subcommand 'allowexport' QAPI_MEDIA_DELETECONTENTS, //!< Subcommand 'deletecontents' QAPI_MEDIA_DISCOVER, //!< Subcommand '' QAPI_MEDIA_EXPORT, //!< Subcommand 'export' QAPI_MEDIA_LOAD, //!< Subcommand 'load' QAPI_MEDIA_MARKAPPEND, //!< Subcommand 'markappend' QAPI_MEDIA_MARKBAD, //!< Subcommand 'markbad' QAPI_MEDIA_MARKFULL, //!< Subcommand 'markfull' QAPI_MEDIA_PREVENTEXPORT, //!< Subcommand 'preventexport' QAPI_MEDIA_VERIFY //!< Subcommand 'verify' }; /*! \enum QAPI_DriveSubType \brief QDrive subcommand types */ enum QAPI_DriveSubType { QAPI_DRIVE_CLEAN, //!< Subcommand 'clean' QAPI_DRIVE_DISABLE, //!< Subcommand 'disable' QAPI_DRIVE_ENABLE, //!< Subcommand 'enable' QAPI_DRIVE_RESET, //!< Subcommand 'reset' QAPI_DRIVE_STAMPMEDIA, //!< Subcommand 'stampmedia' QAPI_DRIVE_UNLOAD, //!< Subcommand 'unload' QAPI_DRIVE_VERIFY //!< Subcommand 'verify' }; #ifdef __cplusplus extern "C" { #endif /*----------------------------------- Structures -----------------------------------*/ /*! \struct QAPI_Status \brief QAPI return status */ typedef struct { unsigned int code; //!< Return status code char description[1024]; //!< Return status description } QAPI_Status; /*! \struct QAPI_InitParameters \brief QAPI configuration parameters needed by QAPI_Init */ typedef struct { const char * version; //!< QAPI version. Make sure this //!< is always set to QAPI_VERSION. const char * vmName; } QAPI_InitParameters; /*! \struct QAPI_Output \brief QAPI output parameters */ typedef struct { enum QAPI_OutputMode outputMode; //!< Output mode. QAPI output will //!< be processed based on this value. int (*outDataReader)(char *, int , void *); //!< Callback function which will //!< be used to redirect output when //!< outputMode is set to CALLBACK. //!< This callback takes three //!< arguments, first argument is //!< a pointer to character stream //!< of size specified in second //!< parameter. Third parameter is //!< a void pointer which is not //!< interpreted by QAPIs and user //!< can use it to store context //!< information. } QAPI_Output; /*----------------------------------- Functions -----------------------------------*/ /*! \fn QAPI_Status QAPI_Init(QAPI_InitParameters initParams) \brief API to set configuration parameters for QAPI. User must call this API before invoking any other API. \param [in] initParams Configuration parameters \return Command return code */ QAPI_DLLAPI QAPI_Status QAPI_Init(QAPI_InitParameters initParams); /*! \fn QAPI_Status QAPI_Login(const char * commandString, void *context) \brief API to login to a Commserver. This API is functionally equivalent to 'qlogin' command. It accepts the commandline parameters passed to 'qlogin' command and starts a new login session to the specified Commserver. This API must be called before running any other QAPIs. Output of the API is either returned through callback function set or displayed on the console, depending on output mode set. \param [in] commandString Commandline parameters of 'qlogin' command \param [in,out] output Output parameters \param [in,out] context Context information which can be used by user during callback \return Command return code */ QAPI_DLLAPI QAPI_Status QAPI_Login(const char * commandString, QAPI_Output * output, void *context); /*! \fn QAPI_Status QAPI_Curl(const char * cmdString, QAPI_Output * output, void *context) \brief API to execute curl commands. This API is functionally equivalent to 'curl' command. It accepts the commandline parameters passed to 'curl' command and starts a new session using the token provided to the specified Commserver. Output of the API is either returned through callback function set or displayed on the console, depending on output mode set. \param [in] commandString Commandline parameters of 'curl' command \param [in,out] output Output parameters \param [in,out] context Context information which can be used by user during callback \return Command return code */ QAPI_DLLAPI QAPI_Status QAPI_Curl(const char * cmdString, QAPI_Output * output, void *context); /*! \fn QAPI_Status QAPI_Operation(QAPI_OperationSubType subcommandType, const char * commandString, void *context) \brief API to start an operation. This API is functionally equivalent to 'qoperation' command. It accepts the commandline parameters passed to 'qoperation' command, barring subcommand type, say 'backup', 'restore', etc. Subcommand type is passed through first parameter 'subcommandType'. Output of the API is either returned through callback function set or displayed on the console, depending on output mode set. \param [in] subcommandType Operation subcommand type \param [in] commandString Commandline parameters of 'qoperation' command, barring subcommand name \param [in,out] context Context information which can be used by user during callback \param [in,out] output Output parameters \return Command return code */ QAPI_DLLAPI QAPI_Status QAPI_Operation(enum QAPI_OperationSubType subcommandType, const char * commandString, QAPI_Output * output, void *context); /*! \fn QAPI_Status QAPI_List(QAPI_ListSubType subcommandType, const char * commandString, QAPI_Output * output , void *context) \brief API to list. This API is functionally equivalent to 'qlist' command. It accepts the commandline parameters passed to 'qlist' command, barring subcommand type, say 'backupset', 'client', etc. Subcommand type is passed through first parameter 'subcommandType'. Output of the API is either returned through callback function or displayed on the console, depending on output mode set. \param [in] subcommandType List subcommand type \param [in] commandString Commandline parameters of 'qlist' command, barring subcommand name \param [in,out] context Context information which can be used by user during callback \param [in,out] output Output parameters \return Command return code */ QAPI_DLLAPI QAPI_Status QAPI_List(enum QAPI_ListSubType subcommandType, const char * commandString, QAPI_Output * output , void *context ); /*! \fn QAPI_Status QAPI_Create(QAPI_CreateSubType subcommandType, const char * commandString, QAPI_Output * output, void *context) \brief API to create. This API is functionally equivalent to 'qcreate' command. It accepts the commandline parameters passed to 'qcreate' command, barring subcommand type, say 'backupset', 'instance', etc. Subcommand type is passed through first parameter 'subcommandType'. Output of the API is either returned through callback function or displayed on the console, depending on output mode set. \param [in] subcommandType Create subcommand type \param [in] commandString Commandline parameters of 'qcreate' command, barring subcommand name \param [in,out] context Context information which can be used by user during callback \param [in,out] output Output parameters \return Command return code */ QAPI_DLLAPI QAPI_Status QAPI_Create(enum QAPI_CreateSubType subcommandType, const char * commandString, QAPI_Output * output, void *context); /*! \fn QAPI_Status QAPI_Delete QAPI_DeleteSubType subcommandType, const char * commandString, QAPI_Output * output , void *context) \brief API to delete. This API is functionally equivalent to 'qdelete' command. It accepts the commandline parameters passed to 'qdelete' command, barring subcommand type, say 'backupset', 'client', etc. Subcommand type is passed through first parameter 'subcommandType'. Output of the API is either returned through callback function or displayed on the console, depending on output mode set. \param [in] subcommandType Delete subcommand type \param [in] commandString Commandline parameters of 'qdelete' command, barring subcommand name \param [in,out] context Context information which can be used by user during callback \param [in,out] output Output parameters \return Command return code */ QAPI_DLLAPI QAPI_Status QAPI_Delete(enum QAPI_DeleteSubType subcommandType, const char * commandString, QAPI_Output * output, void *context); /*! \fn QAPI_Status QAPI_Modify (QAPI_ModifySubType subcommandType, const char * commandString, QAPI_Output * output , void *context) \brief API to modify. This API is functionally equivalent to 'qlist' command. It accepts the commandline parameters passed to 'qlist' command, barring subcommand type, say 'backupset', 'client', etc. Subcommand type is passed through first parameter 'subcommandType'. Output of the API is either returned through callback function or displayed on the console, depending on output mode set. \param [in] subcommandType Modify subcommand type \param [in] commandString Commandline parameters of 'qlist' command, barring subcommand name \param [in,out] context Context information which can be used by user during callback \param [in,out] output Output parameters \return Command return code */ QAPI_DLLAPI QAPI_Status QAPI_Modify(enum QAPI_ModifySubType subcommandType, const char * commandString, QAPI_Output * output , void *context ); /*! \fn QAPI_Status QAPI_Info (QAPI_InfoSubType subcommandType, const char * commandString, QAPI_Output * output , void *context) \brief API to display information about various Galaxy entities. This API is functionally equivalent to 'qinfo' command. It accepts the commandline parameters passed to 'qinfo' command, barring subcommand type, say 'backupset', 'instance', etc. Subcommand type is passed through first parameter 'subcommandType'. Output of the API is either returned through callback function or displayed on the console, depending on output mode set. \param [in] subcommandType Info subcommand type \param [in] commandString Commandline parameters of 'qlist' command, barring subcommand name \param [in,out] context Context information which can be used by user during callback \param [in,out] output Output parameters \return Command return code */ QAPI_DLLAPI QAPI_Status QAPI_Info(enum QAPI_InfoSubType subcommandType, const char * commandString, QAPI_Output * output , void *context ); /*! \fn QAPI_Status QAPI_Library (QAPI_LibrarySubType subcommandType, const char * commandString, QAPI_Output * output , void *context) \brief API to perform various library operations This API is functionally equivalent to 'qlibrary' command. It accepts the commandline parameters passed to 'qinfo' command, barring subcommand type, say 'enable', 'discover', 'fullscan'etc. Subcommand type is passed through first parameter 'subcommandType'. Output of the API is either returned through callback function or displayed on the console, depending on output mode set. \param [in] subcommandType Library subcommand type \param [in] commandString Commandline parameters of 'qlibrary' command, barring subcommand name \param [in,out] context Context information which can be used by user during callback \param [in,out] output Output parameters \return Command return code */ QAPI_DLLAPI QAPI_Status QAPI_Library(enum QAPI_LibrarySubType subcommandType, const char * commandString, QAPI_Output * output , void *context ); /*! \fn QAPI_Status QAPI_Media (QAPI_MediaSubType subcommandType, const char * commandString, QAPI_Output * output , void *context) \brief API to perform media related operations This API is functionally equivalent to 'qmedia' command. It accepts the commandline parameters passed to 'qmedia' command, barring subcommand type, say 'allowExport', 'export', 'verify' etc. Subcommand type is passed through first parameter 'subcommandType'. Output of the API is either returned through callback function or displayed on the console, depending on output mode set. \param [in] subcommandType Media subcommand type \param [in] commandString Commandline parameters of 'qmedia' command, barring subcommand name \param [in,out] context Context information which can be used by user during callback \param [in,out] output Output parameters \return Command return code */ QAPI_DLLAPI QAPI_Status QAPI_Media(enum QAPI_MediaSubType subcommandType, const char * commandString, QAPI_Output * output , void *context ); /*! \fn QAPI_Status QAPI_Drive (QAPI_DriveSubType subcommandType, const char * commandString, QAPI_Output * output , void *context) \brief API to perform media related operations This API is functionally equivalent to 'qdrive' command. It accepts the commandline parameters passed to 'qdrive' command, barring subcommand type, say 'enable', 'clean', 'reset' etc. Subcommand type is passed through first parameter 'subcommandType'. Output of the API is either returned through callback function or displayed on the console, depending on output mode set. \param [in] subcommandType Drive subcommand type \param [in] commandString Commandline parameters of 'qdrive' command, barring subcommand name \param [in,out] context Context information which can be used by user during callback \param [in,out] output Output parameters \return Command return code */ QAPI_DLLAPI QAPI_Status QAPI_Drive(enum QAPI_DriveSubType subcommandType, const char * commandString, QAPI_Output * output , void *context ); /*! \fn QAPI_Status QAPI_Logout(const char * commandString, QAPI_Output * output, void *context) \brief API to logout from a Commserver. This API is functionally equivalent to 'qlogout' command. It accepts the commandline parameters passed to 'qlogout' command and terminates the login session created by 'qlogin' command. Once this API is called, user will have to call QAPI_Login() API in order to run more commands. Output of the API is either returned through callback function set through QAPI_Init or displayed on the console, depending on output mode set through QAPI_Init. \param [in] commandString Commandline parameters of 'qlogout' command \param [in,out] output Output parameters \param [in,out] context Context information which can be used by user during callback \return Command return code */ QAPI_DLLAPI QAPI_Status QAPI_Logout(const char * commandString, QAPI_Output * output, void *context ); /*! \fn QAPI_Status QAPI_Exit() \brief API to terminate QAPI. This API must be the last API to call and user must invoke QAPI_Init again in order to invoke more QAPIs. \return Command return code */ QAPI_DLLAPI QAPI_Status QAPI_Exit(); /*----------------------------------- Function type declarations -----------------------------------*/ /*! \typedef QAPI_Init_Type \brief Function type declaration for QAPI_Init */ typedef QAPI_Status (*QAPI_Init_Type)(QAPI_InitParameters); /*! \typedef QAPI_Login_Type \brief Function type declaration for QAPI_Login */ typedef QAPI_Status (*QAPI_Login_Type)(const char *, QAPI_Output *, void *context ); /*! \typedef QAPI_Operation_Type \brief Function type declaration for QAPI_Operation */ typedef QAPI_Status (*QAPI_Operation_Type)(enum QAPI_OperationSubType, const char *, QAPI_Output *, void *context ); /*! \typedef QAPI_List_Type \brief Function type declaration for QAPI_List */ typedef QAPI_Status (*QAPI_List_Type)(enum QAPI_ListSubType, const char *, QAPI_Output *, void *context ); /*! \typedef QAPI_Create_Type \brief Function type declaration for QAPI_Create */ typedef QAPI_Status (*QAPI_Create_Type)(enum QAPI_CreateSubType, const char *, QAPI_Output *, void *context ); /*! \typedef QAPI_Delete_Type \brief Function type declaration for QAPI_Delete */ typedef QAPI_Status (*QAPI_Delete_Type)(enum QAPI_DeleteSubType, const char *, QAPI_Output *, void *context ); /*! \typedef QAPI_Modify_Type \brief Function type declaration for QAPI_Delete */ typedef QAPI_Status (*QAPI_Modify_Type)(enum QAPI_ModifySubType, const char *, QAPI_Output *, void *context ); /*! \typedef QAPI_Info_Type \brief Function type declaration for QAPI_Delete */ typedef QAPI_Status (*QAPI_Info_Type)(enum QAPI_InfoSubType, const char *, QAPI_Output *, void *context ); /*! \typedef QAPILibrary_Type \brief Function type declaration for QAPI_Delete */ typedef QAPI_Status (*QAPI_Library_Type)(enum QAPI_LibrarySubType, const char *, QAPI_Output *, void *context ); /*! \typedef QAPI_Media_Type \brief Function type declaration for QAPI_Media */ typedef QAPI_Status (*QAPI_Media_Type)(enum QAPI_MediaSubType, const char *, QAPI_Output *, void *context ); /*! \typedef QAPI_Drive_Type \brief Function type declaration for QAPI_Delete */ typedef QAPI_Status (*QAPI_Drive_Type)(enum QAPI_DriveSubType, const char *, QAPI_Output *, void *context ); /*! \typedef QAPI_Logout_Type \brief Function type declaration for QAPI_Logout */ typedef QAPI_Status (*QAPI_Logout_Type)(const char *, QAPI_Output *, void *context ); /*! \typedef QAPI_Exit_Type \brief Function type declaration for QAPI_Exit */ typedef QAPI_Status (*QAPI_Exit_Type)(); #ifdef __cplusplus } #endif #endif // __QAPI_H__