HTTPBase.h revision 1156dc913a5ba7b2bc86489468d4914430f03d14
11156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber/* 21156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber * Copyright (C) 2011 The Android Open Source Project 31156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber * 41156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber * Licensed under the Apache License, Version 2.0 (the "License"); 51156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber * you may not use this file except in compliance with the License. 61156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber * You may obtain a copy of the License at 71156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber * 81156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber * http://www.apache.org/licenses/LICENSE-2.0 91156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber * 101156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber * Unless required by applicable law or agreed to in writing, software 111156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber * distributed under the License is distributed on an "AS IS" BASIS, 121156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 131156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber * See the License for the specific language governing permissions and 141156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber * limitations under the License. 151156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber */ 161156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber 171156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber#ifndef HTTP_BASE_H_ 181156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber 191156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber#define HTTP_BASE_H_ 201156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber 211156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber#include <media/stagefright/foundation/ABase.h> 221156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber#include <media/stagefright/DataSource.h> 231156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber 241156dc913a5ba7b2bc86489468d4914430f03d14Andreas Hubernamespace android { 251156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber 261156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huberstruct HTTPBase : public DataSource { 271156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber enum Flags { 281156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber // Don't log any URLs. 291156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber kFlagIncognito = 1 301156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber }; 311156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber 321156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber HTTPBase(); 331156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber 341156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber virtual status_t connect( 351156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber const char *uri, 361156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber const KeyedVector<String8, String8> *headers = NULL, 371156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber off64_t offset = 0) = 0; 381156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber 391156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber virtual void disconnect() = 0; 401156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber 411156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber // Returns true if bandwidth could successfully be estimated, 421156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber // false otherwise. 431156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber virtual bool estimateBandwidth(int32_t *bandwidth_bps) = 0; 441156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber 451156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber static sp<HTTPBase> Create(uint32_t flags = 0); 461156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber 471156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huberprivate: 481156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber DISALLOW_EVIL_CONSTRUCTORS(HTTPBase); 491156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber}; 501156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber 511156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber} // namespace android 521156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber 531156dc913a5ba7b2bc86489468d4914430f03d14Andreas Huber#endif // HTTP_BASE_H_ 54