| Index: chrome/browser/password_manager/keyring_proxy/message_reader.h
|
| ===================================================================
|
| --- chrome/browser/password_manager/keyring_proxy/message_reader.h (revision 0)
|
| +++ chrome/browser/password_manager/keyring_proxy/message_reader.h (revision 0)
|
| @@ -0,0 +1,45 @@
|
| +// Copyright (c) 2011 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 CHROME_BROWSER_PASSWORD_MANAGER_KEYRING_PROXY_MESSAGE_READER_H_
|
| +#define CHROME_BROWSER_PASSWORD_MANAGER_KEYRING_PROXY_MESSAGE_READER_H_
|
| +#pragma once
|
| +
|
| +#include <string>
|
| +#include <vector>
|
| +
|
| +namespace keyring_proxy {
|
| +
|
| +// This class handles reading bits and pieces of input data and assembling them
|
| +// into a set of newline-delimited lines. Each message is terminated by a blank
|
| +// line. (Think HTTP, SMTP, etc.)
|
| +// It is used in the (tiny) helper binary as well as the browser process, so it
|
| +// must not have any dependencies beyond standard libraries.
|
| +class MessageReader {
|
| + public:
|
| + MessageReader() : is_complete_(false) { lines_.resize(1); }
|
| +
|
| + // Returns the number of characters actually used; on end-of-message,
|
| + // this may be smaller than |size|, but should otherwise be equal.
|
| + // It is an error to call HandleData() if is_complete() would return true.
|
| + size_t HandleData(const char* data, size_t size);
|
| +
|
| + bool is_complete() const { return is_complete_; }
|
| + const std::vector<std::string>& lines() const { return lines_; }
|
| +
|
| + // Resets internal state so the reader will be ready for another message.
|
| + void Reset() {
|
| + lines_.clear();
|
| + lines_.resize(1);
|
| + is_complete_ = false;
|
| + }
|
| +
|
| + private:
|
| + bool is_complete_;
|
| + std::vector<std::string> lines_;
|
| +};
|
| +
|
| +} // namespace keyring_proxy
|
| +
|
| +#endif // CHROME_BROWSER_PASSWORD_MANAGER_KEYRING_PROXY_MESSAGE_READER_H_
|
|
|
| Property changes on: chrome/browser/password_manager/keyring_proxy/message_reader.h
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|