1c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// Copyright (c) 2010 The Chromium Authors. All rights reserved. 2c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// Use of this source code is governed by a BSD-style license that can be 3c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// found in the LICENSE file. 4c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 5c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#ifndef BASE_NULLABLE_STRING16_H_ 6c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#define BASE_NULLABLE_STRING16_H_ 73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once 8c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 9c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#include "base/string16.h" 10c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 11c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// This class is a simple wrapper for string16 which also contains a null 12c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// state. This should be used only where the difference between null and 13c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott// empty is meaningful. 14c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scottclass NullableString16 { 15c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott public: 16c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott NullableString16() : is_null_(false) { } 17c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott explicit NullableString16(bool is_null) : is_null_(is_null) { } 18c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott NullableString16(const string16& string, bool is_null) 19c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott : string_(string), is_null_(is_null) { 20c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott } 21c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 22c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott const string16& string() const { return string_; } 23c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott bool is_null() const { return is_null_; } 24c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 25c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott private: 26c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott string16 string_; 27c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott bool is_null_; 28c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott}; 29c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott 30c7f5f8508d98d5952d42ed7648c2a8f30a4da156Patrick Scott#endif // BASE_NULLABLE_STRING16_H_ 31