1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef SYNC_JS_JS_EVENT_DETAILS_H_
6 #define SYNC_JS_JS_EVENT_DETAILS_H_
8 // See README.js for design comments.
12 #include "base/values.h"
13 #include "sync/base/sync_export.h"
14 #include "sync/internal_api/public/util/immutable.h"
18 // A thin wrapper around Immutable<DictionaryValue>. Used for passing
19 // around event details to different threads.
20 class SYNC_EXPORT JsEventDetails
{
22 // Uses an empty dictionary.
25 // Takes over the data in |details|, leaving |details| empty.
26 explicit JsEventDetails(base::DictionaryValue
* details
);
30 const base::DictionaryValue
& Get() const;
32 std::string
ToString() const;
34 // Copy constructor and assignment operator welcome.
37 typedef Immutable
<base::DictionaryValue
,
38 HasSwapMemFnByPtr
<base::DictionaryValue
> >
39 ImmutableDictionaryValue
;
41 ImmutableDictionaryValue details_
;
46 #endif // SYNC_JS_JS_EVENT_DETAILS_H_