diff options
author | Chunseok Lee <chunseok.lee@samsung.com> | 2021-04-20 18:01:41 +0900 |
---|---|---|
committer | Chunseok Lee <chunseok.lee@samsung.com> | 2021-04-20 18:01:41 +0900 |
commit | 589bb1db6db6784efe21b3fbbfbfdb79aaa5f14e (patch) | |
tree | 47a2b23ce4220e3a4150c8b12ed941555272fb0c /compiler/crew/include | |
parent | 62529acabbafce7730601ed01d5709d7bc0d378a (diff) | |
download | nnfw-589bb1db6db6784efe21b3fbbfbfdb79aaa5f14e.tar.gz nnfw-589bb1db6db6784efe21b3fbbfbfdb79aaa5f14e.tar.bz2 nnfw-589bb1db6db6784efe21b3fbbfbfdb79aaa5f14e.zip |
Imported Upstream version 1.15.0upstream/1.15.0submit/tizen/20210427.093759submit/tizen/20210423.055448submit/tizen/20210422.015846submit/tizen/20210421.062230accepted/tizen/unified/20210428.040443
Diffstat (limited to 'compiler/crew/include')
-rw-r--r-- | compiler/crew/include/crew/PConfig.h | 60 | ||||
-rw-r--r-- | compiler/crew/include/crew/PConfigIni.h | 68 | ||||
-rw-r--r-- | compiler/crew/include/crew/PConfigIniDump.h | 33 |
3 files changed, 161 insertions, 0 deletions
diff --git a/compiler/crew/include/crew/PConfig.h b/compiler/crew/include/crew/PConfig.h new file mode 100644 index 000000000..9ff875574 --- /dev/null +++ b/compiler/crew/include/crew/PConfig.h @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2021 Samsung Electronics Co., Ltd. All Rights Reserved + * + * 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 __CREW_PCONFIG_H__ +#define __CREW_PCONFIG_H__ + +#include <iostream> +#include <string> +#include <vector> + +namespace crew +{ + +struct Part +{ + std::string model_file; + std::vector<std::string> inputs; + std::vector<std::string> outputs; +}; + +using Parts = std::vector<Part>; +using Source = Part; + +struct PConfig +{ + Source source; + Parts parts; +}; + +/** + * @brief Read config as ini file, return false if failed + */ +bool read_ini(const std::string &path, PConfig &config); + +/** + * @brief Write config as ini file, return false if failed + */ +bool write_ini(std::ostream &os, const PConfig &config); + +/** + * @brief Write config as json file, return false if failed + */ +bool write_json(std::ostream &os, const PConfig &config); + +} // namespace crew + +#endif // __CREW_PCONFIG_H__ diff --git a/compiler/crew/include/crew/PConfigIni.h b/compiler/crew/include/crew/PConfigIni.h new file mode 100644 index 000000000..45a54e115 --- /dev/null +++ b/compiler/crew/include/crew/PConfigIni.h @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2021 Samsung Electronics Co., Ltd. All Rights Reserved + * + * 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 __CREW_PCONFIG_INI_H__ +#define __CREW_PCONFIG_INI_H__ + +#include <iostream> +#include <string> +#include <unordered_map> +#include <vector> + +namespace crew +{ + +using KeyValues = std::unordered_map<std::string, std::string>; + +struct Section +{ + std::string name; + KeyValues items; +}; + +using Sections = std::vector<Section>; + +/** + * @brief Reads Config INI from null terminated string and return Sections + */ +Sections read_ini(const char *data, size_t length); +/** + * @brief Reads Config INI from file and return Sections + */ +Sections read_ini(const std::string &path); + +/** + * @brief Write Config INI with Sections to ostream + */ +void write_ini(std::ostream &os, const Sections §ions); +/** + * @brief Write Config INI with Sections to file, throw if failed + */ +void write_ini(const std::string &path, const Sections §ions); + +/** + * @brief Find a section with name, empty section if not found + */ +Section find(const Sections §ions, const std::string &name); + +/** + * @brief Find a key-value pair from key and return value, empty string if not found + */ +std::string find(const Section §ion, const std::string &key); + +} // namespace crew + +#endif // __CREW_PCONFIG_INI_H__ diff --git a/compiler/crew/include/crew/PConfigIniDump.h b/compiler/crew/include/crew/PConfigIniDump.h new file mode 100644 index 000000000..0755c6b20 --- /dev/null +++ b/compiler/crew/include/crew/PConfigIniDump.h @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2021 Samsung Electronics Co., Ltd. All Rights Reserved + * + * 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 __CREW_PCONFIG_INI_DUMP_H__ +#define __CREW_PCONFIG_INI_DUMP_H__ + +#include "PConfigIni.h" + +#include <iostream> + +namespace crew +{ + +void dump(std::ostream &os, const Sections §ions); + +} // namespace crew + +std::ostream &operator<<(std::ostream &os, const crew::Sections §ions); + +#endif // __CREW_PCONFIG_INI_DUMP_H__ |