> For the complete documentation index, see [llms.txt](https://sandbox-docs.verifone.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sandbox-docs.verifone.com/adk-5.0-programmers-guide/_e_m_v___c_t___link_8h_source.md).

# EMV\_CT\_Link.h

[Go to the documentation of this file.](/adk-5.0-programmers-guide/readme/files/dir_f2a776acea245b054b8e462971041f2d/dir_a8473f4b62cdc0a6141a040fa4015132/dir_f787d7497684cf42d067468735e00a3d/dir_18e3d3062bbf485b8b342eb241e15d99/_e_m_v___c_t___link_8h.md)

```cpp
 1 /****************************************************************************
 2 * Product: ADK Cards Service - EMV Contact (CT)
 3 * Company: Verifone
 4 * Author: GSS R&D Germany
 5 * Content: Client interface - transport layer
 6 ****************************************************************************/
 7 
 8 #ifndef _EMV_CT_LINK_H_
 9 #define _EMV_CT_LINK_H_
 10 
 11 #include "emv/btlv.h"
 12 #include "emv/EMV_Common_Interface.h"
 13 
 14 #define DLL_CTL // NOTE: Do not set visibility("default") because export.map is used
 15 
 16 #ifdef __cplusplus
 17 extern "C" {
 18 #endif
 19 
 20 /*****************************************************************************
 21 * EMV_CT_CALLBACK_FnT
 22 *****************************************************************************/
 45 typedef void (* EMV_CT_CALLBACK_FnT) (unsigned char *pucSend, unsigned short sSendSize, unsigned char *pucReceive, unsigned short *psReceiveSize, void* externalData);
 46 
 47 /*****************************************************************************
 48 * EMV_CT_Interface
 49 *****************************************************************************/
 60 EMV_ADK_INFO EMV_CT_Interface(const unsigned char *dataIn, unsigned short dataInLen, unsigned char *dataOut, unsigned short *dataOutLen);
 61 
 62 /*****************************************************************************
 63 * EMV_CT_IF_Header
 64 *****************************************************************************/
 76 EMV_ADK_INFO EMV_CT_IF_Header(const unsigned char* header, const unsigned char *dataIn, unsigned short dataInLen, unsigned char *response, unsigned short *responseLen);
 77 
 78 /*****************************************************************************
 79 * EMV_CT_IF_BERTLV
 80 *****************************************************************************/
 90 EMV_ADK_INFO EMV_CT_IF_BERTLV(const unsigned char* header, const struct BTLVNode* dataIn, struct BTLVNode* dataOut);
 91 
 92 /*****************************************************************************
 93 * EMV_CT_Disconnect
 94 *****************************************************************************/
 107 void EMV_CT_Disconnect(void);
 108 
 109 /*****************************************************************************
 110 * EMV_CT_SetClientMode
 111 *****************************************************************************/
 122 void EMV_CT_SetClientMode(enum EMV_CLIENT_MODE mode);
 123 
 124 /*****************************************************************************
 125 * EMV_CT_GetClientMode
 126 *****************************************************************************/
 137 enum EMV_CLIENT_MODE EMV_CT_GetClientMode();
 138 
 139 /*****************************************************************************
 140 * EMV_CT_SetCallback
 141 *****************************************************************************/
 150 void EMV_CT_SetCallback(EMV_CT_CALLBACK_FnT EMV_Callback, void* context);
 151 
 152 /*****************************************************************************
 153 * EMV_CT_GetInitOptions
 154 *****************************************************************************/
 162 unsigned long EMV_CT_GetInitOptions(void);
 163 
 164 /*****************************************************************************
 165 * EMV_CT_getSdiSW12
 166 *****************************************************************************/
 175 unsigned EMV_CT_GetSdiSW12();
 176 
 177 #ifdef __cplusplus
 178 } // extern "C"
 179 #endif
 180 
 181 #endif // _EMV_CT_LINK_H_
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://sandbox-docs.verifone.com/adk-5.0-programmers-guide/_e_m_v___c_t___link_8h_source.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
