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