#ifndef ARC_SSH_H_ #define ARC_SSH_H_ #include "arc/std/string.h" #ifdef __cplusplus extern "C" { #endif /** * @brief ssh type that holds ssh connection along with credentials */ typedef struct ARC_Ssh ARC_Ssh; /** * @brief a ssh session function * * @param data user data that can be used within the callback */ typedef void (* ARC_Ssh_SessionFn)(void *data); /** * @brief creates ARC_Ssh type * * @param ssh ARC_Ssh to create */ void ARC_Ssh_Create(ARC_Ssh **ssh, char *host, char *user, char *password); /** * @brief destroyes ARC_Ssh type * * @param ssh ARC_Ssh to destroy */ void ARC_Ssh_Destroy(ARC_Ssh *ssh); /** * @brief runs a callback function within a ssh session * * @param ssh ARC_Ssh to create and run function in ssh session * @param sessionFN callback to run in a ssh session */ void ARC_Ssh_RunInSession(ARC_Ssh *ssh, ARC_Ssh_SessionFn sessionFn); /** * @brief */ void ARC_Ssh_ExecStrInNewSession(ARC_Ssh *ssh, char *command); /** * @brief */ ARC_String *ARC_Ssh_ExecStrInNewSessionAndGetResponse(ARC_Ssh *ssh, char *command); #ifdef __cplusplus } #endif #endif //!ARC_SSH_H_