| | |
| | | } |
| | | |
| | | FUNCTION_RETURN IdentificationStrategy::generate_pc_id(HwIdentifier& pc_id) const { |
| | | vector<array<uint8_t, HW_IDENTIFIER_PROPRIETARY_DATA>> data; |
| | | const vector<HwIdentifier> available_ids = alternative_ids(); |
| | | FUNCTION_RETURN result = FUNC_RET_NOT_AVAIL; |
| | | if (available_ids.size() > 0) { |
| | |
| | | case STRATEGY_IP_ADDRESS: |
| | | result = unique_ptr<IdentificationStrategy>(dynamic_cast<IdentificationStrategy*>(new Ethernet(true))); |
| | | break; |
| | | case STRATEGY_DISK_NUM: |
| | | result = unique_ptr<IdentificationStrategy>(dynamic_cast<IdentificationStrategy*>(new DiskStrategy(true))); |
| | | break; |
| | | case STRATEGY_DISK_LABEL: |
| | | result = unique_ptr<IdentificationStrategy>(dynamic_cast<IdentificationStrategy*>(new DiskStrategy(false))); |
| | | case STRATEGY_DISK: |
| | | result = unique_ptr<IdentificationStrategy>(dynamic_cast<IdentificationStrategy*>(new DiskStrategy())); |
| | | break; |
| | | default: |
| | | throw logic_error("strategy not supported"); |