android13/hardware/nxp/nfc/snxxx/halimpl/tml/NfccTransportFactory.cc

77 lines
2.6 KiB
C++

/******************************************************************************
*
* Copyright 2020 NXP
*
* 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.
*
******************************************************************************/
#include <NfccI2cTransport.h>
#include <NfccTransportFactory.h>
#include <phNxpLog.h>
/*******************************************************************************
**
** Function NfccTransportFactory
**
** Description Constructor for transportFactory. This will be private to
** support singleton
**
** Parameters none
**
** Returns none
******************************************************************************/
NfccTransportFactory::NfccTransportFactory() {}
/*******************************************************************************
**
** Function getTransport
**
** Description selects and returns transport channel based on the input
** parameter
**
** Parameters Required transport Type
**
** Returns Selected transport channel
******************************************************************************/
NfccTransportFactory& NfccTransportFactory::getInstance() {
static NfccTransportFactory mTransprtFactoryInstance;
return mTransprtFactoryInstance;
}
/*******************************************************************************
**
** Function getTransport
**
** Description selects and returns transport channel based on the input
** parameter
**
** Parameters Required transport Type
**
** Returns Selected transport channel
******************************************************************************/
spTransport NfccTransportFactory::getTransport(transportIntf transportType) {
NXPLOG_TML_D("%s Requested transportType: %d\n", __func__, transportType);
spTransport mspTransportInterface;
switch (transportType) {
case I2C:
case UNKNOWN:
mspTransportInterface = std::make_shared<NfccI2cTransport>();
break;
default:
mspTransportInterface = std::make_shared<NfccI2cTransport>();
break;
}
return mspTransportInterface;
}