1 /* -*- Mode: C++; tab-width: 20; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3  * License, v. 2.0. If a copy of the MPL was not distributed with this
4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 
6 #ifndef _NSPROFILERSTARTPARAMS_H_
7 #define _NSPROFILERSTARTPARAMS_H_
8 
9 #include "nsIProfiler.h"
10 #include "nsString.h"
11 #include "nsTArray.h"
12 
13 class nsProfilerStartParams : public nsIProfilerStartParams {
14  public:
15   // This class can be used on multiple threads. For example, it's used for the
16   // observer notification from profiler_start, which can run on any thread but
17   // posts the notification to the main thread.
18   NS_DECL_THREADSAFE_ISUPPORTS
19   NS_DECL_NSIPROFILERSTARTPARAMS
20 
21   nsProfilerStartParams(uint32_t aEntries,
22                         const mozilla::Maybe<double>& aDuration,
23                         double aInterval, uint32_t aFeatures,
24                         nsTArray<nsCString>&& aFilters, uint64_t aActiveTabID);
25 
26  private:
27   virtual ~nsProfilerStartParams();
28   uint32_t mEntries;
29   mozilla::Maybe<double> mDuration;
30   double mInterval;
31   uint32_t mFeatures;
32   nsTArray<nsCString> mFilters;
33   uint64_t mActiveTabID;
34 };
35 
36 #endif
37