void PrintDeviceInfo(Device *dev, int indent) { string indentStr; GetIndentString(indent, indentStr); const char *devName = dev->getFriendlyName(); cout << indentStr << devName << endl; int i, n, j; ServiceList *serviceList = dev->getServiceList(); int serviceCnt = serviceList->size(); for (n=0; n<serviceCnt; n++) { Service *service = serviceList->getService(n); cout << indentStr << " service[" << n << "] = "<< service->getServiceType() << endl; ActionList *actionList = service->getActionList(); int actionCnt = actionList->size(); for (i=0; i<actionCnt; i++) { Action *action = actionList->getAction(i); cout << indentStr << " action[" << i << "] = "<< action->getName() << endl; ArgumentList *argList = action->getArgumentList(); int argCnt = argList->size(); for (j=0; j<argCnt; j++) { Argument *arg = argList->getArgument(j); cout << indentStr << " arg[" << j << "] = " << arg->getName() << "(" << arg->getDirection() << ")"; StateVariable *stateVar = arg->getRelatedStateVariable(); if (stateVar != NULL) cout << " - " << stateVar->getName(); cout << endl; } } ServiceStateTable *stateTable = service->getServiceStateTable(); int varCnt = stateTable->size(); for (i=0; i<varCnt; i++) { StateVariable *stateVar = stateTable->getStateVariable(i); cout << indentStr << " stateVar[" << i << "] = " << stateVar->getName() << endl; AllowedValueList *valueList = stateVar->getAllowedValueList(); int valueListCnt = valueList->size(); if (0 < valueListCnt) { for (j=0; j<valueListCnt; j++) cout << indentStr << " AllowedValueList[" << j << "] = " << valueList->getAllowedValue(j) << endl; } AllowedValueRange *valueRange = stateVar->getAllowedValueRange(); if (valueRange != NULL) { cout << indentStr << " AllowedRange[minimum] = " << valueRange->getMinimum() << endl; cout << indentStr << " AllowedRange[maximum] = " << valueRange->getMaximum() << endl; cout << indentStr << " AllowedRange[step] = " << valueRange->getStep() << endl; } } } }
void ControlPoint::unsubscribe(Device *device) { int n; ServiceList *serviceList = device->getServiceList(); int serviceCnt = serviceList->size(); for (n = 0; n < serviceCnt; n++) { Service *service = serviceList->getService(n); if (service->hasSID() == true) unsubscribe(service); } DeviceList *childDevList = device->getDeviceList(); int childDevCnt = childDevList->size(); for (n = 0; n < childDevCnt; n++) { Device *cdev = childDevList->getDevice(n); unsubscribe(cdev); } }
void ControlPoint::renewSubscriberService(Device *dev, long timeout) { int n; ServiceList *serviceList = dev->getServiceList(); int serviceCnt = serviceList->size(); for (n = 0; n < serviceCnt; n++) { Service *service = serviceList->getService(n); if (service->isSubscribed() == false) continue; const char *sid = service->getSID(); bool isRenewed = subscribe(service, sid, timeout); if (isRenewed == false) subscribe(service, timeout); } DeviceList *cdevList = dev->getDeviceList(); int cdevCnt = cdevList->size(); for (n = 0; n < cdevCnt; n++) { Device *cdev = cdevList->getDevice(n); renewSubscriberService(cdev, timeout); } }