| Index: chrome/browser/sync/notifier/gaia_auth/sigslotrepeater.h
|
| ===================================================================
|
| --- chrome/browser/sync/notifier/gaia_auth/sigslotrepeater.h (revision 0)
|
| +++ chrome/browser/sync/notifier/gaia_auth/sigslotrepeater.h (revision 0)
|
| @@ -0,0 +1,86 @@
|
| +// Copyright (c) 2009 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#ifndef CHROME_BROWSER_SYNC_NOTIFIER_GAIA_AUTH_INET_ATON_H_SIGSLOTREPEATER_H_
|
| +#define CHROME_BROWSER_SYNC_NOTIFIER_GAIA_AUTH_INET_ATON_H_SIGSLOTREPEATER_H_
|
| +
|
| +// Repeaters are both signals and slots, which are designed as intermediate
|
| +// pass-throughs for signals and slots which don't know about each other (for
|
| +// modularity or encapsulation). This eliminates the need to declare a signal
|
| +// handler whose sole purpose is to fire another signal. The repeater connects
|
| +// to the originating signal using the 'repeat' method. When the repeated
|
| +// signal fires, the repeater will also fire.
|
| +
|
| +#include "talk/base/sigslot.h"
|
| +
|
| +namespace sigslot {
|
| +
|
| + template<class mt_policy = SIGSLOT_DEFAULT_MT_POLICY>
|
| + class repeater0 : public signal0<mt_policy>,
|
| + public has_slots<mt_policy> {
|
| + public:
|
| + typedef signal0<mt_policy> base_type;
|
| + typedef repeater0<mt_policy> this_type;
|
| +
|
| + repeater0() { }
|
| + explicit repeater0(const this_type& s) : base_type(s) { }
|
| +
|
| + void reemit() { signal0<mt_policy>::emit(); }
|
| + void repeat(base_type &s) { s.connect(this, &this_type::reemit); }
|
| + };
|
| +
|
| + template<class arg1_type, class mt_policy = SIGSLOT_DEFAULT_MT_POLICY>
|
| + class repeater1 : public signal1<arg1_type, mt_policy>,
|
| + public has_slots<mt_policy>
|
| + {
|
| + public:
|
| + typedef signal1<arg1_type, mt_policy> base_type;
|
| + typedef repeater1<arg1_type, mt_policy> this_type;
|
| +
|
| + repeater1() { }
|
| + repeater1(const this_type& s) : base_type(s) { }
|
| +
|
| + void reemit(arg1_type a1) { signal1<arg1_type, mt_policy>::emit(a1); }
|
| + void repeat(base_type& s) { s.connect(this, &this_type::reemit); }
|
| + };
|
| +
|
| + template<class arg1_type, class arg2_type,
|
| + class mt_policy = SIGSLOT_DEFAULT_MT_POLICY>
|
| + class repeater2 : public signal2<arg1_type, arg2_type, mt_policy>,
|
| + public has_slots<mt_policy>
|
| + {
|
| + public:
|
| + typedef signal2<arg1_type, arg2_type, mt_policy> base_type;
|
| + typedef repeater2<arg1_type, arg2_type, mt_policy> this_type;
|
| +
|
| + repeater2() { }
|
| + repeater2(const this_type& s) : base_type(s) { }
|
| +
|
| + void reemit(arg1_type a1, arg2_type a2) {
|
| + signal2<arg1_type, arg2_type, mt_policy>::emit(a1, a2);
|
| + }
|
| + void repeat(base_type& s) { s.connect(this, &this_type::reemit); }
|
| + };
|
| +
|
| + template<class arg1_type, class arg2_type, class arg3_type,
|
| + class mt_policy = SIGSLOT_DEFAULT_MT_POLICY>
|
| + class repeater3 : public signal3<arg1_type, arg2_type, arg3_type, mt_policy>,
|
| + public has_slots<mt_policy>
|
| + {
|
| + public:
|
| + typedef signal3<arg1_type, arg2_type, arg3_type, mt_policy> base_type;
|
| + typedef repeater3<arg1_type, arg2_type, arg3_type, mt_policy> this_type;
|
| +
|
| + repeater3() { }
|
| + repeater3(const this_type& s) : base_type(s) { }
|
| +
|
| + void reemit(arg1_type a1, arg2_type a2, arg3_type a3) {
|
| + signal3<arg1_type, arg2_type, arg3_type, mt_policy>::emit(a1, a2, a3);
|
| + }
|
| + void repeat(base_type& s) { s.connect(this, &this_type::reemit); }
|
| + };
|
| +
|
| +} // namespace sigslot
|
| +
|
| +#endif // CHROME_BROWSER_SYNC_NOTIFIER_GAIA_AUTH_INET_ATON_H_SIGSLOTREPEATER_H_
|
|
|
| Property changes on: chrome\browser\sync\notifier\gaia_auth\sigslotrepeater.h
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|