Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: shell/src/PrefsCommand.cpp

Issue 29417605: Issue 5034 - Part 3: Create plain JsValue instead of JsValuePtr (Closed) Base URL: https://hg.adblockplus.org/libadblockplus/
Patch Set: Pass JsEngine by ref Created April 20, 2017, 1:01 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
« no previous file with comments | « include/AdblockPlus/JsValue.h ('k') | src/ConsoleJsObject.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * This file is part of Adblock Plus <https://adblockplus.org/>, 2 * This file is part of Adblock Plus <https://adblockplus.org/>,
3 * Copyright (C) 2006-2017 eyeo GmbH 3 * Copyright (C) 2006-2017 eyeo GmbH
4 * 4 *
5 * Adblock Plus is free software: you can redistribute it and/or modify 5 * Adblock Plus is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 3 as 6 * it under the terms of the GNU General Public License version 3 as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
8 * 8 *
9 * Adblock Plus is distributed in the hope that it will be useful, 9 * Adblock Plus is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
(...skipping 23 matching lines...) Expand all
34 { 34 {
35 ShowUsage(); 35 ShowUsage();
36 return; 36 return;
37 } 37 }
38 38
39 if (action == "show") 39 if (action == "show")
40 { 40 {
41 std::string pref; 41 std::string pref;
42 argumentStream >> pref; 42 argumentStream >> pref;
43 43
44 AdblockPlus::JsValuePtr value = filterEngine.GetPref(pref); 44 auto value = filterEngine.GetPref(pref);
45 if (value->IsUndefined()) 45 if (value.IsUndefined())
46 std::cout << "No such preference" << std::endl; 46 std::cout << "No such preference" << std::endl;
47 else 47 else
48 { 48 {
49 if (value->IsString()) 49 if (value.IsString())
50 std::cout << "(string) "; 50 std::cout << "(string) ";
51 else if (value->IsNumber()) 51 else if (value.IsNumber())
52 std::cout << "(number) "; 52 std::cout << "(number) ";
53 else if (value->IsBool()) 53 else if (value.IsBool())
54 std::cout << "(bool) "; 54 std::cout << "(bool) ";
55 else 55 else
56 std::cout << "(unknown type) "; 56 std::cout << "(unknown type) ";
57 std::cout << value->AsString() << std::endl; 57 std::cout << value.AsString() << std::endl;
58 } 58 }
59 } 59 }
60 else if (action == "set") 60 else if (action == "set")
61 { 61 {
62 std::string pref; 62 std::string pref;
63 argumentStream >> pref; 63 argumentStream >> pref;
64 64
65 AdblockPlus::JsValuePtr current = filterEngine.GetPref(pref); 65 auto current = filterEngine.GetPref(pref);
66 if (current->IsUndefined()) 66 if (current.IsUndefined())
67 std::cout << "No such preference" << std::endl; 67 std::cout << "No such preference" << std::endl;
68 else if (current->IsString()) 68 else if (current.IsString())
69 { 69 {
70 std::string value; 70 std::string value;
71 std::getline(argumentStream, value); 71 std::getline(argumentStream, value);
72 filterEngine.SetPref(pref, filterEngine.GetJsEngine()->NewValue(value)); 72 filterEngine.SetPref(pref, filterEngine.GetJsEngine()->NewValue(value));
73 } 73 }
74 else if (current->IsNumber()) 74 else if (current.IsNumber())
75 { 75 {
76 int64_t value; 76 int64_t value;
77 argumentStream >> value; 77 argumentStream >> value;
78 filterEngine.SetPref(pref, filterEngine.GetJsEngine()->NewValue(value)); 78 filterEngine.SetPref(pref, filterEngine.GetJsEngine()->NewValue(value));
79 } 79 }
80 else if (current->IsBool()) 80 else if (current.IsBool())
81 { 81 {
82 bool value; 82 bool value;
83 argumentStream >> value; 83 argumentStream >> value;
84 filterEngine.SetPref(pref, filterEngine.GetJsEngine()->NewValue(value)); 84 filterEngine.SetPref(pref, filterEngine.GetJsEngine()->NewValue(value));
85 } 85 }
86 else 86 else
87 std::cout << "Cannot set a preference of unknown type" << std::endl; 87 std::cout << "Cannot set a preference of unknown type" << std::endl;
88 } 88 }
89 else 89 else
90 throw NoSuchCommandError(name + " " + action); 90 throw NoSuchCommandError(name + " " + action);
91 } 91 }
92 92
93 std::string PrefsCommand::GetDescription() const 93 std::string PrefsCommand::GetDescription() const
94 { 94 {
95 return "Get and set preferences"; 95 return "Get and set preferences";
96 } 96 }
97 97
98 std::string PrefsCommand::GetUsage() const 98 std::string PrefsCommand::GetUsage() const
99 { 99 {
100 return name + " [show PREF|set PREF VALUE]"; 100 return name + " [show PREF|set PREF VALUE]";
101 } 101 }
OLDNEW
« no previous file with comments | « include/AdblockPlus/JsValue.h ('k') | src/ConsoleJsObject.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld