internal static int GetNameValueLength(string input, int startIndex, Func<NameValueHeaderValue> nameValueCreator, out NameValueHeaderValue parsedValue) { parsedValue = null; if (string.IsNullOrEmpty(input) || (startIndex >= input.Length)) { return 0; } int tokenLength = HttpRuleParser.GetTokenLength(input, startIndex); if (tokenLength == 0) { return 0; } string str = input.Substring(startIndex, tokenLength); int num2 = startIndex + tokenLength; num2 += HttpRuleParser.GetWhitespaceLength(input, num2); if ((num2 == input.Length) || (input[num2] != '=')) { parsedValue = nameValueCreator.Invoke(); parsedValue.name = str; num2 += HttpRuleParser.GetWhitespaceLength(input, num2); return (num2 - startIndex); } num2++; num2 += HttpRuleParser.GetWhitespaceLength(input, num2); int valueLength = GetValueLength(input, num2); if (valueLength == 0) { return 0; } parsedValue = nameValueCreator.Invoke(); parsedValue.name = str; parsedValue.value = input.Substring(num2, valueLength); num2 += valueLength; num2 += HttpRuleParser.GetWhitespaceLength(input, num2); return (num2 - startIndex); }
/// <summary>Initializes a new instance of the <see cref="T:NMasters.Silverlight.Net.Http.Headers.NameValueHeaderValue" /> class.</summary> protected NameValueHeaderValue(NameValueHeaderValue source) { this.name = source.name; this.value = source.value; }
internal static int GetNameValueLength(string input, int startIndex, out NameValueHeaderValue parsedValue) { return GetNameValueLength(input, startIndex, defaultNameValueCreator, out parsedValue); }
/// <summary>Determines whether a string is valid <see cref="T:NMasters.Silverlight.Net.Http.Headers.NameValueHeaderValue" /> information.</summary> /// <returns>Returns <see cref="T:System.Boolean" />.true if <paramref name="input" /> is valid <see cref="T:NMasters.Silverlight.Net.Http.Headers.NameValueHeaderValue" /> information; otherwise, false.</returns> /// <param name="input">The string to validate.</param> /// <param name="parsedValue">The <see cref="T:NMasters.Silverlight.Net.Http.Headers.NameValueHeaderValue" /> version of the string.</param> public static bool TryParse(string input, out NameValueHeaderValue parsedValue) { object obj2; int index = 0; parsedValue = null; if (GenericHeaderParser.SingleValueNameValueParser.TryParseValue(input, null, ref index, out obj2)) { parsedValue = (NameValueHeaderValue) obj2; return true; } return false; }
private static bool TrySetTokenOnlyValue(NameValueHeaderValue nameValue, ref bool boolField) { if (nameValue.Value != null) { return false; } boolField = true; return true; }
private static bool TrySetTimeSpan(NameValueHeaderValue nameValue, ref TimeSpan? timeSpan) { int num; if (nameValue.Value == null) { return false; } if (!HeaderUtilities.TryParseInt32(nameValue.Value, out num)) { return false; } timeSpan = new TimeSpan(0, 0, num); return true; }
private static bool TrySetOptionalTokenList(NameValueHeaderValue nameValue, ref bool boolField, ref ICollection<string> destination) { if (nameValue.Value == null) { boolField = true; return true; } string input = nameValue.Value; if (((input.Length >= 3) && (input[0] == '"')) && (input[input.Length - 1] == '"')) { int startIndex = 1; int num2 = input.Length - 1; bool separatorFound = false; int num3 = (destination == null) ? 0 : destination.Count; while (startIndex < num2) { startIndex = HeaderUtilities.GetNextNonEmptyOrWhitespaceIndex(input, startIndex, true, out separatorFound); if (startIndex == num2) { break; } int tokenLength = HttpRuleParser.GetTokenLength(input, startIndex); if (tokenLength == 0) { return false; } if (destination == null) { destination = new ObjectCollection<string>(checkIsValidToken); } destination.Add(input.Substring(startIndex, tokenLength)); startIndex += tokenLength; } if ((destination != null) && (destination.Count > num3)) { boolField = true; return true; } } return false; }