+/* {{{ long HttpMessage::getType()
+ *
+ * Get Message Type. (HTTP_MSG_NONE|HTTP_MSG_REQUEST|HTTP_MSG_RESPONSE)
+ */
+PHP_METHOD(HttpMessage, getType)
+{
+ zval *type;
+ getObject(http_message_object, obj);
+
+ NO_ARGS;
+
+ type = GET_PROP(obj, type);
+ RETURN_LONG(Z_LVAL_P(type));
+}
+/* }}} */
+
+/* {{{ int HttpMessage::getResponseCode()
+ *
+ * Get the Response Code of the Message.
+ */
+PHP_METHOD(HttpMessage, getResponseCode)
+{
+ zval *status;
+ getObject(http_message_object, obj);
+
+ NO_ARGS;
+
+ if (obj->message->type != HTTP_MSG_RESPONSE) {
+ RETURN_NULL();
+ }
+
+ status = GET_PROP(obj, responseCode);
+ RETURN_LONG(Z_LVAL_P(status));
+}
+/* }}} */
+
+/* {{{ string HttpMessage::getRequestMethod()
+ *
+ * Get the Request Method of the Message.
+ */
+PHP_METHOD(HttpMessage, getRequestMethod)
+{
+ zval *method;
+ getObject(http_message_object, obj);
+
+ NO_ARGS;
+
+ if (obj->message->type != HTTP_MSG_REQUEST) {
+ RETURN_NULL();
+ }
+
+ method = GET_PROP(obj, requestMethod);
+ RETURN_STRINGL(Z_STRVAL_P(method), Z_STRLEN_P(method), 1);
+}
+/* }}} */
+
+/* {{{ string HttpMessage::getRequestUri()
+ *
+ * Get the Request URI of the Message.
+ */
+PHP_METHOD(HttpMessage, getRequestUri)
+{
+ zval *uri;
+ getObject(http_message_object, obj);
+
+ NO_ARGS;
+
+ if (obj->message->type != HTTP_MSG_REQUEST) {
+ RETURN_NULL();
+ }
+
+ uri = GET_PROP(obj, requestUri);
+ RETURN_STRINGL(Z_STRVAL_P(uri), Z_STRLEN_P(uri), 1);
+}
+/* }}} */
+
+/* {{{ string HttpMessage::getHttpVersion()
+ *
+ * Get the HTTP Protocol Version of the Message.
+ */
+PHP_METHOD(HttpMessage, getHttpVersion)
+{
+ zval *version;
+ char ver[4] = {0};
+ getObject(http_message_object, obj);
+
+ NO_ARGS;
+
+ version = GET_PROP(obj, httpVersion);
+
+ if (Z_TYPE_P(version) == IS_NULL) {
+ RETURN_NULL();
+ }
+
+ sprintf(ver, "1.1f", Z_DVAL_P(version));
+ RETURN_STRINGL(ver, 3, 1);
+}
+/* }}} */
+
+/* {{{ string HttpMessage::toString()
+ *
+ * Get the string representation of the Message.
+ */
+PHP_METHOD(HttpMessage, toString)
+{
+ char *string;
+ size_t length;
+ getObject(http_message_object, obj);
+
+ NO_ARGS;
+
+ http_message_tostring(obj->message, &string, &length);
+ RETURN_STRINGL(string, length, 0);
+}
+/* }}} */
+