Line data Source code
1 : /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2 : * vim: sw=2 ts=8 et :
3 : */
4 : /* This Source Code Form is subject to the terms of the Mozilla Public
5 : * License, v. 2.0. If a copy of the MPL was not distributed with this
6 : * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 :
8 : #include "ChildTimer.h"
9 : #include "PluginInstanceChild.h"
10 : #include "nsComponentManagerUtils.h"
11 :
12 : namespace mozilla {
13 : namespace plugins {
14 :
15 0 : ChildTimer::ChildTimer(PluginInstanceChild* instance,
16 : uint32_t interval,
17 : bool repeat,
18 0 : TimerFunc func)
19 : : mInstance(instance)
20 : , mFunc(func)
21 : , mRepeating(repeat)
22 0 : , mID(gNextTimerID++)
23 : {
24 0 : mTimer.Start(base::TimeDelta::FromMilliseconds(interval),
25 0 : this, &ChildTimer::Run);
26 0 : }
27 :
28 : uint32_t
29 : ChildTimer::gNextTimerID = 1;
30 :
31 : void
32 0 : ChildTimer::Run()
33 : {
34 0 : if (!mRepeating)
35 0 : mTimer.Stop();
36 0 : mFunc(mInstance->GetNPP(), mID);
37 0 : }
38 :
39 : } // namespace plugins
40 : } // namespace mozilla
|