diff options
author | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-17 23:43:00 +0000 |
---|---|---|
committer | sergeyu@chromium.org <sergeyu@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-06-17 23:43:00 +0000 |
commit | 7620735be42ebc236d2da42d64f22dc5dedd01f9 (patch) | |
tree | baf0e6311b84830cd76df764e73e9aacfeb65e3e /remoting/host/json_host_config.cc | |
parent | f90ab58c11abf783c850c632f9b0467f968e4045 (diff) | |
download | chromium_src-7620735be42ebc236d2da42d64f22dc5dedd01f9.zip chromium_src-7620735be42ebc236d2da42d64f22dc5dedd01f9.tar.gz chromium_src-7620735be42ebc236d2da42d64f22dc5dedd01f9.tar.bz2 |
JSON based host config storage implemented. Python script for host registration.
BUG=None
TEST=None
Review URL: http://codereview.chromium.org/2804007
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50166 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'remoting/host/json_host_config.cc')
-rw-r--r-- | remoting/host/json_host_config.cc | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/remoting/host/json_host_config.cc b/remoting/host/json_host_config.cc new file mode 100644 index 0000000..324b2d2 --- /dev/null +++ b/remoting/host/json_host_config.cc @@ -0,0 +1,64 @@ +// Copyright (c) 2010 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "remoting/host/json_host_config.h" + +#include "base/message_loop_proxy.h" +#include "base/task.h" +#include "base/values.h" +#include "chrome/common/json_pref_store.h" +#include "chrome/common/pref_store.h" + +namespace remoting { + +JsonHostConfig::JsonHostConfig( + const FilePath& filename, + base::MessageLoopProxy* file_message_loop_proxy) + : pref_store_(new JsonPrefStore(filename, file_message_loop_proxy)), + message_loop_proxy_(file_message_loop_proxy) { +} + +bool JsonHostConfig::Read() { + return pref_store_->ReadPrefs() == PrefStore::PREF_READ_ERROR_NONE; +} + +bool JsonHostConfig::GetString(const std::wstring& path, + std::wstring* out_value) { + AutoLock auto_lock(lock_); + return pref_store_->prefs()->GetString(path, out_value); +} + +bool JsonHostConfig::GetString(const std::wstring& path, + std::string* out_value) { + AutoLock auto_lock(lock_); + return pref_store_->prefs()->GetString(path, out_value); +} + +void JsonHostConfig::Update(Task* task) { + { + AutoLock auto_lock(lock_); + task->Run(); + } + message_loop_proxy_->PostTask( + FROM_HERE, NewRunnableMethod(this, &JsonHostConfig::DoWrite)); +} + +void JsonHostConfig::SetString(const std::wstring& path, + const std::wstring& in_value) { + lock_.AssertAcquired(); + pref_store_->prefs()->SetString(path, in_value); +} + +void JsonHostConfig::SetString(const std::wstring& path, + const std::string& in_value) { + lock_.AssertAcquired(); + pref_store_->prefs()->SetString(path, in_value); +} + +void JsonHostConfig::DoWrite() { + AutoLock auto_lock(lock_); + pref_store_->WritePrefs(); +} + +} // namespace remoting |