AlexaClientSDK  3.0.0
A cross-platform, modular SDK for interacting with the Alexa Voice Service
GVariantMapReader.h
Go to the documentation of this file.
1 /*
2  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License").
5  * You may not use this file except in compliance with the License.
6  * A copy of the License is located at
7  *
8  * http://aws.amazon.com/apache2.0/
9  *
10  * or in the "license" file accompanying this file. This file is distributed
11  * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12  * express or implied. See the License for the specific language governing
13  * permissions and limitations under the License.
14  */
15 
16 #ifndef ALEXA_CLIENT_SDK_BLUETOOTHIMPLEMENTATIONS_BLUEZ_INCLUDE_BLUEZ_GVARIANTMAPREADER_H_
17 #define ALEXA_CLIENT_SDK_BLUETOOTHIMPLEMENTATIONS_BLUEZ_INCLUDE_BLUEZ_GVARIANTMAPREADER_H_
18 
19 #include <functional>
20 
21 #include <gio/gio.h>
22 
23 #include "BlueZ/ManagedGVariant.h"
24 #include "BlueZ/ManagedGError.h"
25 
26 namespace alexaClientSDK {
27 namespace bluetoothImplementations {
28 namespace blueZ {
29 
37 public:
42 
49  explicit GVariantMapReader(GVariant* originalVariant, bool useObjectPathAsKey = false);
50 
57  explicit GVariantMapReader(ManagedGVariant& originalVariant, bool useObjectPathAsKey = false);
58 
64 
75  bool getCString(const char* name, char** value) const;
76 
85  bool getInt32(const char* name, gint32* value) const;
86 
95  bool getBoolean(const char* name, gboolean* value) const;
96 
104  ManagedGVariant getVariant(const char* name) const;
105 
114  bool forEach(std::function<bool(char* key, GVariant* value)> iteratorFunction) const;
115 
121  GVariant* get() const;
122 
123 private:
124  // A @c GVariant* attached to the reader
125  GVariant* m_map;
126 
127  // Contains true if the map key type is object path instead of string
128  bool m_useObjectPathKeys;
129 };
130 
131 } // namespace blueZ
132 } // namespace bluetoothImplementations
133 } // namespace alexaClientSDK
134 
135 #endif // ALEXA_CLIENT_SDK_BLUETOOTHIMPLEMENTATIONS_BLUEZ_INCLUDE_BLUEZ_GVARIANTMAPREADER_H_
GVariantMapReader(GVariant *originalVariant, bool useObjectPathAsKey=false)
bool getBoolean(const char *name, gboolean *value) const
Whether or not curl logs should be emitted.
Definition: AVSConnectionManager.h:36
bool getCString(const char *name, char **value) const
bool getInt32(const char *name, gint32 *value) const
bool forEach(std::function< bool(char *key, GVariant *value)> iteratorFunction) const
static const std::string key
The database key to be used by the protocol given the METADATA object.
Definition: SharedAVSSettingProtocolTest.cpp:58

AlexaClientSDK 3.0.0 - Copyright 2016-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0