tizen 2.3.1 release
[framework/web/wearable/wrt-plugins-tizen.git] / src / SecureElement / SEChannel.h
1 //
2 // Tizen Web Device API
3 // Copyright (c) 2014 Samsung Electronics Co., Ltd.
4 //
5 // Licensed under the Apache License, Version 2.0 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 // http://www.apache.org/licenses/LICENSE-2.0
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an "AS IS" BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18 #ifndef __TIZEN_SECURE_ELEMENT_CHANNEL_H__
19 #define __TIZEN_SECURE_ELEMENT_CHANNEL_H__
20
21 #include <memory>
22 #include <Channel.h>
23 #include "SECallbackData.h"
24
25 #include <glib.h>
26
27 using namespace smartcard_service_api;
28
29 namespace DeviceAPI {
30 namespace SecureElement {
31
32 class SEChannel;
33 typedef std::shared_ptr<SEChannel> SEChannelPtr;
34
35 class SEChannel
36 {
37 public:
38     SEChannel(void* channel);
39     virtual ~SEChannel();
40
41     bool isBasicChannel() const;
42     void close();
43     void transmit(TransmitCallbackData* callback);
44     UCharVectorPtr getSelectResponse() const;
45
46 private:
47     Channel* m_channel;
48
49     static void* transmitThread(void* data);
50     static gboolean transmitCallback(void *data);
51
52 };
53
54 }
55 }
56
57 #endif /* __TIZEN_SECURE_ELEMENT_CHANNEL_H__ */