/*++ * @method: Client::getStringFromOAuthKeyValuePairs * * @description: this method builds a sorted string from key-value pairs * * @input: rawParamMap - key-value pairs map * paramsSeperator - sepearator, either & or , * * @output: rawParams - sorted string of OAuth parameters * * @remarks: internal method * *--*/ bool Client::getStringFromOAuthKeyValuePairs( const KeyValuePairs& rawParamMap, std::string& rawParams, const std::string& paramsSeperator ) { rawParams.assign( "" ); if( rawParamMap.size() ) { KeyValueList keyValueList; std::string dummyStr; /* Push key-value pairs to a list of strings */ keyValueList.clear(); KeyValuePairs::const_iterator itMap = rawParamMap.begin(); for( ; itMap != rawParamMap.end(); itMap++ ) { dummyStr.assign( itMap->first ); dummyStr.append( "=" ); if( paramsSeperator == "," ) { dummyStr.append( "\"" ); } dummyStr.append( itMap->second ); if( paramsSeperator == "," ) { dummyStr.append( "\"" ); } keyValueList.push_back( dummyStr ); } /* Sort key-value pairs based on key name */ keyValueList.sort(); /* Now, form a string */ dummyStr.assign( "" ); KeyValueList::iterator itKeyValue = keyValueList.begin(); for( ; itKeyValue != keyValueList.end(); itKeyValue++ ) { if( dummyStr.length() ) { dummyStr.append( paramsSeperator ); } dummyStr.append( itKeyValue->c_str() ); } rawParams.assign( dummyStr ); } return ( rawParams.length() ) ? true : false; }