diff --git a/src/eitd/SIevents.hpp b/src/eitd/SIevents.hpp index 81cc9605a..da7b75122 100644 --- a/src/eitd/SIevents.hpp +++ b/src/eitd/SIevents.hpp @@ -49,10 +49,6 @@ public: serviceId = 0; } - // Der Operator zum sortieren - bool operator < (const SIlinkage& l) const { - return name < l.name; - } void dump(void) const { printf("Linakge Type: 0x%02hhx\n", linkageType); @@ -71,8 +67,26 @@ public: // return 1; return 0; } - + // Der Operator zum sortieren + bool operator < (const SIlinkage& l) const { + return name < l.name; + } + bool operator==(const SIlinkage& s) const { + return (linkageType == s.linkageType) && + (transportStreamId == s.transportStreamId) && + (originalNetworkId == s.originalNetworkId) && + (serviceId == s.serviceId) && + (name == s.name); + } + bool operator!=(const SIlinkage& s) const { + return (linkageType != s.linkageType) || + (transportStreamId != s.transportStreamId) || + (originalNetworkId != s.originalNetworkId) || + (serviceId != s.serviceId) || + (name != s.name); + } }; +typedef std::vector SIlinkage_descs; // Fuer for_each struct printSIlinkage : public std::unary_function @@ -88,8 +102,6 @@ struct saveSIlinkageXML : public std::unary_function void operator() (const SIlinkage &l) { l.saveXML(f);} }; -typedef std::vector SIlinkage_descs; - class SIcomponent { public: @@ -103,10 +115,6 @@ class SIcomponent componentType=0; componentTag=0; } - // Der Operator zum sortieren - bool operator < (const SIcomponent& c) const { - return streamContent < c.streamContent; - } void dump(void) const { if(component.length()) printf("Component: %s\n", component.c_str()); @@ -120,6 +128,22 @@ class SIcomponent fprintf(file, "\"/>\n"); return 0; } + // Der Operator zum sortieren + bool operator < (const SIcomponent& c) const { + return streamContent < c.streamContent; + } + bool operator==(const SIcomponent& c) const { + return (componentType == c.componentType) && + (componentTag == c.componentTag) && + (streamContent == c.streamContent) && + (component == c.component); + } + bool operator!=(const SIcomponent& c) const { + return (componentType != c.componentType) || + (componentTag != c.componentTag) || + (streamContent != c.streamContent) || + (component != c.component); + } }; typedef std::multiset > SIcomponents; @@ -161,7 +185,16 @@ class SIparentalRating return 1; return 0; } + bool operator==(const SIparentalRating& p) const { + return (rating == p.rating) && + (countryCode == p.countryCode); + } + bool operator!=(const SIparentalRating& p) const { + return (rating != p.rating) || + (countryCode != p.countryCode); + } }; +typedef std::set > SIparentalRatings; // Fuer for_each struct printSIparentalRating : public std::unary_function @@ -177,8 +210,6 @@ struct saveSIparentalRatingXML : public std::unary_function > SIparentalRatings; - class SItime { public: time_t startzeit; // lokale Zeit, 0 -> time shifted (cinedoms) @@ -201,6 +232,14 @@ class SItime { fprintf(file, "\t\t\t