예제 #1
0
파일: AHTTPPDU.cs 프로젝트: bpaziaud/Hermod
        /// <summary>
        /// Return the value of the given HTTP header field.
        /// </summary>
        /// <typeparam name="T">The expected type of the field value.</typeparam>
        /// <param name="HeaderField">The HTTP header field.</param>
        protected T GetHeaderField <T>(HTTPHeaderField HeaderField)
        {
            Object Value;

            if (_HeaderFields.TryGetValue(HeaderField.Name, out Value))
            {
                if (Value is String)
                {
                    if (HeaderField.Type == typeof(String))
                    {
                        return((T)Value);
                    }
                    else
                    {
                        Object Value2 = null;
                        if (HeaderField.StringParser(Value.ToString(), out Value2))
                        {
                            return((T)Value2);
                        }
                    }
                }
                else
                {
                    return((T)Value);
                }
            }

            return(default(T));
        }
예제 #2
0
파일: AHTTPPDU.cs 프로젝트: bpaziaud/Hermod
        /// <summary>
        /// Return the value of the given HTTP header field.
        /// </summary>
        /// <param name="HeaderField">The HTTP header field.</param>
        protected String GetHeaderField(HTTPHeaderField HeaderField)
        {
            Object Value;

            if (_HeaderFields.TryGetValue(HeaderField.Name, out Value))
            {
                return(Value.ToString());
            }

            return(String.Empty);
        }
예제 #3
0
파일: AHTTPPDU.cs 프로젝트: bpaziaud/Hermod
        /// <summary>
        /// Return the given HTTP header field.
        /// </summary>
        /// <typeparam name="T">The expected type of the field value.</typeparam>
        /// <param name="HeaderField">The HTTP header field.</param>
        protected UInt64?GetHeaderField_UInt64(HTTPHeaderField HeaderField)
        {
            Object Value;

            if (_HeaderFields.TryGetValue(HeaderField.Name, out Value))
            {
                if (Value is UInt64?)
                {
                    return((UInt64?)Value);
                }

                UInt64 UInt64Value;
                if (UInt64.TryParse(Value.ToString(), out UInt64Value))
                {
                    return(UInt64Value);
                }
            }

            return(null);
        }
예제 #4
0
        /// <summary>
        /// Set a HTTP header field.
        /// A field value of NULL will remove the field from the header.
        /// </summary>
        /// <param name="HeaderField">The header field.</param>
        /// <param name="Value">The value. NULL will remove the field from the header.</param>
        protected void SetHeaderField(HTTPHeaderField HeaderField, Object Value)
        {
            if (Value != null)
            {
                if (HeaderFields.ContainsKey(HeaderField.Name))
                {
                    HeaderFields[HeaderField.Name] = Value;
                }
                else
                {
                    HeaderFields.Add(HeaderField.Name, Value);
                }
            }

            else
            if (HeaderFields.ContainsKey(HeaderField.Name))
            {
                HeaderFields.Remove(HeaderField.Name);
            }
        }
예제 #5
0
파일: AHTTPPDU.cs 프로젝트: bpaziaud/Hermod
        /// <summary>
        /// Set a HTTP header field.
        /// A field value of NULL will remove the field from the header.
        /// </summary>
        /// <param name="HeaderField">The HTTP header field.</param>
        /// <param name="Value">The value. NULL will remove the field from the header.</param>
        protected void SetHeaderField(HTTPHeaderField HeaderField, Object Value)
        {
            if (Value != null)
            {
                if (_HeaderFields.ContainsKey(HeaderField.Name))
                {
                    _HeaderFields[HeaderField.Name] = Value;
                }
                else
                {
                    _HeaderFields.Add(HeaderField.Name, Value);
                }
            }

            else
            if (_HeaderFields.ContainsKey(HeaderField.Name))
            {
                _HeaderFields.Remove(HeaderField.Name);
            }


            // New collection...
            if (Value != null)
            {
                if (_HeaderFields2.ContainsKey(HeaderField))
                {
                    _HeaderFields2[HeaderField] = Value;
                }
                else
                {
                    _HeaderFields2.Add(HeaderField, Value);
                }
            }

            else
            if (_HeaderFields2.ContainsKey(HeaderField))
            {
                _HeaderFields2.Remove(HeaderField);
            }
        }
예제 #6
0
파일: AHTTPPDU.cs 프로젝트: bpaziaud/Hermod
 /// <summary>
 /// Return a http header field.
 /// </summary>
 /// <param name="HeaderField">The key of the requested header field.</param>
 /// <param name="Value">The value of the requested header field.</param>
 /// <returns>True if the requested header exists; false otherwise.</returns>
 protected Boolean TryGetHeaderField(HTTPHeaderField HeaderField, out Object Value)
 {
     return(_HeaderFields.TryGetValue(HeaderField.Name, out Value));
 }
예제 #7
0
        /// <summary>
        /// Set a HTTP header field.
        /// A field value of NULL will remove the field from the header.
        /// </summary>
        /// <param name="HeaderField">The header field.</param>
        /// <param name="Value">The value. NULL will remove the field from the header.</param>
        public HTTPResponseBuilder Set(HTTPHeaderField HeaderField, Object Value)
        {
            base.SetHeaderField(HeaderField, Value);

            return this;
        }
예제 #8
0
        /// <summary>
        /// Set a HTTP header field.
        /// A field value of NULL will remove the field from the header.
        /// </summary>
        /// <param name="HeaderField">The header field.</param>
        /// <param name="Value">The value. NULL will remove the field from the header.</param>
        public HTTPResponseBuilder Set(HTTPHeaderField HeaderField, Object Value)
        {
            base.SetHeaderField(HeaderField, Value);

            return(this);
        }