blob: ccf3bc602074dc3ca67cfc9ebae3da6e57dc49ec [file] [log] [blame]
Kevin Rocardace81f82012-12-11 16:19:17 +01001/*
2 * INTEL CONFIDENTIAL
3 * Copyright © 2011 Intel
4 * Corporation All Rights Reserved.
5 *
6 * The source code contained or described herein and all documents related to
7 * the source code ("Material") are owned by Intel Corporation or its suppliers
8 * or licensors. Title to the Material remains with Intel Corporation or its
9 * suppliers and licensors. The Material contains trade secrets and proprietary
10 * and confidential information of Intel or its suppliers and licensors. The
11 * Material is protected by worldwide copyright and trade secret laws and
12 * treaty provisions. No part of the Material may be used, copied, reproduced,
13 * modified, published, uploaded, posted, transmitted, distributed, or
14 * disclosed in any way without Intel’s prior express written permission.
15 *
16 * No license under any patent, copyright, trade secret or other intellectual
17 * property right is granted to or conferred upon you by disclosure or delivery
18 * of the Materials, either expressly, by implication, inducement, estoppel or
19 * otherwise. Any license under such intellectual property rights must be
20 * express and approved by Intel in writing.
21 *
22 * CREATED: 2012-12-17
23 */
24
25#include "Utility.h"
26
Frederic Boisnard390b36d2013-05-23 15:28:31 +020027#include <sstream>
28#include <iterator>
29
30// Format string list
31void CUtility::asString(const std::list<std::string>& lstr,
32 std::string& strOutput,
33 const std::string& strSeparator)
Kevin Rocardace81f82012-12-11 16:19:17 +010034{
Frederic Boisnard390b36d2013-05-23 15:28:31 +020035 std::ostringstream ostrFormatedList;
Kevin Rocardace81f82012-12-11 16:19:17 +010036
Frederic Boisnard390b36d2013-05-23 15:28:31 +020037 std::copy(lstr.begin(), lstr.end(),
38 std::ostream_iterator<std::string>(ostrFormatedList, strSeparator.c_str()));
Kevin Rocardace81f82012-12-11 16:19:17 +010039
Frederic Boisnard390b36d2013-05-23 15:28:31 +020040 strOutput = ostrFormatedList.str();
Kevin Rocardace81f82012-12-11 16:19:17 +010041
Frederic Boisnard390b36d2013-05-23 15:28:31 +020042 // Remove last separator
43 if (strOutput.size() > strSeparator.size()) {
44
45 strOutput.erase(strOutput.size() - strSeparator.size());
Kevin Rocardace81f82012-12-11 16:19:17 +010046 }
47}
Frederic Boisnard390b36d2013-05-23 15:28:31 +020048
49// Format string map
50void CUtility::asString(const std::map<std::string, std::string>& mapStr,
51 std::string& strOutput,
52 const std::string& strItemSeparator,
53 const std::string& strKeyValueSeparator)
54{
55 std::list<std::string> listKeysValues;
56
57 std::map<std::string, std::string>::const_iterator iter;
58
59 for(iter = mapStr.begin(); iter != mapStr.end(); ++iter) {
60
61 listKeysValues.push_back(iter->first + strKeyValueSeparator + iter->second);
62 }
63
64 CUtility::asString(listKeysValues, strOutput, strItemSeparator);
65}
66