6eed2b01ba40085634f522c21488fcb6452425ff
[profile/ivi/wrt-plugins-tizen.git] / src / platform / API / NFC / NFCFactory.h
1 /*
2  * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the License);
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an AS IS BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17
18 #ifndef WRTPLUGINS_API_NFCFACTORY_H_
19 #define WRTPLUGINS_API_NFCFACTORY_H_
20
21 #include <dpl/noncopyable.h>
22 #include "INFCManager.h"
23 #include "INdefMessage.h"
24 #include "INdefRecord.h"
25 #include "INFCTag.h"
26 #include "INFCTagMifareClassic.h"
27 #include "INFCTagMifareUltra.h"
28 #include "INFCTarget.h"
29
30 namespace TizenApis {
31 namespace Api {
32 namespace NFC {
33
34 class NFCFactory : DPL::Noncopyable
35 {
36 private:
37     /**
38      * Private constructor to provide singleton
39      */
40     NFCFactory(){;}
41 public:
42         INFCManagerPtr createNFCManagerObject();
43         INdefMessagePtr createNDEFMessageObject();
44         INdefMessagePtr createNDEFMessageObject(void *messageHandle);
45         INdefMessagePtr createNDEFMessageObject(std::vector<void *> ndefRcords);
46         INdefMessagePtr createNDEFMessageObject(std::vector<unsigned char> rawdata);
47         INdefRecordPtr createNDEFRecordObject(const NdefRecordProperties &ndefRecordProperties, std::vector<unsigned char> payload);
48         INdefRecordPtr createNDEFRecordObject(const std::string &text, const std::string &langCode, const short encodeType);
49         INdefRecordPtr createNDEFRecordObject(const std::string &uri);
50         INdefRecordPtr createNDEFRecordObject(const std::string &mimeType, const std::vector<unsigned char> data);
51         INFCTagPtr createNFCTagObject(void *tagHandle);
52         INFCTagMifareClassicPtr createNFCTagMifareClassicObject(void *tagHandle);
53         INFCTagMifareUltraPtr createNFCTagMifareUltraObject(void *tagHandle);
54         INFCTargetPtr createNFCTargetObject(void *targetHandle);
55         static NFCFactory& getInstance();
56
57 };
58
59 }
60 }
61 }
62
63 #endif //WRTPLUGINS_API_NFCFACTORY_H_
64