diff options
Diffstat (limited to 'indra/llcorehttp/httpheaders.h')
-rw-r--r-- | indra/llcorehttp/httpheaders.h | 182 |
1 files changed, 91 insertions, 91 deletions
diff --git a/indra/llcorehttp/httpheaders.h b/indra/llcorehttp/httpheaders.h index e7cf4037bf..a5ca7749b0 100644 --- a/indra/llcorehttp/httpheaders.h +++ b/indra/llcorehttp/httpheaders.h @@ -24,8 +24,8 @@ * $/LicenseInfo$ */ -#ifndef _LLCORE_HTTP_HEADERS_H_ -#define _LLCORE_HTTP_HEADERS_H_ +#ifndef _LLCORE_HTTP_HEADERS_H_ +#define _LLCORE_HTTP_HEADERS_H_ #include "httpcommon.h" @@ -77,115 +77,115 @@ namespace LLCore class HttpHeaders: private boost::noncopyable { public: - typedef std::pair<std::string, std::string> header_t; - typedef std::vector<header_t> container_t; - typedef container_t::iterator iterator; - typedef container_t::const_iterator const_iterator; - typedef container_t::reverse_iterator reverse_iterator; - typedef container_t::const_reverse_iterator const_reverse_iterator; - typedef container_t::value_type value_type; - typedef container_t::size_type size_type; + typedef std::pair<std::string, std::string> header_t; + typedef std::vector<header_t> container_t; + typedef container_t::iterator iterator; + typedef container_t::const_iterator const_iterator; + typedef container_t::reverse_iterator reverse_iterator; + typedef container_t::const_reverse_iterator const_reverse_iterator; + typedef container_t::value_type value_type; + typedef container_t::size_type size_type; typedef std::shared_ptr<HttpHeaders> ptr_t; public: - /// @post In addition to the instance, caller has a refcount - /// to the instance. A call to @see release() will destroy - /// the instance. - HttpHeaders(); - virtual ~HttpHeaders(); // Use release() + /// @post In addition to the instance, caller has a refcount + /// to the instance. A call to @see release() will destroy + /// the instance. + HttpHeaders(); + virtual ~HttpHeaders(); // Use release() - //typedef LLCoreInt::IntrusivePtr<HttpHeaders> ptr_t; + //typedef LLCoreInt::IntrusivePtr<HttpHeaders> ptr_t; protected: - HttpHeaders(const HttpHeaders &); // Not defined - void operator=(const HttpHeaders &); // Not defined + HttpHeaders(const HttpHeaders &); // Not defined + void operator=(const HttpHeaders &); // Not defined public: - // Empty the list of headers. - void clear(); - - // Append a name/value pair supplied as either std::strings - // or NUL-terminated char * to the header list. No normalization - // is performed on the strings. No conformance test is - // performed (names may contain spaces, colons, etc.). - // - void append(const std::string & name, const std::string & value); - void append(const char * name, const char * value); - - // Extract a name/value pair from a raw byte array using - // the first colon character as a separator. Input string - // does not need to be NUL-terminated. Resulting name/value - // pair is appended to the header list. - // - // Normalization is performed on the name/value pair as - // follows: - // - name is lower-cased according to mostly ASCII rules - // - name is left- and right-trimmed of spaces and tabs - // - value is left-trimmed of spaces and tabs - // - either or both of name and value may be zero-length - // - // By convention, headers read from the wire will be normalized - // in this fashion prior to delivery to any HttpHandler code. - // Headers to be written to the wire are left as appended to - // the list. - void appendNormal(const char * header, size_t size); - - // Perform a simple, case-sensitive search of the header list - // returning a pointer to the value of the last matching header - // in the header list. If none is found, a NULL pointer is returned. - // - // Any pointer returned references objects in the container itself - // and will have the same lifetime as this class. If you want - // the value beyond the lifetime of this instance, make a copy. - // - // @arg name C-style string giving the name of a header - // to search. The comparison is case-sensitive - // though list entries may have been normalized - // to lower-case. - // - // @return NULL if the header wasn't found otherwise - // a pointer to a std::string in the container. - // Pointer is valid only for the lifetime of - // the container or until container is modifed. - const std::string * find(const std::string &name) const; - const std::string * find(const char * name) const - { - return find(std::string(name)); - } + // Empty the list of headers. + void clear(); + + // Append a name/value pair supplied as either std::strings + // or NUL-terminated char * to the header list. No normalization + // is performed on the strings. No conformance test is + // performed (names may contain spaces, colons, etc.). + // + void append(const std::string & name, const std::string & value); + void append(const char * name, const char * value); + + // Extract a name/value pair from a raw byte array using + // the first colon character as a separator. Input string + // does not need to be NUL-terminated. Resulting name/value + // pair is appended to the header list. + // + // Normalization is performed on the name/value pair as + // follows: + // - name is lower-cased according to mostly ASCII rules + // - name is left- and right-trimmed of spaces and tabs + // - value is left-trimmed of spaces and tabs + // - either or both of name and value may be zero-length + // + // By convention, headers read from the wire will be normalized + // in this fashion prior to delivery to any HttpHandler code. + // Headers to be written to the wire are left as appended to + // the list. + void appendNormal(const char * header, size_t size); + + // Perform a simple, case-sensitive search of the header list + // returning a pointer to the value of the last matching header + // in the header list. If none is found, a NULL pointer is returned. + // + // Any pointer returned references objects in the container itself + // and will have the same lifetime as this class. If you want + // the value beyond the lifetime of this instance, make a copy. + // + // @arg name C-style string giving the name of a header + // to search. The comparison is case-sensitive + // though list entries may have been normalized + // to lower-case. + // + // @return NULL if the header wasn't found otherwise + // a pointer to a std::string in the container. + // Pointer is valid only for the lifetime of + // the container or until container is modifed. + const std::string * find(const std::string &name) const; + const std::string * find(const char * name) const + { + return find(std::string(name)); + } // Remove the header from the list if found. - // + // void remove(const std::string &name); void remove(const char *name); - // Count of headers currently in the list. - size_type size() const - { - return mHeaders.size(); - } + // Count of headers currently in the list. + size_type size() const + { + return mHeaders.size(); + } - // Standard std::vector-based forward iterators. - iterator begin(); - const_iterator begin() const; - iterator end(); - const_iterator end() const; + // Standard std::vector-based forward iterators. + iterator begin(); + const_iterator begin() const; + iterator end(); + const_iterator end() const; - // Standard std::vector-based reverse iterators. - reverse_iterator rbegin(); - const_reverse_iterator rbegin() const; - reverse_iterator rend(); - const_reverse_iterator rend() const; + // Standard std::vector-based reverse iterators. + reverse_iterator rbegin(); + const_reverse_iterator rbegin() const; + reverse_iterator rend(); + const_reverse_iterator rend() const; public: - // For unit tests only - not a public API - container_t & getContainerTESTONLY(); - + // For unit tests only - not a public API + container_t & getContainerTESTONLY(); + protected: - container_t mHeaders; - + container_t mHeaders; + }; // end class HttpHeaders } // end namespace LLCore -#endif // _LLCORE_HTTP_HEADERS_H_ +#endif // _LLCORE_HTTP_HEADERS_H_ |