// This is a generated source file for Chilkat version 11.5.0
#ifndef _C_CkSshTunnel_H
#define _C_CkSshTunnel_H
#include "chilkatDefs.h"
#include "ck_inttypes.h"
#include "Chilkat_C.h"


CK_C_VISIBLE_PUBLIC void CkSshTunnel_setAbortCheck(HCkSshTunnel cHandle, BOOL (*fnAbortCheck)(void));
CK_C_VISIBLE_PUBLIC void CkSshTunnel_setPercentDone(HCkSshTunnel cHandle, BOOL (*fnPercentDone)(int pctDone));
CK_C_VISIBLE_PUBLIC void CkSshTunnel_setProgressInfo(HCkSshTunnel cHandle, void (*fnProgressInfo)(const char *name, const char *value));
CK_C_VISIBLE_PUBLIC void CkSshTunnel_setTaskCompleted(HCkSshTunnel cHandle, void (*fnTaskCompleted)(HCkTask hTask));

CK_C_VISIBLE_PUBLIC void CkSshTunnel_setAbortCheck2(HCkSshTunnel cHandle, BOOL (*fnAbortCheck2)(void *pContext));
CK_C_VISIBLE_PUBLIC void CkSshTunnel_setPercentDone2(HCkSshTunnel cHandle, BOOL (*fnPercentDone2)(int pctDone, void *pContext));
CK_C_VISIBLE_PUBLIC void CkSshTunnel_setProgressInfo2(HCkSshTunnel cHandle, void (*fnProgressInfo2)(const char *name, const char *value, void *pContext));
CK_C_VISIBLE_PUBLIC void CkSshTunnel_setTaskCompleted2(HCkSshTunnel cHandle, void (*fnTaskCompleted2)(HCkTask hTask, void *pContext));

// setExternalProgress is for C callback functions defined in the external programming language (such as Go)
CK_C_VISIBLE_PUBLIC void CkSshTunnel_setExternalProgress(HCkSshTunnel cHandle, BOOL on);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_setCallbackContext(HCkSshTunnel cHandle, void *pContext);

CK_C_VISIBLE_PUBLIC HCkSshTunnel CkSshTunnel_Create(void);
CK_C_VISIBLE_PUBLIC HCkSshTunnel CkSshTunnel_Create2(int progLang);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_Dispose(HCkSshTunnel handle);
CK_C_VISIBLE_PUBLIC BOOL CkSshTunnel_getAbortCurrent(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putAbortCurrent(HCkSshTunnel cHandle, BOOL newVal);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_getAcceptLog(HCkSshTunnel cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putAcceptLog(HCkSshTunnel cHandle, const char *newVal);
CK_C_VISIBLE_PUBLIC const char *CkSshTunnel_acceptLog(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_getAcceptLogPath(HCkSshTunnel cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putAcceptLogPath(HCkSshTunnel cHandle, const char *newVal);
CK_C_VISIBLE_PUBLIC const char *CkSshTunnel_acceptLogPath(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_getClientIdentifier(HCkSshTunnel cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putClientIdentifier(HCkSshTunnel cHandle, const char *newVal);
CK_C_VISIBLE_PUBLIC const char *CkSshTunnel_clientIdentifier(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_getClientLogDir(HCkSshTunnel cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putClientLogDir(HCkSshTunnel cHandle, const char *newVal);
CK_C_VISIBLE_PUBLIC const char *CkSshTunnel_clientLogDir(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC int CkSshTunnel_getConnectTimeoutMs(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putConnectTimeoutMs(HCkSshTunnel cHandle, int newVal);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_getDebugLogFilePath(HCkSshTunnel cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putDebugLogFilePath(HCkSshTunnel cHandle, const char *newVal);
CK_C_VISIBLE_PUBLIC const char *CkSshTunnel_debugLogFilePath(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_getDestHostname(HCkSshTunnel cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putDestHostname(HCkSshTunnel cHandle, const char *newVal);
CK_C_VISIBLE_PUBLIC const char *CkSshTunnel_destHostname(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC int CkSshTunnel_getDestPort(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putDestPort(HCkSshTunnel cHandle, int newVal);
CK_C_VISIBLE_PUBLIC BOOL CkSshTunnel_getDynamicPortForwarding(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putDynamicPortForwarding(HCkSshTunnel cHandle, BOOL newVal);
CK_C_VISIBLE_PUBLIC BOOL CkSshTunnel_getEnableSecrets(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putEnableSecrets(HCkSshTunnel cHandle, BOOL newVal);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_getHostKeyFingerprint(HCkSshTunnel cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkSshTunnel_hostKeyFingerprint(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_getHttpProxyAuthMethod(HCkSshTunnel cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putHttpProxyAuthMethod(HCkSshTunnel cHandle, const char *newVal);
CK_C_VISIBLE_PUBLIC const char *CkSshTunnel_httpProxyAuthMethod(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_getHttpProxyDomain(HCkSshTunnel cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putHttpProxyDomain(HCkSshTunnel cHandle, const char *newVal);
CK_C_VISIBLE_PUBLIC const char *CkSshTunnel_httpProxyDomain(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_getHttpProxyHostname(HCkSshTunnel cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putHttpProxyHostname(HCkSshTunnel cHandle, const char *newVal);
CK_C_VISIBLE_PUBLIC const char *CkSshTunnel_httpProxyHostname(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_getHttpProxyPassword(HCkSshTunnel cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putHttpProxyPassword(HCkSshTunnel cHandle, const char *newVal);
CK_C_VISIBLE_PUBLIC const char *CkSshTunnel_httpProxyPassword(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC int CkSshTunnel_getHttpProxyPort(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putHttpProxyPort(HCkSshTunnel cHandle, int newVal);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_getHttpProxyUsername(HCkSshTunnel cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putHttpProxyUsername(HCkSshTunnel cHandle, const char *newVal);
CK_C_VISIBLE_PUBLIC const char *CkSshTunnel_httpProxyUsername(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC int CkSshTunnel_getIdleTimeoutMs(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putIdleTimeoutMs(HCkSshTunnel cHandle, int newVal);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_getInboundSocksPassword(HCkSshTunnel cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putInboundSocksPassword(HCkSshTunnel cHandle, const char *newVal);
CK_C_VISIBLE_PUBLIC const char *CkSshTunnel_inboundSocksPassword(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_getInboundSocksUsername(HCkSshTunnel cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putInboundSocksUsername(HCkSshTunnel cHandle, const char *newVal);
CK_C_VISIBLE_PUBLIC const char *CkSshTunnel_inboundSocksUsername(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkSshTunnel_getIsAccepting(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkSshTunnel_getKeepAcceptLog(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putKeepAcceptLog(HCkSshTunnel cHandle, BOOL newVal);
CK_C_VISIBLE_PUBLIC BOOL CkSshTunnel_getKeepTunnelLog(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putKeepTunnelLog(HCkSshTunnel cHandle, BOOL newVal);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_getLastErrorHtml(HCkSshTunnel cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkSshTunnel_lastErrorHtml(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_getLastErrorText(HCkSshTunnel cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkSshTunnel_lastErrorText(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_getLastErrorXml(HCkSshTunnel cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkSshTunnel_lastErrorXml(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkSshTunnel_getLastMethodSuccess(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putLastMethodSuccess(HCkSshTunnel cHandle, BOOL newVal);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_getListenBindIpAddress(HCkSshTunnel cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putListenBindIpAddress(HCkSshTunnel cHandle, const char *newVal);
CK_C_VISIBLE_PUBLIC const char *CkSshTunnel_listenBindIpAddress(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC int CkSshTunnel_getListenPort(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_getOutboundBindIpAddress(HCkSshTunnel cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putOutboundBindIpAddress(HCkSshTunnel cHandle, const char *newVal);
CK_C_VISIBLE_PUBLIC const char *CkSshTunnel_outboundBindIpAddress(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC int CkSshTunnel_getOutboundBindPort(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putOutboundBindPort(HCkSshTunnel cHandle, int newVal);
CK_C_VISIBLE_PUBLIC BOOL CkSshTunnel_getPreferIpv6(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putPreferIpv6(HCkSshTunnel cHandle, BOOL newVal);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_getSocksHostname(HCkSshTunnel cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putSocksHostname(HCkSshTunnel cHandle, const char *newVal);
CK_C_VISIBLE_PUBLIC const char *CkSshTunnel_socksHostname(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_getSocksPassword(HCkSshTunnel cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putSocksPassword(HCkSshTunnel cHandle, const char *newVal);
CK_C_VISIBLE_PUBLIC const char *CkSshTunnel_socksPassword(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC int CkSshTunnel_getSocksPort(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putSocksPort(HCkSshTunnel cHandle, int newVal);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_getSocksUsername(HCkSshTunnel cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putSocksUsername(HCkSshTunnel cHandle, const char *newVal);
CK_C_VISIBLE_PUBLIC const char *CkSshTunnel_socksUsername(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC int CkSshTunnel_getSocksVersion(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putSocksVersion(HCkSshTunnel cHandle, int newVal);
CK_C_VISIBLE_PUBLIC int CkSshTunnel_getSoRcvBuf(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putSoRcvBuf(HCkSshTunnel cHandle, int newVal);
CK_C_VISIBLE_PUBLIC int CkSshTunnel_getSoSndBuf(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putSoSndBuf(HCkSshTunnel cHandle, int newVal);
CK_C_VISIBLE_PUBLIC BOOL CkSshTunnel_getTcpNoDelay(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putTcpNoDelay(HCkSshTunnel cHandle, BOOL newVal);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_getTunnelLog(HCkSshTunnel cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putTunnelLog(HCkSshTunnel cHandle, const char *newVal);
CK_C_VISIBLE_PUBLIC const char *CkSshTunnel_tunnelLog(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_getTunnelLogPath(HCkSshTunnel cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putTunnelLogPath(HCkSshTunnel cHandle, const char *newVal);
CK_C_VISIBLE_PUBLIC const char *CkSshTunnel_tunnelLogPath(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_getUncommonOptions(HCkSshTunnel cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putUncommonOptions(HCkSshTunnel cHandle, const char *newVal);
CK_C_VISIBLE_PUBLIC const char *CkSshTunnel_uncommonOptions(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkSshTunnel_getUtf8(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putUtf8(HCkSshTunnel cHandle, BOOL newVal);
CK_C_VISIBLE_PUBLIC BOOL CkSshTunnel_getVerboseLogging(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_putVerboseLogging(HCkSshTunnel cHandle, BOOL newVal);
CK_C_VISIBLE_PUBLIC void CkSshTunnel_getVersion(HCkSshTunnel cHandle, HCkString retval);
CK_C_VISIBLE_PUBLIC const char *CkSshTunnel_version(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkSshTunnel_AuthenticatePk(HCkSshTunnel cHandle, const char *username, HCkSshKey privateKey);
CK_C_VISIBLE_PUBLIC HCkTask CkSshTunnel_AuthenticatePkAsync(HCkSshTunnel cHandle, const char *username, HCkSshKey privateKey);
CK_C_VISIBLE_PUBLIC BOOL CkSshTunnel_AuthenticatePw(HCkSshTunnel cHandle, const char *login, const char *password);
CK_C_VISIBLE_PUBLIC HCkTask CkSshTunnel_AuthenticatePwAsync(HCkSshTunnel cHandle, const char *login, const char *password);
CK_C_VISIBLE_PUBLIC BOOL CkSshTunnel_AuthenticatePwPk(HCkSshTunnel cHandle, const char *username, const char *password, HCkSshKey privateKey);
CK_C_VISIBLE_PUBLIC HCkTask CkSshTunnel_AuthenticatePwPkAsync(HCkSshTunnel cHandle, const char *username, const char *password, HCkSshKey privateKey);
CK_C_VISIBLE_PUBLIC BOOL CkSshTunnel_AuthenticateSecPw(HCkSshTunnel cHandle, HCkSecureString login, HCkSecureString password);
CK_C_VISIBLE_PUBLIC HCkTask CkSshTunnel_AuthenticateSecPwAsync(HCkSshTunnel cHandle, HCkSecureString login, HCkSecureString password);
CK_C_VISIBLE_PUBLIC BOOL CkSshTunnel_AuthenticateSecPwPk(HCkSshTunnel cHandle, HCkSecureString username, HCkSecureString password, HCkSshKey privateKey);
CK_C_VISIBLE_PUBLIC HCkTask CkSshTunnel_AuthenticateSecPwPkAsync(HCkSshTunnel cHandle, HCkSecureString username, HCkSecureString password, HCkSshKey privateKey);
CK_C_VISIBLE_PUBLIC BOOL CkSshTunnel_BeginAccepting(HCkSshTunnel cHandle, int listenPort);
CK_C_VISIBLE_PUBLIC HCkTask CkSshTunnel_BeginAcceptingAsync(HCkSshTunnel cHandle, int listenPort);
CK_C_VISIBLE_PUBLIC BOOL CkSshTunnel_CloseTunnel(HCkSshTunnel cHandle, BOOL waitForThreads);
CK_C_VISIBLE_PUBLIC BOOL CkSshTunnel_Connect(HCkSshTunnel cHandle, const char *hostname, int port);
CK_C_VISIBLE_PUBLIC HCkTask CkSshTunnel_ConnectAsync(HCkSshTunnel cHandle, const char *hostname, int port);
CK_C_VISIBLE_PUBLIC BOOL CkSshTunnel_ConnectThroughSsh(HCkSshTunnel cHandle, HCkSsh ssh, const char *hostname, int port);
CK_C_VISIBLE_PUBLIC HCkTask CkSshTunnel_ConnectThroughSshAsync(HCkSshTunnel cHandle, HCkSsh ssh, const char *hostname, int port);
CK_C_VISIBLE_PUBLIC BOOL CkSshTunnel_ContinueKeyboardAuth(HCkSshTunnel cHandle, const char *response, HCkString outStr);
CK_C_VISIBLE_PUBLIC const char *CkSshTunnel_continueKeyboardAuth(HCkSshTunnel cHandle, const char *response);
CK_C_VISIBLE_PUBLIC HCkTask CkSshTunnel_ContinueKeyboardAuthAsync(HCkSshTunnel cHandle, const char *response);
CK_C_VISIBLE_PUBLIC BOOL CkSshTunnel_DisconnectAllClients(HCkSshTunnel cHandle, BOOL waitForThreads);
CK_C_VISIBLE_PUBLIC BOOL CkSshTunnel_GetCurrentState(HCkSshTunnel cHandle, HCkString outStr);
CK_C_VISIBLE_PUBLIC const char *CkSshTunnel_getCurrentState(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkSshTunnel_IsSshConnected(HCkSshTunnel cHandle);
CK_C_VISIBLE_PUBLIC BOOL CkSshTunnel_LoadTaskCaller(HCkSshTunnel cHandle, HCkTask task);
CK_C_VISIBLE_PUBLIC BOOL CkSshTunnel_SetAllowedAlgorithms(HCkSshTunnel cHandle, HCkJsonObject json);
CK_C_VISIBLE_PUBLIC BOOL CkSshTunnel_StartKeyboardAuth(HCkSshTunnel cHandle, const char *login, HCkString outStr);
CK_C_VISIBLE_PUBLIC const char *CkSshTunnel_startKeyboardAuth(HCkSshTunnel cHandle, const char *login);
CK_C_VISIBLE_PUBLIC HCkTask CkSshTunnel_StartKeyboardAuthAsync(HCkSshTunnel cHandle, const char *login);
CK_C_VISIBLE_PUBLIC BOOL CkSshTunnel_StopAccepting(HCkSshTunnel cHandle, BOOL waitForThread);
#endif
