mirror of
https://github.com/tuxbox-neutrino/neutrino.git
synced 2025-08-27 23:42:58 +02:00
eitd/xmlutil.cpp: split read events code
This commit is contained in:
@@ -285,47 +285,18 @@ void deleteOldfileEvents(const char *epgdir)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void *insertEventsfromFile(void * data)
|
bool readEventsFromFile(std::string &epgname, int &ev_count)
|
||||||
{
|
{
|
||||||
set_threadname(__func__);
|
|
||||||
reader_ready=false;
|
|
||||||
xmlDocPtr event_parser = NULL;
|
xmlDocPtr event_parser = NULL;
|
||||||
xmlNodePtr eventfile;
|
|
||||||
xmlNodePtr service;
|
xmlNodePtr service;
|
||||||
xmlNodePtr event;
|
xmlNodePtr event;
|
||||||
t_original_network_id onid = 0;
|
t_original_network_id onid = 0;
|
||||||
t_transport_stream_id tsid = 0;
|
t_transport_stream_id tsid = 0;
|
||||||
t_service_id sid = 0;
|
t_service_id sid = 0;
|
||||||
std::string indexname;
|
|
||||||
std::string filename;
|
|
||||||
std::string epgname;
|
|
||||||
int ev_count = 0;
|
|
||||||
char * epg_dir = (char *) data;
|
|
||||||
indexname = std::string(epg_dir) + "index.xml";
|
|
||||||
|
|
||||||
xmlDocPtr index_parser = parseXmlFile(indexname.c_str());
|
|
||||||
|
|
||||||
if (index_parser == NULL) {
|
|
||||||
reader_ready = true;
|
|
||||||
pthread_exit(NULL);
|
|
||||||
}
|
|
||||||
time_t now = time_monotonic_ms();
|
|
||||||
printdate_ms(stdout);
|
|
||||||
printf("[sectionsd] Reading Information from file %s:\n", indexname.c_str());
|
|
||||||
|
|
||||||
eventfile = xmlDocGetRootElement(index_parser);
|
|
||||||
eventfile = xmlChildrenNode(eventfile);
|
|
||||||
|
|
||||||
while (eventfile) {
|
|
||||||
const char * name = xmlGetAttribute(eventfile, "name");
|
|
||||||
if(name)
|
|
||||||
filename=name;
|
|
||||||
|
|
||||||
epgname = epg_dir + filename;
|
|
||||||
if (!(event_parser = parseXmlFile(epgname.c_str()))) {
|
if (!(event_parser = parseXmlFile(epgname.c_str()))) {
|
||||||
dprintf("unable to open %s for reading\n", epgname.c_str());
|
dprintf("unable to open %s for reading\n", epgname.c_str());
|
||||||
eventfile = xmlNextNode(eventfile);
|
return false;
|
||||||
continue;
|
|
||||||
}
|
}
|
||||||
service = xmlDocGetRootElement(event_parser);
|
service = xmlDocGetRootElement(event_parser);
|
||||||
service = xmlChildrenNode(service);
|
service = xmlChildrenNode(service);
|
||||||
@@ -467,6 +438,41 @@ void *insertEventsfromFile(void * data)
|
|||||||
service = xmlNextNode(service);
|
service = xmlNextNode(service);
|
||||||
}
|
}
|
||||||
xmlFreeDoc(event_parser);
|
xmlFreeDoc(event_parser);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
void *insertEventsfromFile(void * data)
|
||||||
|
{
|
||||||
|
set_threadname(__func__);
|
||||||
|
reader_ready=false;
|
||||||
|
std::string indexname;
|
||||||
|
std::string filename;
|
||||||
|
std::string epgname;
|
||||||
|
xmlNodePtr eventfile;
|
||||||
|
int ev_count = 0;
|
||||||
|
char * epg_dir = (char *) data;
|
||||||
|
indexname = std::string(epg_dir) + "index.xml";
|
||||||
|
|
||||||
|
xmlDocPtr index_parser = parseXmlFile(indexname.c_str());
|
||||||
|
|
||||||
|
if (index_parser == NULL) {
|
||||||
|
reader_ready = true;
|
||||||
|
pthread_exit(NULL);
|
||||||
|
}
|
||||||
|
time_t now = time_monotonic_ms();
|
||||||
|
printdate_ms(stdout);
|
||||||
|
printf("[sectionsd] Reading Information from file %s:\n", indexname.c_str());
|
||||||
|
|
||||||
|
eventfile = xmlDocGetRootElement(index_parser);
|
||||||
|
eventfile = xmlChildrenNode(eventfile);
|
||||||
|
|
||||||
|
while (eventfile) {
|
||||||
|
const char * name = xmlGetAttribute(eventfile, "name");
|
||||||
|
if(name)
|
||||||
|
filename=name;
|
||||||
|
|
||||||
|
epgname = epg_dir + filename;
|
||||||
|
readEventsFromFile(epgname, ev_count);
|
||||||
|
|
||||||
eventfile = xmlNextNode(eventfile);
|
eventfile = xmlNextNode(eventfile);
|
||||||
}
|
}
|
||||||
|
@@ -35,6 +35,7 @@
|
|||||||
#include <zapit/types.h>
|
#include <zapit/types.h>
|
||||||
|
|
||||||
void *insertEventsfromFile(void * data);
|
void *insertEventsfromFile(void * data);
|
||||||
|
bool readEventsFromFile(std::string &epgname, int &ev_count);
|
||||||
void writeEventsToFile(const char *epgdir);
|
void writeEventsToFile(const char *epgdir);
|
||||||
|
|
||||||
bool readEPGFilter(void);
|
bool readEPGFilter(void);
|
||||||
|
Reference in New Issue
Block a user