mirror of
https://github.com/klzgrad/naiveproxy.git
synced 2024-12-01 01:36:09 +03:00
48 lines
1.2 KiB
C
48 lines
1.2 KiB
C
|
// 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 NET_BASE_TEST_DATA_STREAM_H_
|
||
|
#define NET_BASE_TEST_DATA_STREAM_H_
|
||
|
|
||
|
#include <string.h> // for memcpy().
|
||
|
#include <algorithm>
|
||
|
#include "net/base/net_export.h"
|
||
|
|
||
|
// This is a class for generating an infinite stream of data which can be
|
||
|
// verified independently to be the correct stream of data.
|
||
|
|
||
|
namespace net {
|
||
|
|
||
|
class NET_EXPORT TestDataStream {
|
||
|
public:
|
||
|
TestDataStream();
|
||
|
|
||
|
// Fill |buffer| with |length| bytes of data from the stream.
|
||
|
void GetBytes(char* buffer, int length);
|
||
|
|
||
|
// Verify that |buffer| contains the expected next |length| bytes from the
|
||
|
// stream. Returns true if correct, false otherwise.
|
||
|
bool VerifyBytes(const char *buffer, int length);
|
||
|
|
||
|
// Resets all the data.
|
||
|
void Reset();
|
||
|
|
||
|
private:
|
||
|
// If there is no data spilled over from the previous index, advance the
|
||
|
// index and fill the buffer.
|
||
|
void AdvanceIndex();
|
||
|
|
||
|
// Consume data from the spill buffer.
|
||
|
void Consume(int bytes);
|
||
|
|
||
|
int index_;
|
||
|
int bytes_remaining_;
|
||
|
char buffer_[16];
|
||
|
char* buffer_ptr_;
|
||
|
};
|
||
|
|
||
|
} // namespace net
|
||
|
|
||
|
#endif // NET_BASE_TEST_DATA_STREAM_H_
|