//#include //#include //class AuthWithDifferentSignals final : public eedb::AuthPage { // // AuthPage interface // public: // void setParent(Wt::WContainerWidget * parent) override {} // void detachFrom(Wt::WContainerWidget * parent) override {} // void processEnvironment() override {} // void registerNeedVerification(std::function< void() > f) override { // _callbacks[0] = f; // } // void registerOnUserWeakLogin(std::function< void() > f) override { // _callbacks[1] = f; // } // void registerOnUserStrongLogin(std::function< void() > f) override { // _callbacks[2] = f; // } // void registerOnUserLogout(std::function< void() > f) override { // _callbacks[3] = f; // } // // protected: // void notifyUserStrongLogin() const override { // _callbacks[0](); // } // void notifyUserWeakLogin() const override { // _callbacks[1](); // } // void notifyNeedEmailVerification() const override { // _callbacks[0](); // } // void notifyUserLogout() const override { // _callbacks[3](); // } // private: // std::array< std::function< void() >, 4 > _callbacks; //}; //#include //static void BoostSignals(benchmark::State & state) { // eedb::AuthPageImpl sut; // auto callback = []() {}; // sut.registerNeedVerification(callback); // while(state.KeepRunning()) { // sut.notifyNeedEmailVerification(); // } //} //static void TableBasedSignals(benchmark::State & state) { // AuthWithDifferentSignals sut; // auto callback = []() {}; // sut.registerNeedVerification(callback); // while(state.KeepRunning()) { // sut.notifyNeedEmailVerification(); // } //} //BENCHMARK(BoostSignals); //BENCHMARK(TableBasedSignals);