Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(180)

Unified Diff: net/websockets/websocket_inflater.h

Issue 992733002: Remove //net (except for Android test stuff) and sdch (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_
« no previous file with comments | « net/websockets/websocket_handshake_stream_create_helper_test.cc ('k') | net/websockets/websocket_inflater.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698