summaryrefslogtreecommitdiffstats
path: root/meta-agl-bsp/LICENSE
blob: e8758f89ca27f9a2673358e9ce8d418c0815a040 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Different components of the AGL layers are under different licenses (a mix
of MIT and GPLv2). See LICENSE.GPL-2.0-only and LICENSE.MIT for further
details of the individual licenses.

All metadata (e.g. .bb, .bbappend, .bbclass, .inc, templates/* and similar)
is MIT licensed unless otherwise stated.
Source code included in tree for individual recipes (e.g. patches) are under
the LICENSE stated in the associated recipe (.bb file) unless otherwise stated.

License information for any other files (scripts) is either explicitly stated
or defaults to GPL version 2 only.

Individual files can contain the following style tags instead of the full
license text to identify their license:

    SPDX-License-Identifier: GPL-2.0-only
    SPDX-License-Identifier: MIT

This enables machine processing of license information based on the SPDX
License Identifiers that are here available: http://spdx.org/licenses/
nction.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */ }
/*
 * Copyright (C) 2015, 2016 ,2017 "IoT.bzh"
 * Author "Loïc Collignon" <loic.collignon@iot.bzh>
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *	 http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef INI_CONFIG_HPP
#define INI_CONFIG_HPP

#include <string>
#include <fstream>
#include <map>
#include <regex>
#include <algorithm>

// Représente un fichier de configuration.
class ini_config
{
public:
	using map = std::map<std::string, std::string>;

	void read_file(const std::string& filename);

	map get_keys(const std::string& section);
	std::string get_value(const std::string& section, const std::string& key);

	typename map::size_type size() const { return config_.size(); }
	typename map::iterator begin() { return config_.begin(); }
	typename map::iterator end() { return config_.end(); }
	typename map::const_iterator cbegin() const { return config_.cbegin(); }
	typename map::const_iterator cend() const { return config_.cend(); }
	typename map::reverse_iterator rbegin() { return config_.rbegin(); }
	typename map::reverse_iterator rend() { return config_.rend(); }
	typename map::const_reverse_iterator crbegin() const { return config_.crbegin(); }
	typename map::const_reverse_iterator crend() const { return config_.crend(); }

private:
	map config_;

	enum class line_type
	{
		ignore = 0,
		section = 1,
		key = 2
	};

	line_type qualify(std::string& line);
};

#endif // INI_CONFIG_HPP