void PopSession::CommandFailed(Command* command, MailError::ErrorCode errCode, const std::exception& exc, bool logErrorToAccount) { if (logErrorToAccount) { PersistFailure(errCode, exc.what()); } if (errCode == MailError::INTERNAL_ERROR) { // TODO: write internal error to RDX report } CommandComplete(command); }
void LocalDeviceImpl::HandleEvent(struct hci_event_header* event) { /* printf("### Incoming event: len = %d\n", event->elen); for (int16 index = 0; index < event->elen + 2; index++) { printf("%x:", ((uint8*)event)[index]); } printf("### \n"); */ BMessage* request = NULL; int32 eventIndexLocation; // Check if it is a requested one switch (event->ecode) { case HCI_EVENT_CMD_COMPLETE: { struct hci_ev_cmd_complete* commandComplete = JumpEventHeader<struct hci_ev_cmd_complete>(event); TRACE_BT("LocalDeviceImpl: Incoming CommandComplete(%d) for %s\n", commandComplete->ncmd, BluetoothCommandOpcode(commandComplete->opcode)); request = FindPetition(event->ecode, commandComplete->opcode, &eventIndexLocation); if (request != NULL) CommandComplete(commandComplete, request, eventIndexLocation); break; } case HCI_EVENT_CMD_STATUS: { struct hci_ev_cmd_status* commandStatus = JumpEventHeader<struct hci_ev_cmd_status>(event); TRACE_BT("LocalDeviceImpl: Incoming CommandStatus(%d)(%s) for %s\n", commandStatus->ncmd, BluetoothError(commandStatus->status), BluetoothCommandOpcode(commandStatus->opcode)); request = FindPetition(event->ecode, commandStatus->opcode, &eventIndexLocation); if (request != NULL) CommandStatus(commandStatus, request, eventIndexLocation); break; } default: TRACE_BT("LocalDeviceImpl: Incoming %s event\n", BluetoothEvent(event->ecode)); request = FindPetition(event->ecode); if (request != NULL) HandleExpectedRequest(event, request); break; } if (request == NULL) { TRACE_BT("LocalDeviceImpl: Event %s could not be understood or delivered\n", BluetoothEvent(event->ecode)); HandleUnexpectedEvent(event); } }
OSCL_EXPORT_REF void PVMFSMFSPBaseNode::CPMCommandCompleted(const PVMFCmdResp& aResponse) { PVMF_SM_FSP_BASE_LOGSTACKTRACE((0, "PVMFSMFSPBaseNode::CPMCommandCompleted() In")); PVMFCommandId id = aResponse.GetCmdId(); PVMFStatus status = CheckCPMCommandCompleteStatus(id, aResponse.GetCmdStatus()); /* * if there was any pending cancel, we just ignore CPM process. */ if (iCurrentCommand.empty() && iCurrErrHandlingCommand.empty()) { return; } if (!iCancelCommand.empty()) { return; } if (status != PVMFSuccess) { if (id == iCPMRequestUsageId) { /* * Only when PVMFErrDrmLicenseNotFound is replied for license authentication, * Set iCPMInitPending into true. */ if (aResponse.GetCmdStatus() == PVMFErrDrmLicenseNotFound || aResponse.GetCmdStatus() == PVMFErrDrmLicenseExpired) iCPMInitPending = true; } CommandComplete(iCurrentCommand, iCurrentCommand.front(), aResponse.GetCmdStatus(), NULL, NULL, NULL, aResponse.GetEventExtensionInterface()); } else { /* * process the response, and issue the next command in * the sequence. */ if (id == iCPMInitCmdId) { OpenCPMSession(); } else if (id == iCPMOpenSessionCmdId) { CPMRegisterContent(); } else if (id == iCPMRegisterContentCmdId) { GetCPMCapConfigInterface(); } else if (id == iCPMGetCapConfigCmdId) { iCPMCapConfigInterface = OSCL_STATIC_CAST(PvmiCapabilityAndConfig*, iCPMCapConfigInterfacePVI); iCPMCapConfigInterfacePVI = NULL; // got capConfig interface, set kvps for CPM plugins if (!SetCPMKvps()) return; GetCPMLicenseInterface(); } else if (id == iCPMGetLicenseInterfaceCmdId)