Summary: This diff should let us include folly/io:compression into iOS and Android projects without pulling in a lot of dependencies and should allow the use of zlib.
Test Plan: fbconfig -r folly/io/tests && fbmake runtests
Reviewed By: seanc@fb.com
Subscribers: trunkagent, bmatheny, folly-diffs@, yfeldblum, seanc, benyluo
FB internal diff:
D1853058
Tasks:
6245912
Signature: t1:
1853058:
1424370881:
2ea243d93e6041502e5e356fa430c2483f652b40
#define FOLLY_VARINT_H_
#include <type_traits>
#define FOLLY_VARINT_H_
#include <type_traits>
#include <folly/Range.h>
namespace folly {
#include <folly/Range.h>
namespace folly {
}
if (p == end) {
throw std::invalid_argument("Invalid varint value. Too small: " +
}
if (p == end) {
throw std::invalid_argument("Invalid varint value. Too small: " +
- std::to_string(end - begin) + " bytes");
+ folly::to<std::string>(end - begin) +
+ " bytes");
}
val |= static_cast<uint64_t>(*p++) << shift;
}
}
val |= static_cast<uint64_t>(*p++) << shift;
}
#endif // FOLLY_HAVE_LIBLZMA
#endif // FOLLY_HAVE_LIBLZMA
-typedef std::unique_ptr<Codec> (*CodecFactory)(int, CodecType);
+} // namespace
+
+std::unique_ptr<Codec> getCodec(CodecType type, int level) {
+ typedef std::unique_ptr<Codec> (*CodecFactory)(int, CodecType);
-CodecFactory gCodecFactories[
+ static CodecFactory codecFactories[
static_cast<size_t>(CodecType::NUM_CODEC_TYPES)] = {
static_cast<size_t>(CodecType::NUM_CODEC_TYPES)] = {
- nullptr, // USER_DEFINED
- NoCompressionCodec::create,
+ nullptr, // USER_DEFINED
+ NoCompressionCodec::create,
#endif
#if FOLLY_HAVE_LIBSNAPPY
#endif
#if FOLLY_HAVE_LIBSNAPPY
#endif
#if FOLLY_HAVE_LIBZ
#endif
#if FOLLY_HAVE_LIBZ
#endif
#if FOLLY_HAVE_LIBLZ4
#endif
#if FOLLY_HAVE_LIBLZ4
#endif
#if FOLLY_HAVE_LIBLZMA
#endif
#if FOLLY_HAVE_LIBLZMA
- LZMA2Codec::create,
- LZMA2Codec::create,
+ LZMA2Codec::create,
+ LZMA2Codec::create,
-std::unique_ptr<Codec> getCodec(CodecType type, int level) {
size_t idx = static_cast<size_t>(type);
if (idx >= static_cast<size_t>(CodecType::NUM_CODEC_TYPES)) {
throw std::invalid_argument(to<std::string>(
"Compression type ", idx, " not supported"));
}
size_t idx = static_cast<size_t>(type);
if (idx >= static_cast<size_t>(CodecType::NUM_CODEC_TYPES)) {
throw std::invalid_argument(to<std::string>(
"Compression type ", idx, " not supported"));
}
- auto factory = gCodecFactories[idx];
+ auto factory = codecFactories[idx];
if (!factory) {
throw std::invalid_argument(to<std::string>(
"Compression type ", idx, " not supported"));
if (!factory) {
throw std::invalid_argument(to<std::string>(
"Compression type ", idx, " not supported"));