1010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved.
2010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// found in the LICENSE file.
4010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
5010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#ifndef CHROME_BROWSER_EXTENSIONS_API_BLUETOOTH_LOW_ENERGY_UTILS_H_
6010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#define CHROME_BROWSER_EXTENSIONS_API_BLUETOOTH_LOW_ENERGY_UTILS_H_
7010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
8010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "base/memory/scoped_ptr.h"
9010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "base/values.h"
10010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#include "chrome/common/extensions/api/bluetooth_low_energy.h"
11010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
12010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)namespace extensions {
13010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)namespace api {
14010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)namespace bluetooth_low_energy {
15010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// TODO(armansito): Remove these functions once the described bug is fixed.
17010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// (See crbug.com/368368)
18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
19010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Converts a Characteristic to a base::Value. This function is necessary as
20010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// json_schema_compiler::util::AddItemToList has no template specialization for
21010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// user defined enums, which get treated as integers. This is because
22010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)// Characteristic contains a list of enum CharacteristicProperty.
23010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)scoped_ptr<base::DictionaryValue> CharacteristicToValue(Characteristic* from);
24010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Converts a Descriptor to a base::Value. This function is necessary as a
26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Descriptor embeds a Characteristic and that needs special handling as
27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// described above.
28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)scoped_ptr<base::DictionaryValue> DescriptorToValue(Descriptor* from);
29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)
30010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)}  // namespace bluetooth_low_energy
31010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)}  // namespace api
32010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)}  // namespace extensions
33010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)
34010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)#endif  // CHROME_BROWSER_EXTENSIONS_API_BLUETOOTH_LOW_ENERGY_UTILS_H_
35