Index: net/websockets/websocket_inflater.h |
diff --git a/net/websockets/websocket_inflater.h b/net/websockets/websocket_inflater.h |
deleted file mode 100644 |
index fdfa7624fef425d28e9c59eb7c63b3658233fcd8..0000000000000000000000000000000000000000 |
--- a/net/websockets/websocket_inflater.h |
+++ /dev/null |
@@ -1,130 +0,0 @@ |
-// Copyright 2013 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 NET_WEBSOCKETS_WEBSOCKET_INFLATER_H_ |
-#define NET_WEBSOCKETS_WEBSOCKET_INFLATER_H_ |
- |
-#include <deque> |
-#include <utility> |
-#include <vector> |
- |
-#include "base/basictypes.h" |
-#include "base/memory/ref_counted.h" |
-#include "base/memory/scoped_ptr.h" |
-#include "net/base/net_export.h" |
- |
-extern "C" struct z_stream_s; |
- |
-namespace net { |
- |
-class IOBufferWithSize; |
- |
-// WebSocketInflater uncompresses data compressed by DEFLATE algorithm. |
-class NET_EXPORT_PRIVATE WebSocketInflater { |
- public: |
- WebSocketInflater(); |
- // |input_queue_capacity| is a capacity for each contiguous block in the |
- // input queue. The input queue can grow without limit. |
- WebSocketInflater(size_t input_queue_capacity, size_t output_buffer_capacity); |
- ~WebSocketInflater(); |
- |
- // Returns true if there is no error. |
- // |window_bits| must be between 8 and 15 (both inclusive). |
- // This function must be called exactly once before calling any of the |
- // following functions. |
- bool Initialize(int window_bits); |
- |
- // Adds bytes to |stream_|. |
- // Returns true if there is no error. |
- // If the size of the output data reaches the capacity of the output buffer, |
- // the following input data will be "choked", i.e. stored in the input queue, |
- // staying compressed. |
- bool AddBytes(const char* data, size_t size); |
- |
- // Flushes the input. |
- // Returns true if there is no error. |
- bool Finish(); |
- |
- // Returns up to |size| bytes of the decompressed output. |
- // Returns null if there is an inflation error. |
- // The returned bytes will be dropped from the current output and never be |
- // returned again. |
- // If some input data is choked, calling this function may restart the |
- // inflation process. |
- // This means that even if you call |Finish()| and call |GetOutput()| with |
- // size = |CurrentOutputSize()|, the inflater may have some remaining data. |
- // To confirm the inflater emptiness, you should check whether |
- // |CurrentOutputSize()| is zero. |
- scoped_refptr<IOBufferWithSize> GetOutput(size_t size); |
- |
- // Returns the size of the current inflated output. |
- size_t CurrentOutputSize() const { return output_buffer_.Size(); } |
- |
- static const size_t kDefaultBufferCapacity = 512; |
- static const size_t kDefaultInputIOBufferCapacity = 512; |
- |
- private: |
- // Ring buffer with fixed capacity. |
- class NET_EXPORT_PRIVATE OutputBuffer { |
- public: |
- explicit OutputBuffer(size_t capacity); |
- ~OutputBuffer(); |
- |
- size_t Size() const; |
- // Returns (tail pointer, availabe size). |
- // A user can push data to the queue by writing the data to |
- // the area returned by this function and calling AdvanceTail. |
- std::pair<char*, size_t> GetTail(); |
- void Read(char* dest, size_t size); |
- void AdvanceTail(size_t advance); |
- |
- private: |
- void AdvanceHead(size_t advance); |
- |
- const size_t capacity_; |
- std::vector<char> buffer_; |
- size_t head_; |
- size_t tail_; |
- }; |
- |
- class InputQueue { |
- public: |
- // |capacity| is used for the capacity of each IOBuffer in this queue. |
- // this queue itself can grow without limit. |
- explicit InputQueue(size_t capacity); |
- ~InputQueue(); |
- |
- // Returns (data pointer, size), the first component of unconsumed data. |
- // The type of data pointer is non-const because |inflate| function |
- // requires so. |
- std::pair<char*, size_t> Top(); |
- bool IsEmpty() const { return buffers_.empty(); } |
- void Push(const char* data, size_t size); |
- // Consumes the topmost |size| bytes. |
- // |size| must be less than or equal to the first buffer size. |
- void Consume(size_t size); |
- |
- private: |
- size_t PushToLastBuffer(const char* data, size_t size); |
- |
- const size_t capacity_; |
- size_t head_of_first_buffer_; |
- size_t tail_of_last_buffer_; |
- std::deque<scoped_refptr<IOBufferWithSize> > buffers_; |
- }; |
- |
- int InflateWithFlush(const char* next_in, size_t avail_in); |
- int Inflate(const char* next_in, size_t avail_in, int flush); |
- int InflateChokedInput(); |
- |
- scoped_ptr<z_stream_s> stream_; |
- InputQueue input_queue_; |
- OutputBuffer output_buffer_; |
- |
- DISALLOW_COPY_AND_ASSIGN(WebSocketInflater); |
-}; |
- |
-} // namespace net |
- |
-#endif // NET_WEBSOCKETS_WEBSOCKET_INFLATER_H_ |