1b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber/* 2b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber * Copyright 2012, The Android Open Source Project 3b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber * 4b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber * Licensed under the Apache License, Version 2.0 (the "License"); 5b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber * you may not use this file except in compliance with the License. 6b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber * You may obtain a copy of the License at 7b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber * 8b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber * http://www.apache.org/licenses/LICENSE-2.0 9b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber * 10b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber * Unless required by applicable law or agreed to in writing, software 11b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber * distributed under the License is distributed on an "AS IS" BASIS, 12b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber * See the License for the specific language governing permissions and 14b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber * limitations under the License. 15b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber */ 16b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber 17b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber#include <media/stagefright/foundation/ABase.h> 18b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber#include <media/stagefright/foundation/AString.h> 19b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber#include <utils/KeyedVector.h> 20b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber#include <utils/RefBase.h> 21b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber 22b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Hubernamespace android { 23b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber 24b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huberstruct Parameters : public RefBase { 25b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber static sp<Parameters> Parse(const char *data, size_t size); 26b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber 27b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber bool findParameter(const char *name, AString *value) const; 28b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber 29b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huberprotected: 30b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber virtual ~Parameters(); 31b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber 32b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huberprivate: 33b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber KeyedVector<AString, AString> mDict; 34b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber 35b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber Parameters(); 36b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber status_t parse(const char *data, size_t size); 37b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber 38b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber DISALLOW_EVIL_CONSTRUCTORS(Parameters); 39b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber}; 40b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber 41b8c7bd418f0ee5b88923b0e0817e3a4acc53cf8dAndreas Huber} // namespace android 42