Action executed to answer a request

Introduced properties

abstract fun answer(request: HttpRequest, truncated_uri: String): HttpResponse

nitcorn :: Action :: answer

Prepare a HttpResponse destined to the client in response to the request
protected fun prepare_respond_and_close(request: HttpRequest, truncated_uri: String, http_server: HttpServer)

nitcorn :: Action :: prepare_respond_and_close

Full to a request with sending the response and closing of the http_server

Redefined properties

redef type SELF: Action

nitcorn $ Action :: SELF

Type of this instance, automatically specialized in every class
redef fun prepare_respond_and_close(request: HttpRequest, truncated_uri: String, http_server: HttpServer)

nitcorn :: log $ Action :: prepare_respond_and_close

Full to a request with sending the response and closing of the http_server

All properties

fun !=(other: nullable Object): Bool

core :: Object :: !=

Have self and other different values?
fun ==(other: nullable Object): Bool

core :: Object :: ==

Have self and other the same value?
type CLASS: Class[SELF]

core :: Object :: CLASS

The type of the class of self.
type SELF: Object

core :: Object :: SELF

Type of this instance, automatically specialized in every class
abstract fun answer(request: HttpRequest, truncated_uri: String): HttpResponse

nitcorn :: Action :: answer

Prepare a HttpResponse destined to the client in response to the request
protected fun class_factory(name: String): CLASS

core :: Object :: class_factory

Implementation used by get_class to create the specific class.
fun class_name: String

core :: Object :: class_name

The class name of the object.
fun get_class: CLASS

core :: Object :: get_class

The meta-object representing the dynamic type of self.
fun hash: Int

core :: Object :: hash

The hash code of the object.
init init

core :: Object :: init

fun inspect: String

core :: Object :: inspect

Developer readable representation of self.
protected fun inspect_head: String

core :: Object :: inspect_head

Return "CLASSNAME:#OBJECTID".
intern fun is_same_instance(other: nullable Object): Bool

core :: Object :: is_same_instance

Return true if self and other are the same instance (i.e. same identity).
fun is_same_serialized(other: nullable Object): Bool

core :: Object :: is_same_serialized

Is self the same as other in a serialization context?
intern fun is_same_type(other: Object): Bool

core :: Object :: is_same_type

Return true if self and other have the same dynamic type.
intern fun object_id: Int

core :: Object :: object_id

An internal hash code for the object based on its identity.
fun output

core :: Object :: output

Display self on stdout (debug only).
intern fun output_class_name

core :: Object :: output_class_name

Display class name on stdout (debug only).
protected fun prepare_respond_and_close(request: HttpRequest, truncated_uri: String, http_server: HttpServer)

nitcorn :: Action :: prepare_respond_and_close

Full to a request with sending the response and closing of the http_server
fun serialization_hash: Int

core :: Object :: serialization_hash

Hash value use for serialization
intern fun sys: Sys

core :: Object :: sys

Return the global sys object, the only instance of the Sys class.
abstract fun to_jvalue(env: JniEnv): JValue

core :: Object :: to_jvalue

fun to_s: String

core :: Object :: to_s

User readable representation of self.
package_diagram nitcorn::Action Action core::Object Object nitcorn::Action->core::Object nitcorn::FileServer FileServer nitcorn::FileServer->nitcorn::Action nitcorn::ProxyAction ProxyAction nitcorn::ProxyAction->nitcorn::Action nitcorn::RestfulAction RestfulAction nitcorn::RestfulAction->nitcorn::Action nitcorn::HTCPCPAction HTCPCPAction nitcorn::HTCPCPAction->nitcorn::Action nitcorn::StaticAction StaticAction nitcorn::StaticAction->nitcorn::Action nitcorn::ParamAction ParamAction nitcorn::ParamAction->nitcorn::Action popcorn::App App popcorn::App->nitcorn::Action nitcorn::MyAction MyAction nitcorn::MyAction->nitcorn::RestfulAction nitcorn::MyAction... ... nitcorn::MyAction...->nitcorn::MyAction

Parents

interface Object

core :: Object

The root of the class hierarchy.

Children

class App

popcorn :: App

Popcorn application.
class FileServer

nitcorn :: FileServer

A simple file server
class HTCPCPAction

nitcorn :: HTCPCPAction

Nitcorn Action used to answer requests.
class ParamAction

nitcorn :: ParamAction

An action that uses parameterized uris to customize the output.
class ProxyAction

nitcorn :: ProxyAction

A request proxy. All requests received by this action will be redirected to
class RestfulAction

nitcorn :: RestfulAction

Action with restful methods
class StaticAction

nitcorn :: StaticAction

An action that responds by displaying a static html content.

Descendants

class MyAction

nitcorn :: MyAction

An action root to its restful methods

Class definitions

nitcorn $ Action
# Action executed to answer a request
abstract class Action
end
lib/nitcorn/server_config.nit:74,1--76,3

nitcorn :: reactor $ Action
redef abstract class Action
	# Prepare a `HttpResponse` destined to the client in response to the `request`
	#
	# `request` is fully formed request object with a reference to the session
	# if one already exists.
	#
	# `truncated_uri` is the ending of the full request URI, truncated from the route
	# leading to this `Action`.
	fun answer(request: HttpRequest, truncated_uri: String): HttpResponse is abstract

	# Full  to a `request` with sending the response and closing of the `http_server`
	#
	# Must users only need to implement `answer`, this method is for advanced use only.
	# It can be used to delay an answer until an event is raised or work is done on a different thread.
	#
	# By default this method calls `answer`, relays the response to `http_server.respond` and closes `http_server`.
	protected fun prepare_respond_and_close(request: HttpRequest, truncated_uri: String, http_server: HttpServer)
	do
		var response = answer(request, truncated_uri)
		http_server.respond response
		http_server.close
	end
end
lib/nitcorn/reactor.nit:99,1--121,3

nitcorn :: log $ Action
redef class Action

	redef fun prepare_respond_and_close(request, truncated_uri, http_server) do
		if not log_nitcorn_actions then
			super
			return
		end

		print "{http_server.remote_address}: {class_name} prepare for url:'{request.url}' body:'{request.body}' cookie:'{request.cookie.join(",", ":")}'"

		var clock = new Clock

		super

		var perf = sys.perfs[class_name]
		perf.add(clock.lapse)
		if perf.count % perfs_print_period == 0 then print "{class_name} perfs: {perf}:"
	end
end
lib/nitcorn/log.nit:23,1--41,3