Class: CZMQ::FFI::ZhttpServer
- Inherits:
-
Object
- Object
- CZMQ::FFI::ZhttpServer
- Defined in:
- lib/czmq-ffi-gen/czmq/ffi/zhttp_server.rb
Overview
This class is 100% generated using zproject.
Simple http server. To start handling requests:
-
Create a dealer socket
-
Connect the socket to the server backend address provided in the options.
-
Create a zhttp_request.
-
Call zhttp_request_recv to accept a new request.
-
Call zhttp_response_send to send a response.
You can connect as many dealers as you want. The Server is using simple dealer socket to route the requests.
NOTE: when using libmicrohttpd << 0.9.34 the application might experience high CPU usage due to the lack of MHD_suspend_connection and MHD_resume_connection APIs. It is recommended to use this class only with libmicrohttpd at least 0.9.34 in production.
Defined Under Namespace
Classes: DestroyedError
Class Method Summary collapse
- .__new ⇒ Object
- .create_finalizer_for(ptr) ⇒ Proc
-
.new(options) ⇒ CZMQ::ZhttpServer
Create a new http server.
-
.test(verbose) ⇒ void
Self test of this class.
Instance Method Summary collapse
-
#__ptr ⇒ ::FFI::Pointer
(also: #to_ptr)
Return internal pointer.
-
#__ptr_give_ref ⇒ ::FFI::MemoryPointer
Nullify internal pointer and return pointer pointer.
-
#__undef_finalizer ⇒ void
Undefines the finalizer for this object.
-
#destroy ⇒ void
Destroy an http server.
-
#initialize(ptr, finalize = true) ⇒ ZhttpServer
constructor
Attaches the pointer ptr to this instance and defines a finalizer for it if necessary.
- #null? ⇒ Boolean
-
#port ⇒ Integer
Return the port the server is listening on.
Constructor Details
#initialize(ptr, finalize = true) ⇒ ZhttpServer
Attaches the pointer ptr to this instance and defines a finalizer for it if necessary.
38 39 40 41 42 43 44 45 46 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zhttp_server.rb', line 38 def initialize(ptr, finalize = true) @ptr = ptr if @ptr.null? @ptr = nil # Remove null pointers so we don't have to test for them. elsif finalize @finalizer = self.class.create_finalizer_for @ptr ObjectSpace.define_finalizer self, @finalizer end end |
Class Method Details
.__new ⇒ Object
32 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zhttp_server.rb', line 32 alias :__new :new |
.create_finalizer_for(ptr) ⇒ Proc
49 50 51 52 53 54 55 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zhttp_server.rb', line 49 def self.create_finalizer_for(ptr) Proc.new do ptr_ptr = ::FFI::MemoryPointer.new :pointer ptr_ptr.write_pointer ptr ::CZMQ::FFI.zhttp_server_destroy ptr_ptr end end |
Instance Method Details
#__ptr ⇒ ::FFI::Pointer Also known as: to_ptr
Return internal pointer
62 63 64 65 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zhttp_server.rb', line 62 def __ptr raise DestroyedError unless @ptr @ptr end |
#__ptr_give_ref ⇒ ::FFI::MemoryPointer
This detaches the current instance from the native object and thus makes it unusable.
Nullify internal pointer and return pointer pointer.
73 74 75 76 77 78 79 80 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zhttp_server.rb', line 73 def __ptr_give_ref raise DestroyedError unless @ptr ptr_ptr = ::FFI::MemoryPointer.new :pointer ptr_ptr.write_pointer @ptr __undef_finalizer if @finalizer @ptr = nil ptr_ptr end |
#__undef_finalizer ⇒ void
Only use this if you need to and can guarantee that the native object will be freed by other means.
This method returns an undefined value.
Undefines the finalizer for this object.
85 86 87 88 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zhttp_server.rb', line 85 def __undef_finalizer ObjectSpace.undefine_finalizer self @finalizer = nil end |
#destroy ⇒ void
This method returns an undefined value.
Destroy an http server
102 103 104 105 106 107 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zhttp_server.rb', line 102 def destroy() return unless @ptr self_p = __ptr_give_ref result = ::CZMQ::FFI.zhttp_server_destroy(self_p) result end |
#null? ⇒ Boolean
57 58 59 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zhttp_server.rb', line 57 def null? !@ptr or @ptr.null? end |
#port ⇒ Integer
Return the port the server is listening on.
112 113 114 115 116 117 |
# File 'lib/czmq-ffi-gen/czmq/ffi/zhttp_server.rb', line 112 def port() raise DestroyedError unless @ptr self_p = @ptr result = ::CZMQ::FFI.zhttp_server_port(self_p) result end |