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

Unified Diff: remoting/client/plugin/compression.h

Issue 2690003: Copy the (early prototype of) remoting in Chrome into the public tree.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 6 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
« no previous file with comments | « remoting/client/plugin/client.cc ('k') | remoting/client/plugin/compression.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/client/plugin/compression.h
===================================================================
--- remoting/client/plugin/compression.h (revision 0)
+++ remoting/client/plugin/compression.h (revision 0)
@@ -0,0 +1,90 @@
+// Copyright (c) 2010 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 REMOTING_CLIENT_PLUGIN_COMPRESSION_H_
+#define REMOTING_CLIENT_PLUGIN_COMPRESSION_H_
+
+#include <vector>
+
+#include "base/basictypes.h"
+
+#if defined(USE_SYSTEM_ZLIB)
+#include <zlib.h>
+#else
+#include "third_party/zlib/zlib.h"
+#endif
+
+namespace remoting {
+
+class Compressor {
+ public:
+ Compressor() {}
+ virtual ~Compressor() {}
+
+ virtual void Write(char* buffer, int size) = 0;
+ virtual void Flush() = 0;
+ virtual int GetCompressedSize() = 0;
+ virtual char* GetCompressedData() = 0;
+ virtual int GetRawSize() = 0;
+
+ DISALLOW_COPY_AND_ASSIGN(Compressor);
+};
+
+class Decompressor {
+ public:
+ Decompressor() {}
+ virtual ~Decompressor() {}
+
+ virtual void Write(char* buffer, int size) = 0;
+ virtual void Flush() = 0;
+ virtual char* GetRawData() = 0;
+ virtual int GetRawSize() = 0;
+ virtual int GetCompressedSize() = 0;
+
+ DISALLOW_COPY_AND_ASSIGN(Decompressor);
+};
+
+class ZCompressor : public Compressor {
+ public:
+ ZCompressor();
+ virtual ~ZCompressor() {}
+
+ virtual void Write(char* buffer, int size);
+ virtual void Flush();
+ virtual int GetCompressedSize();
+ virtual char* GetCompressedData();
+ virtual int GetRawSize();
+
+ private:
+ void WriteInternal(char* buffer, int size, int flush);
+
+ std::vector<char> buffer_;
+ z_stream stream_;
+
+ DISALLOW_COPY_AND_ASSIGN(ZCompressor);
+};
+
+class ZDecompressor : public Decompressor {
+ public:
+ ZDecompressor();
+ virtual ~ZDecompressor() {}
+
+ virtual void Write(char* buffer, int size);
+ virtual void Flush();
+ virtual char* GetRawData();
+ virtual int GetRawSize();
+ virtual int GetCompressedSize();
+
+ private:
+ void WriteInternal(char* buffer, int size, int flush);
+
+ std::vector<char> buffer_;
+ z_stream stream_;
+
+ DISALLOW_COPY_AND_ASSIGN(ZDecompressor);
+};
+
+} // namespace remoting
+
+#endif // REMOTING_CLIENT_PLUGIN_COMPRESSION_H_
Property changes on: remoting/client/plugin/compression.h
___________________________________________________________________
Added: svn:eol-style
+ LF
« no previous file with comments | « remoting/client/plugin/client.cc ('k') | remoting/client/plugin/compression.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698