bool Action::performActionListener(ActionRequest *actionReq) { ActionListener *listener = (ActionListener *)getActionListener(); if (listener == NULL) return false; ActionResponse actionRes; setStatus(UPnP::INVALID_ACTION); clearOutputAgumentValues(); if (listener->actionControlReceived(this) == true) { actionRes.setResponse(this); } else { UPnPStatus *upnpStatus = getStatus(); actionRes.setFaultResponse(upnpStatus->getCode(), upnpStatus->getDescription()); } if (Debug::isOn() == true) actionRes.print(); ControlRequest *ctrlReq = actionReq; ctrlReq->post(&actionRes); return true; }
bool StateVariable::performQueryListener(QueryRequest *queryReq) { QueryListener *listener = getQueryListener(); if (listener == NULL) return false; QueryResponse queryRes; StateVariable retVar; retVar.set(this); retVar.setValue(""); retVar.setStatus(UPnP::INVALID_VAR); if (listener->queryControlReceived(&retVar) == true) { queryRes.setResponse(&retVar); } else { UPnPStatus *upnpStatus = retVar.getStatus(); queryRes.setFaultResponse(upnpStatus->getCode(), upnpStatus->getDescription()); } HTTPRequest *httpReq = queryReq; httpReq->post(&queryRes); return true; }