Android-cuttlefish cvd tool
|
#include "incremental_server.h"
#include <inttypes.h>
#include <lz4.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <array>
#include <deque>
#include <fstream>
#include <thread>
#include <type_traits>
#include <unordered_set>
#include <android-base/endian.h>
#include <android-base/strings.h>
#include "adb.h"
#include "adb_client.h"
#include "adb_io.h"
#include "adb_trace.h"
#include "adb_unique_fd.h"
#include "adb_utils.h"
#include "incremental_utils.h"
#include "sysdeps.h"
Classes | |
struct | incremental::RequestCommand |
struct | incremental::ResponseHeader |
struct | incremental::BlockBuffer< Size > |
class | incremental::File |
class | incremental::IncrementalServer |
struct | incremental::IncrementalServer::PrefetchState |
Namespaces | |
namespace | incremental |
Macros | |
#define | TRACE_TAG INCREMENTAL |
Typedefs | |
using | incremental::BlockSize = int16_t |
using | incremental::FileId = int16_t |
using | incremental::BlockIdx = int32_t |
using | incremental::NumBlocks = int32_t |
using | incremental::BlockType = int8_t |
using | incremental::CompressionType = int8_t |
using | incremental::RequestType = int16_t |
using | incremental::ChunkHeader = int32_t |
using | incremental::MagicType = uint32_t |
Functions | |
static constexpr int64_t | incremental::roundDownToBlockOffset (int64_t val) |
static constexpr int64_t | incremental::roundUpToBlockOffset (int64_t val) |
static constexpr NumBlocks | incremental::numBytesToNumBlocks (int64_t bytes) |
static constexpr off64_t | incremental::blockIndexToOffset (BlockIdx blockIdx) |
template<typename T > | |
static constexpr T | incremental::toBigEndian (T t) |
template<typename T > | |
static constexpr T | incremental::readBigEndian (void *data) |
struct incremental::RequestCommand | incremental::__attribute__ ((packed)) |
static constexpr size_t | responseSizeFor (size_t dataSize) |
template<size_t Size = kBlockSize> | |
struct incremental::BlockBuffer | incremental::__attribute__ ((packed)) |
static std::pair< unique_fd, int64_t > | incremental::open_fd (const char *filepath) |
static std::pair< unique_fd, int64_t > | incremental::open_signature (int64_t file_size, const char *filepath) |
bool | incremental::serve (int connection_fd, int output_fd, int argc, const char **argv) |
Variables | |
static constexpr int | incremental::kHashesPerBlock = kBlockSize / kDigestSize |
static constexpr int | incremental::kCompressedSizeMax = kBlockSize * 0.95 |
static constexpr int8_t | incremental::kTypeData = 0 |
static constexpr int8_t | incremental::kTypeHash = 1 |
static constexpr int8_t | incremental::kCompressionNone = 0 |
static constexpr int8_t | incremental::kCompressionLZ4 = 1 |
static constexpr int | incremental::kCompressBound = std::max(kBlockSize, LZ4_COMPRESSBOUND(kBlockSize)) |
static constexpr auto | incremental::kReadBufferSize = 128 * 1024 |
static constexpr int | incremental::kPollTimeoutMillis = 300000 |
static constexpr MagicType | incremental::INCR = 0x494e4352 |
static constexpr RequestType | incremental::SERVING_COMPLETE = 0 |
static constexpr RequestType | incremental::BLOCK_MISSING = 1 |
static constexpr RequestType | incremental::PREFETCH = 2 |
static constexpr RequestType | incremental::DESTROY = 3 |
RequestType | request_type |
FileId | file_id |
union { | |
BlockIdx block_idx | |
NumBlocks num_blocks | |
}; | |
BlockType | block_type |
CompressionType | compression_type |
BlockSize | block_size |
ResponseHeader | header |
char | data [Size] |
class incremental::File | incremental::__attribute__ |
#define TRACE_TAG INCREMENTAL |
|
staticconstexpr |
union { ... } |
BlockIdx block_idx |
BlockSize block_size |
BlockType block_type |
CompressionType compression_type |
char data[Size] |
FileId file_id |
ResponseHeader header |
NumBlocks num_blocks |
RequestType request_type |