00001
00021 #ifndef CP1616_IO_DEVICE_CALLBACKS_H
00022 #define CP1616_IO_DEVICE_CALLBACKS_H
00023
00024 namespace cp1616
00025 {
00026 namespace pnio_device_callbacks
00027 {
00028
00039 PNIO_IOXS dataWrite(
00040 PNIO_UINT32 dev_handle,
00041 PNIO_DEV_ADDR *p_addr,
00042 PNIO_UINT32 buffer_length,
00043 PNIO_UINT8 *p_buffer,
00044 PNIO_IOXS io_consumer_status);
00045
00056 PNIO_IOXS dataRead(
00057 PNIO_UINT32 dev_handle,
00058 PNIO_DEV_ADDR *p_addr,
00059 PNIO_UINT32 buffer_length,
00060 PNIO_UINT8 *p_buffer,
00061 PNIO_IOXS io_provider_status);
00062
00079 void recordRead(
00080 PNIO_UINT32 dev_handle,
00081 PNIO_UINT32 api,
00082 PNIO_UINT16 ar_number,
00083 PNIO_UINT16 sessi,
00084 PNIO_UINT32 sequence_number,
00085 PNIO_DEV_ADDR *p_addr,
00086 PNIO_UINT32 record_index,
00087 PNIO_UINT32 *p_buffer_length,
00088 PNIO_UINT8 *p_buffer,
00089 PNIO_ERR_STAT *p_pnio_state);
00090
00107 void recordWrite(
00108 PNIO_UINT32 dev_handle,
00109 PNIO_UINT32 api,
00110 PNIO_UINT16 ar_number,
00111 PNIO_UINT16 sessi,
00112 PNIO_UINT32 sequence_number,
00113 PNIO_DEV_ADDR *p_addr,
00114 PNIO_UINT32 record_index,
00115 PNIO_UINT32 *p_buffer_length,
00116 PNIO_UINT8 *p_buffer,
00117 PNIO_ERR_STAT *p_pnio_state);
00118
00135 void checkIndication(
00136 PNIO_UINT32 dev_handle,
00137 PNIO_UINT32 api,
00138 PNIO_UINT16 ar_number,
00139 PNIO_UINT16 session_key,
00140 PNIO_DEV_ADDR *p_addr,
00141 PNIO_UINT32 *p_mod_ident,
00142 PNIO_UINT16 *p_mod_state,
00143 PNIO_UINT32 *p_sub_ident,
00144 PNIO_UINT16 *p_sub_state);
00145
00164 void arCheckIndication(
00165 PNIO_UINT32 dev_handle,
00166 PNIO_UINT32 host_ip,
00167 PNIO_UINT16 ar_type,
00168 PNIO_UUID_TYPE ar_uuid,
00169 PNIO_UINT32 ar_properties,
00170 PNIO_UUID_TYPE cmi_obj_uuid,
00171 PNIO_UINT16 cmi_station_name_length,
00172 PNIO_UINT8 *p_cmi_station_name,
00173 PNIO_AR_TYPE *p_ar);
00174
00187 void arInfoIndication(
00188 PNIO_UINT32 dev_handle,
00189 PNIO_UINT16 ar_number,
00190 PNIO_UINT16 session_key,
00191 PNIO_AR_TYPE *p_ar);
00192
00202 void arIndataIndication(
00203 PNIO_UINT32 dev_handle,
00204 PNIO_UINT16 ar_number,
00205 PNIO_UINT16 session_key);
00206
00217 void arAbortIndication(
00218 PNIO_UINT32 dev_handle,
00219 PNIO_UINT16 ar_number,
00220 PNIO_UINT16 session_key,
00221 PNIO_AR_REASON reason_code);
00222
00233 void arOfflineIndication(
00234 PNIO_UINT32 dev_handle,
00235 PNIO_UINT16 ar_number,
00236 PNIO_UINT16 session_key,
00237 PNIO_AR_REASON reason_code);
00238
00250 void prmEndIndication(
00251 PNIO_UINT32 dev_handle,
00252 PNIO_UINT16 ar_number,
00253 PNIO_UINT16 session_key,
00254 PNIO_UINT32 api,
00255 PNIO_UINT16 slot_number,
00256 PNIO_UINT16 subslot_number);
00257
00264 void cpStopRequest(
00265 PNIO_UINT32 dev_handle);
00266
00272 void deviceStopped(
00273 PNIO_UINT32 dev_handle,
00274 PNIO_UINT32 reserved);
00275
00284 void requestDone(
00285 PNIO_UINT32 dev_handle,
00286 PNIO_UINT32 user_handle,
00287 PNIO_UINT32 status,
00288 PNIO_ERR_STAT *p_pnio_state);
00289
00298 void apduStatusIndication(
00299 PNIO_UINT32 dev_handle,
00300 PNIO_UINT16 ar_number,
00301 PNIO_UINT16 session_key,
00302 PNIO_APDU_STATUS_IND apdu_status);
00303
00307 static const int MAX_AR_INFO_COUNT = 500;
00308
00309 }
00310 }
00311
00312 #endif //CP1616_IO_DEVICE_CALLBACKS_H