Aws::String RequestBuilder::escape()

in Gems/AWSCore/Code/Source/Framework/RequestBuilder.cpp [122:223]


    Aws::String RequestBuilder::escape(const char* value)
    {

        Aws::String target;

        while (*value != '\0')
        {
            switch (*value)
            {

            case ' ':
                target.append("%20", 3);
                break;

            case '!':
                target.append("%21", 3);
                break;

            case '#':
                target.append("%23", 3);
                break;

            case '$':
                target.append("%24", 3);
                break;

            case '%':
                target.append("%25", 3);
                break;

            case '&':
                target.append("%26", 3);
                break;

            case '\'':
                target.append("%27", 3);
                break;

            case '(':
                target.append("%28", 3);
                break;

            case ')':
                target.append("%29", 3);
                break;

            case '*':
                target.append("%2A", 3);
                break;

            case '+':
                target.append("%2B", 3);
                break;

            case ',':
                target.append("%2C", 3);
                break;

            case '/':
                target.append("%2F", 3);
                break;

            case ':':
                target.append("%3A", 3);
                break;

            case ';':
                target.append("%3B", 3);
                break;

            case '=':
                target.append("%3D", 3);
                break;

            case '?':
                target.append("%3F", 3);
                break;

            case '@':
                target.append("%40", 3);
                break;

            case '[':
                target.append("%5B", 3);
                break;

            case ']':
                target.append("%5D", 3);
                break;

            default:
                target.push_back(*value);
                break;

            }

            ++value;

        }

        return target;
    }