• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 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.
4 
5 #include "extensions/common/event_filtering_info.h"
6 
7 #include "base/json/json_writer.h"
8 #include "base/values.h"
9 
10 namespace extensions {
11 
EventFilteringInfo()12 EventFilteringInfo::EventFilteringInfo()
13     : has_url_(false),
14       has_instance_id_(false),
15       instance_id_(0) {
16 }
17 
~EventFilteringInfo()18 EventFilteringInfo::~EventFilteringInfo() {
19 }
20 
SetURL(const GURL & url)21 void EventFilteringInfo::SetURL(const GURL& url) {
22   url_ = url;
23   has_url_ = true;
24 }
25 
SetInstanceID(int instance_id)26 void EventFilteringInfo::SetInstanceID(int instance_id) {
27   instance_id_ = instance_id;
28   has_instance_id_ = true;
29 }
30 
AsValue() const31 scoped_ptr<base::Value> EventFilteringInfo::AsValue() const {
32   if (IsEmpty())
33     return scoped_ptr<base::Value>(base::Value::CreateNullValue());
34 
35   scoped_ptr<base::DictionaryValue> result(new base::DictionaryValue);
36   if (has_url_)
37     result->SetString("url", url_.spec());
38 
39   if (has_instance_id_)
40     result->SetInteger("instanceId", instance_id_);
41 
42   if (!service_type_.empty())
43     result->SetString("serviceType", service_type_);
44 
45   return result.PassAs<base::Value>();
46 }
47 
IsEmpty() const48 bool EventFilteringInfo::IsEmpty() const {
49   return !has_url_ && service_type_.empty() && !has_instance_id_;
50 }
51 
52 }  // namespace extensions
53