Chromium Code Reviews| Index: ios/web/public/serializable_user_data_manager.h |
| diff --git a/ios/web/public/serializable_user_data_manager.h b/ios/web/public/serializable_user_data_manager.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..cd7298637eede7519ccfb9b257b6c6b10eafc0f4 |
| --- /dev/null |
| +++ b/ios/web/public/serializable_user_data_manager.h |
| @@ -0,0 +1,53 @@ |
| +// Copyright 2017 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 IOS_WEB_PUBLIC_SERIALIZABLE_USER_DATA_MANAGER_H_ |
| +#define IOS_WEB_PUBLIC_SERIALIZABLE_USER_DATA_MANAGER_H_ |
| + |
| +#import <Foundation/Foundation.h> |
| +#include <memory> |
| + |
| +namespace web { |
| + |
| +class WebState; |
| + |
| +// Class used to serialize values added to SerializableUserDataManager. |
| +class SerializableUserData { |
| + public: |
| + // Factory method. |
| + static std::unique_ptr<SerializableUserData> Create(); |
| + |
| + // Encodes the data with |coder|. |
| + virtual void Encode(NSCoder* coder) = 0; |
| + |
| + // Decodes the data from |coder|. |
| + virtual void Decode(NSCoder* coder) = 0; |
| +}; |
| + |
| +// Class that can be used to add serializable user data to a WebState. |
| +class SerializableUserDataManager { |
| + public: |
| + // Returns the SerializableUserDataManager instance associated with |
| + // |web_state|, instantiating one if necessary. |
| + static SerializableUserDataManager* FromWebState(web::WebState* web_state); |
| + |
| + // Adds |data| to the user data, allowing it to be encoded under |key|. |
| + // |data| is expected to be non-nil. If |key| has already been used |
|
Eugene But (OOO till 7-30)
2017/02/11 02:46:48
Do you need to finish this sentence?
kkhorimoto
2017/02/11 03:19:49
whoops! yes I did!
|
| + virtual void AddSerializableData(id<NSCoding> data, NSString* key) = 0; |
| + |
| + // Returns the value that has been stored under |key|. |
| + virtual id<NSCoding> GetValueForSerializationKey(NSString* key) = 0; |
| + |
| + // Creates a SerializableUserData that can be used to encode the values added |
| + // to the manager. |
| + virtual std::unique_ptr<SerializableUserData> CreateSerializableUserData() |
| + const = 0; |
| + |
| + // Adds the values decoded from |data| to the manager. |
| + virtual void AddSerializableUserData(SerializableUserData* data) = 0; |
| +}; |
| + |
| +} // namespace web |
| + |
| +#endif // IOS_WEB_PUBLIC_SERIALIZABLE_USER_DATA_MANAGER_H_ |