2 * Copyright (c) 2011 Samsung Electronics Co., Ltd All Rights Reserved
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
18 #ifndef WRTPLUGINS_API_NFCFACTORY_H_
19 #define WRTPLUGINS_API_NFCFACTORY_H_
21 #include <dpl/noncopyable.h>
22 #include "INFCManager.h"
23 #include "INdefMessage.h"
24 #include "INdefRecord.h"
26 #include "INFCTagMifareClassic.h"
27 #include "INFCTagMifareUltra.h"
28 #include "INFCTarget.h"
34 class NFCFactory : DPL::Noncopyable
38 * Private constructor to provide singleton
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();
63 #endif //WRTPLUGINS_API_NFCFACTORY_H_