Chromium Code Reviews| Index: components/rappor/bytevector.cc |
| diff --git a/components/rappor/bytevector.cc b/components/rappor/bytevector.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..0edec03f09e86f66796183dfcae49b9572e229d0 |
| --- /dev/null |
| +++ b/components/rappor/bytevector.cc |
| @@ -0,0 +1,44 @@ |
| +// Copyright (c) 2012 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. |
| + |
| +#include "base/logging.h" |
| +#include "components/rappor/bytevector.h" |
| + |
| +namespace rappor { |
| + |
| +ByteVector::ByteVector(size_t bytes_size) : std::vector<uint8_t>(bytes_size) {} |
| + |
| +ByteVector::ByteVector(const std::vector<uint8_t>& v) |
| + : std::vector<uint8_t>(v) {} |
| + |
| +ByteVector::ByteVector(const char* bytes, int size) |
| + : std::vector<uint8_t>(bytes, bytes + size) {} |
| + |
| +ByteVector ByteVector::operator&(ByteVector rhs) const { |
| + DCHECK(size() == rhs.size()); |
|
jwd
2013/12/16 17:04:03
I would document the size equality restriction in
Steven Holte
2013/12/16 23:02:16
Done.
|
| + ByteVector output(*this); |
| + for (size_t i = 0, len = rhs.size(); i < len; i++) { |
| + output[i] = output[i] & rhs[i]; |
| + } |
| + return output; |
| +} |
| + |
| +ByteVector ByteVector::operator|(ByteVector rhs) const { |
| + DCHECK(size() == rhs.size()); |
|
jwd
2013/12/16 17:04:03
Dito
Steven Holte
2013/12/16 23:02:16
Done.
|
| + ByteVector output(*this); |
| + for (size_t i = 0, len = rhs.size(); i < len; i++) { |
| + output[i] = output[i] | rhs[i]; |
| + } |
| + return output; |
| +} |
| + |
| +ByteVector ByteVector::operator~() const { |
| + ByteVector output(size()); |
| + for (size_t i = 0, len = size(); i < len; i++) { |
| + output[i] = ~at(i); |
| + } |
| + return output; |
| +} |
| + |
| +} // namespace rappor |