1*e7c364b6SAndroid Build Coastguard Worker /* 2*e7c364b6SAndroid Build Coastguard Worker * Copyright (C) 2014 The Android Open Source Project 3*e7c364b6SAndroid Build Coastguard Worker * 4*e7c364b6SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*e7c364b6SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*e7c364b6SAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*e7c364b6SAndroid Build Coastguard Worker * 8*e7c364b6SAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*e7c364b6SAndroid Build Coastguard Worker * 10*e7c364b6SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*e7c364b6SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*e7c364b6SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*e7c364b6SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*e7c364b6SAndroid Build Coastguard Worker * limitations under the License. 15*e7c364b6SAndroid Build Coastguard Worker */ 16*e7c364b6SAndroid Build Coastguard Worker 17*e7c364b6SAndroid Build Coastguard Worker #pragma once 18*e7c364b6SAndroid Build Coastguard Worker 19*e7c364b6SAndroid Build Coastguard Worker #include <stdint.h> 20*e7c364b6SAndroid Build Coastguard Worker 21*e7c364b6SAndroid Build Coastguard Worker #include "fuse_provider.h" 22*e7c364b6SAndroid Build Coastguard Worker 23*e7c364b6SAndroid Build Coastguard Worker // This class reads data from adb server. 24*e7c364b6SAndroid Build Coastguard Worker class FuseAdbDataProvider : public FuseDataProvider { 25*e7c364b6SAndroid Build Coastguard Worker public: FuseAdbDataProvider(int fd,uint64_t file_size,uint32_t block_size)26*e7c364b6SAndroid Build Coastguard Worker FuseAdbDataProvider(int fd, uint64_t file_size, uint32_t block_size) 27*e7c364b6SAndroid Build Coastguard Worker : FuseDataProvider(file_size, block_size), fd_(fd) {} 28*e7c364b6SAndroid Build Coastguard Worker 29*e7c364b6SAndroid Build Coastguard Worker bool ReadBlockAlignedData(uint8_t* buffer, uint32_t fetch_size, 30*e7c364b6SAndroid Build Coastguard Worker uint32_t start_block) const override; 31*e7c364b6SAndroid Build Coastguard Worker Valid()32*e7c364b6SAndroid Build Coastguard Worker bool Valid() const override { 33*e7c364b6SAndroid Build Coastguard Worker return fd_ != -1; 34*e7c364b6SAndroid Build Coastguard Worker } 35*e7c364b6SAndroid Build Coastguard Worker 36*e7c364b6SAndroid Build Coastguard Worker private: 37*e7c364b6SAndroid Build Coastguard Worker // The underlying source to read data from (i.e. the one that talks to the host). 38*e7c364b6SAndroid Build Coastguard Worker int fd_; 39*e7c364b6SAndroid Build Coastguard Worker }; 40