void TimersResponder::showTimers(ostream& out, cxxtools::http::Request& request, cxxtools::http::Reply& reply) { QueryHandler q("/timers", request); TimerList* timerList; Timers.SetModified(); if ( q.isFormat(".json") ) { reply.addHeader("Content-Type", "application/json; charset=utf-8"); timerList = (TimerList*)new JsonTimerList(&out); } else if ( q.isFormat(".html") ) { reply.addHeader("Content-Type", "text/html; charset=utf-8"); timerList = (TimerList*)new HtmlTimerList(&out); } else if ( q.isFormat(".xml") ) { reply.addHeader("Content-Type", "text/xml; charset=utf-8"); timerList = (TimerList*)new XmlTimerList(&out); } else { reply.httpReturn(404, "Resources are not available for the selected format. (Use: .json, .html or .xml)"); return; } int start_filter = q.getOptionAsInt("start"); int limit_filter = q.getOptionAsInt("limit"); string timer_id = q.getParamAsString(0); if ( start_filter >= 0 && limit_filter >= 1 ) { timerList->activateLimit(start_filter, limit_filter); } timerList->init(); vector< cTimer* > timers = VdrExtension::SortedTimers(); for (int i=0;i<(int)timers.size();i++) { if ( VdrExtension::getTimerID(timers[i]) == timer_id || timer_id.length() == 0 ) { timerList->addTimer(timers[i]); } } timerList->setTotal((int)timers.size()); timerList->finish(); delete timerList; }
void TimersResponder::replyCreatedId(cTimer* timer, cxxtools::http::Request& request, cxxtools::http::Reply& reply, ostream& out) { QueryHandler q("/timers", request); TimerList* timerList; if ( q.isFormat(".html") ) { reply.addHeader("Content-Type", "text/html; charset=utf-8"); timerList = (TimerList*)new HtmlTimerList(&out); } else if ( q.isFormat(".xml") ) { reply.addHeader("Content-Type", "text/xml; charset=utf-8"); timerList = (TimerList*)new XmlTimerList(&out); } else { reply.addHeader("Content-Type", "application/json; charset=utf-8"); timerList = (TimerList*)new JsonTimerList(&out); } timerList->init(); timerList->addTimer(timer); timerList->setTotal(1); timerList->finish(); delete timerList; }