summaryrefslogtreecommitdiff
path: root/include/NFCTerminal.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/NFCTerminal.h')
-rw-r--r--include/NFCTerminal.h70
1 files changed, 70 insertions, 0 deletions
diff --git a/include/NFCTerminal.h b/include/NFCTerminal.h
new file mode 100644
index 0000000..0764797
--- /dev/null
+++ b/include/NFCTerminal.h
@@ -0,0 +1,70 @@
+/*
+* Copyright (c) 2012 Samsung Electronics Co., Ltd All Rights Reserved
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+* http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*/
+
+
+#ifndef NFCTERMINAL_H_
+#define NFCTERMINAL_H_
+
+/* standard library header */
+
+/* SLP library header */
+#include "net_nfc_typedef.h"
+
+/* local header */
+#include "Terminal.h"
+#include "Lock.h"
+
+namespace smartcard_service_api
+{
+ class NFCTerminal: public Terminal
+ {
+ private:
+ PMutex mutex;
+ net_nfc_target_handle_h seHandle;
+ bool closed;
+ /* temporary data for sync function */
+ ByteArray response;
+ int error;
+
+ NFCTerminal();
+ ~NFCTerminal();
+
+ static void nfcResponseCallback(net_nfc_message_e message, net_nfc_error_e result, void *data , void *userContext, void *transData);
+
+ public:
+
+ static NFCTerminal *getInstance();
+
+ bool initialize();
+ void finalize();
+
+ bool open();
+ bool isClosed();
+ void close();
+
+ bool isSecureElementPresence();
+
+ int transmitSync(ByteArray command, ByteArray &response);
+ int getATRSync(ByteArray &atr);
+
+ int transmit(ByteArray command, terminalTransmitCallback callback, void *userParam) { return -1; };
+ int getATR(terminalGetATRCallback callback, void *userParam) { return -1; }
+
+ friend void nfcResponseCallback(net_nfc_message_e message, net_nfc_error_e result, void *data , void *userContext, void *transData);
+ };
+
+} /* namespace smartcard_service_api */
+#endif /* NFCTERMINAL_H_ */