| Index: compiled/FilterNotifier.h |
| diff --git a/compiled/FilterNotifier.h b/compiled/FilterNotifier.h |
| index bc670f2a967ec5a88fbd15891c81d0999a934c89..54d0aa6cfed1e1713576aca830a02736d8b39b3f 100644 |
| --- a/compiled/FilterNotifier.h |
| +++ b/compiled/FilterNotifier.h |
| @@ -30,7 +30,7 @@ class Subscription; |
| namespace FilterNotifier |
| { |
| - enum class Topic |
| + enum class Topic : int32_t |
| { |
| NONE, |
| FILTER_ADDED, |
| @@ -51,27 +51,44 @@ namespace FilterNotifier |
| SUBSCRIPTION_ERRORS, |
| }; |
| - inline void GenerateCustomBindings() |
| + template<typename T> |
| + inline T lexical_cast(Topic); |
| + |
| + template<> |
| + inline int32_t lexical_cast<int32_t>(Topic value) |
| { |
| - printf("var FilterNotifier = require('filterNotifier').FilterNotifier;\n"); |
| - printf("var notifierTopics = new Map([\n"); |
| - printf(" [%i, 'filter.added'],\n", Topic::FILTER_ADDED); |
| - printf(" [%i, 'filter.removed'],\n", Topic::FILTER_REMOVED); |
| - printf(" [%i, 'filter.disabled'],\n", Topic::FILTER_DISABLED); |
| - printf(" [%i, 'filter.hitCount'],\n", Topic::FILTER_HITCOUNT); |
| - printf(" [%i, 'filter.lastHit'],\n", Topic::FILTER_LASTHIT); |
| - printf(" [%i, 'subscription.added'],\n", Topic::SUBSCRIPTION_ADDED); |
| - printf(" [%i, 'subscription.removed'],\n", Topic::SUBSCRIPTION_REMOVED); |
| - printf(" [%i, 'subscription.moved'],\n", Topic::SUBSCRIPTION_MOVED); |
| - printf(" [%i, 'subscription.title'],\n", Topic::SUBSCRIPTION_TITLE); |
| - printf(" [%i, 'subscription.disabled'],\n", Topic::SUBSCRIPTION_DISABLED); |
| - printf(" [%i, 'subscription.fixedTitle'],\n", Topic::SUBSCRIPTION_FIXEDTITLE); |
| - printf(" [%i, 'subscription.homepage'],\n", Topic::SUBSCRIPTION_HOMEPAGE); |
| - printf(" [%i, 'subscription.lastCheck'],\n", Topic::SUBSCRIPTION_LASTCHECK); |
| - printf(" [%i, 'subscription.lastDownload'],\n", Topic::SUBSCRIPTION_LASTDOWNLOAD); |
| - printf(" [%i, 'subscription.downloadStatus'],\n", Topic::SUBSCRIPTION_DOWNLOADSTATUS); |
| - printf(" [%i, 'subscription.errors'],\n", Topic::SUBSCRIPTION_ERRORS); |
| - printf("]);"); |
| + return static_cast<int32_t>(value); |
| + } |
| + |
| + namespace GenerateCustomBindings |
| + { |
| + inline void printfTopic(const char* format, Topic topic) |
| + { |
| + ::printf(format, lexical_cast<int32_t>(topic)); |
| + } |
| + |
| + inline void Generate() |
| + { |
| + printf("var FilterNotifier = require('filterNotifier').FilterNotifier;\n"); |
| + printf("var notifierTopics = new Map([\n"); |
| + printfTopic(" [%i, 'filter.added'],\n", Topic::FILTER_ADDED); |
| + printfTopic(" [%i, 'filter.removed'],\n", Topic::FILTER_REMOVED); |
| + printfTopic(" [%i, 'filter.disabled'],\n", Topic::FILTER_DISABLED); |
| + printfTopic(" [%i, 'filter.hitCount'],\n", Topic::FILTER_HITCOUNT); |
| + printfTopic(" [%i, 'filter.lastHit'],\n", Topic::FILTER_LASTHIT); |
| + printfTopic(" [%i, 'subscription.added'],\n", Topic::SUBSCRIPTION_ADDED); |
| + printfTopic(" [%i, 'subscription.removed'],\n", Topic::SUBSCRIPTION_REMOVED); |
| + printfTopic(" [%i, 'subscription.moved'],\n", Topic::SUBSCRIPTION_MOVED); |
| + printfTopic(" [%i, 'subscription.title'],\n", Topic::SUBSCRIPTION_TITLE); |
| + printfTopic(" [%i, 'subscription.disabled'],\n", Topic::SUBSCRIPTION_DISABLED); |
| + printfTopic(" [%i, 'subscription.fixedTitle'],\n", Topic::SUBSCRIPTION_FIXEDTITLE); |
| + printfTopic(" [%i, 'subscription.homepage'],\n", Topic::SUBSCRIPTION_HOMEPAGE); |
| + printfTopic(" [%i, 'subscription.lastCheck'],\n", Topic::SUBSCRIPTION_LASTCHECK); |
| + printfTopic(" [%i, 'subscription.lastDownload'],\n", Topic::SUBSCRIPTION_LASTDOWNLOAD); |
| + printfTopic(" [%i, 'subscription.downloadStatus'],\n", Topic::SUBSCRIPTION_DOWNLOADSTATUS); |
| + printfTopic(" [%i, 'subscription.errors'],\n", Topic::SUBSCRIPTION_ERRORS); |
| + printf("]);"); |
| + } |
| } |
| inline void FilterChange(Topic topic, Filter& filter, |
| @@ -86,4 +103,4 @@ namespace FilterNotifier |
| } |
| } |
| -ABP_NS_END |
| +ABP_NS_END |