diff options
author | jorlow@chromium.org <jorlow@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-27 00:55:02 +0000 |
---|---|---|
committer | jorlow@chromium.org <jorlow@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-27 00:55:02 +0000 |
commit | 15bf871f530cc5527db8a077e41dea8ea51bf31f (patch) | |
tree | add749cbb0ebbf7cfc3d2d95093716c9b167060e /base | |
parent | 9fcb0c1a40e9e550c79c5eb650aeb8c39ae5f1d7 (diff) | |
download | chromium_src-15bf871f530cc5527db8a077e41dea8ea51bf31f.zip chromium_src-15bf871f530cc5527db8a077e41dea8ea51bf31f.tar.gz chromium_src-15bf871f530cc5527db8a077e41dea8ea51bf31f.tar.bz2 |
Add a nullable string16 class to base. It combines a string16 + a null param
in order to cover all the possible states of a WebKit string. For strings
where the null state is not meaninfully different from the empty state, this
class should NOT be used. There are, however, some cases where we do need to
track null. LocalStorage is an example. This class should be a fairly light
weight way to do so. This change also adds implicit conversion to and from
WebStrings.
This also switches LocalStorage's IPCs over to using this new class.
BUG=17343
TEST=none
Review URL: http://codereview.chromium.org/174484
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24574 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base')
-rw-r--r-- | base/base.gyp | 1 | ||||
-rw-r--r-- | base/nullable_string16.h | 28 |
2 files changed, 29 insertions, 0 deletions
diff --git a/base/base.gyp b/base/base.gyp index bf6d9d2..3e0503e 100644 --- a/base/base.gyp +++ b/base/base.gyp @@ -202,6 +202,7 @@ 'non_thread_safe.h', 'nss_init.cc', 'nss_init.h', + 'nullable_string16.h', 'object_watcher.cc', 'object_watcher.h', 'observer_list.h', diff --git a/base/nullable_string16.h b/base/nullable_string16.h new file mode 100644 index 0000000..6f69aa5 --- /dev/null +++ b/base/nullable_string16.h @@ -0,0 +1,28 @@ +// Copyright (c) 2009 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. + +#ifndef BASE_NULLABLE_STRING16_H_ +#define BASE_NULLABLE_STRING16_H_ + +#include "base/string16.h" + +// This class is a simple wrapper for string16 which also contains a null +// state. This should be used only where the difference between null and +// empty is meaningful. +class NullableString16 { + public: + NullableString16() : is_null_(false) { } + NullableString16(const string16& string, bool is_null) + : string_(string), is_null_(is_null) { + } + + const string16& string() const { return string_; } + bool is_null() const { return is_null_; } + + private: + string16 string_; + bool is_null_; +}; + +#endif // BASE_NULLABLE_STRING16_H_ |