#ifndef _H_PCSCDEVICE
#define _H_PCSCDEVICE
#include <security_utilities/iodevices.h>
#include <security_utilities/refcount.h>
#if defined(__cplusplus)
namespace PCSCD {
class Device : public IOKit::Device, public RefCount
{
public:
Device(io_service_t d) : IOKit::Device(d) { }
virtual ~Device() throw();
bool operator < (const Device &other) const { return this->address() < other.address(); }
void setAddress(uint32_t address) { mAddress = address; }
void setInterfaceClass(uint32_t interfaceClass) { mInterfaceClass = interfaceClass; }
void setDeviceClass(uint32_t deviceClass) { mDeviceClass = deviceClass; }
void setVendorid(uint32_t vendorid) { mVendorid = vendorid; }
void setProductid(uint32_t productid) { mProductid = productid; }
void setPath(const std::string path) { mLibPath = path; }
void setName(const std::string name) { mName = name; }
void setIsPCCard(bool isPCCard) { mIsPCCard = isPCCard; }
uint32_t address() const { return mAddress; }
uint32_t interfaceClass() const { return mInterfaceClass; }
uint32_t deviceClass() const { return mDeviceClass; }
uint32_t vendorid() const { return mVendorid; }
uint32_t productid() const { return mProductid; }
std::string path() const { return mLibPath; }
std::string name() const { return mName; }
bool isPCCard() const { return mIsPCCard; }
std::string vendorName() const { return mVendorName; }
std::string productName() const { return mProductName; }
std::string serialNumber() const { return mSerialNumber; }
void setDebugParams(const std::string vendorName, const std::string productName,
const std::string serialNumber)
{ mVendorName = vendorName; mProductName = productName; mSerialNumber = serialNumber;}
void dump();
private:
uint32_t mAddress;
std::string mName; std::string mLibPath;
uint32_t mInterfaceClass; uint32_t mDeviceClass; uint32_t mVendorid;
uint32_t mProductid;
bool mIsPCCard;
std::string mVendorName, mProductName, mSerialNumber;
};
}
#endif
#endif // _H_PCSCDEVICE