network.scheduler - Palamecia/mint GitHub Wiki

Module

load network.scheduler

This module provides the Network.Scheduler class which manages synchronization between the network devices.

Packages

Enums

Network.Scheduler.PollEvent

This enum describe the events that can be watched on a specific channel.

Constant Value Description
Accept 0x0004 This event is set when a new connection is detected.
Close 0x0010 This event is set when the connection is closed by the peer.
Error 0x0008 This event is set when an error is detected.
Read 0x0001 This event is set when the endpoint has some waiting data to read.
Write 0x0002 This event is set when the data can be sent to the endpoint.

Classes

Network.Scheduler

This class manages synchronization between the network devices.

Members

Modifiers Member Description
+ class PollDescriptor This class describe the polling state of a specific channel.
+ enum PollEvent This enum describe the events that can be watched on a specific channel.
- final channels Internal channels context.
- @ g_instance Global object instance.
- @ g_lib Global library handle.
+ @ const instance Returns the global instance of Network.Scheduler.
- final loopRunning Internal synchronization loop state.
- final mutex Internal channel access mutex.
~ const new Internal constructor.
+ @ const poll Waits until the activation of a requested event of a channel from fdset or ...
+ const remove Removes the channel from the scheduler. Returns true if channel is watc...
+ const run Runs the synchronization loop synchronously. This loop calls synchronize fore...
+ const startSynchronizationLoop Starts the synchronization loop in a separate thread. This loop calls synchro...
+ const stopSynchronizationLoop Stops the synchronization loop thread.
# const synchronizationLoop Runs the synchronization loop. This loop calls synchronize forever until stop...
+ const synchronize Waits until the activation of a requested event of a watched channel or until...
- final thread Internal synchronization thead handle.
+ const watch Adds a channel to the scheduler. The channel object must provides the g...

Network.Scheduler.PollDescriptor

This class describe the polling state of a specific channel.

Members

Modifiers Member Description
- @ g_lib Global library handle.
+ const getEvents Returns the events activated on the channel as a mask of value from the Netwo...
+ const getHandle Returns the handle of the channel used by Network.Scheduler.
+ const getRequestedEvents Returns the events requested on the channel as a mask of value from the Netwo...
- final handle Internal channel handle.
+ const new Creates a new context for the channel given by channel. The channel objec...
+ const poll Waits until the activation of a requested event of the channel or until tim...
+ const setRequestedEvents Sets requested events to events on the channel. The events parameter must...

Descriptions

Network.Scheduler.PollDescriptor.g_lib

lib ('libmint-network')

Global library handle.

Network.Scheduler.PollDescriptor.getEvents

def (const self)

Returns the events activated on the channel as a mask of value from the Network.Scheduler.PollEvent enum.

Only events passed to setRequestedEvents can be activated.

Network.Scheduler.PollDescriptor.getHandle

def (const self)

Returns the handle of the channel used by Network.Scheduler.

Network.Scheduler.PollDescriptor.getRequestedEvents

def (const self)

Returns the events requested on the channel as a mask of value from the Network.Scheduler.PollEvent enum.

Network.Scheduler.PollDescriptor.handle

null

Internal channel handle.

Network.Scheduler.PollDescriptor.new

def (self, channel)

Creates a new context for the channel given by channel. The channel object must provide a getSocket method returning the socket as a number.

Network.Scheduler.PollDescriptor.poll

def (self, timeout = 500)

Waits until the activation of a requested event of the channel or until timeout milliseconds if no event become activated during this period.

Returns true if an event was activated; otherwise returns false.

After a call to this method, the value returned by getEvents is updated.

Network.Scheduler.PollDescriptor.setRequestedEvents

def (self, events)

Sets requested events to events on the channel. The events parameter must be a mask of values from the Network.Scheduler.PollEvent enum.

Network.Scheduler.PollEvent.Accept

0x0004

This event is set when a new connection is detected.

Network.Scheduler.PollEvent.Close

0x0010

This event is set when the connection is closed by the peer.

Network.Scheduler.PollEvent.Error

0x0008

This event is set when an error is detected.

Network.Scheduler.PollEvent.Read

0x0001

This event is set when the endpoint has some waiting data to read.

Network.Scheduler.PollEvent.Write

0x0002

This event is set when the data can be sent to the endpoint.

Network.Scheduler.channels

{}

Internal channels context.

Network.Scheduler.g_instance

none

Global object instance.

Network.Scheduler.g_lib

lib ('libmint-network')

Global library handle.

Network.Scheduler.instance

def ()

Returns the global instance of Network.Scheduler.

Network.Scheduler.loopRunning

false

Internal synchronization loop state.

Network.Scheduler.mutex

null

Internal channel access mutex.

Network.Scheduler.new

def (self)

Internal constructor.

Network.Scheduler.poll

def (fdset, timeout)

Waits until the activation of a requested event of a channel from fdset or until timeout milliseconds if no event become activated during this period. The fdset parameter must be an array of Network.Scheduler.PollDescriptor.

Returns true if an event was activated; otherwise returns false.

After a call to this method, the values returned by Network.Scheduler.PollDescriptor.getEvents are updated.

Network.Scheduler.remove

def (self, channel)

Removes the channel from the scheduler. Returns true if channel is watched by the scheduler; otherwise returns false.

Network.Scheduler.run

def (self, timeout = 500)

Runs the synchronization loop synchronously. This loop calls synchronize forever until no more channel is watched. The timeout parameter is forwarded to the called method.

Network.Scheduler.startSynchronizationLoop

def (self, timeout = 500)

Starts the synchronization loop in a separate thread. This loop calls synchronize forever until stopSynchronizationLoop is called. The timeout parameter is forwarded to the called method.

Network.Scheduler.stopSynchronizationLoop

def (self)

Stops the synchronization loop thread.

Network.Scheduler.synchronizationLoop

def (self, timeout)

Runs the synchronization loop. This loop calls synchronize forever until stopSynchronizationLoop is called. The timeout parameter is forwarded to the called method.

Network.Scheduler.synchronize

def (self, timeout = 500)

Waits until the activation of a requested event of a watched channel or until timeout milliseconds if no event become activated during this period. The watched events on a channel are selected using the Network.AsynchronousChannel.getEvents method. Any activated event on a channel will then be notified to the channel using the corresponding method:

Event AsynchronousChannel method
Network.Scheduler.PollEvent.Read Network.AsynchronousChannel.notifyReadable
Network.Scheduler.PollEvent.Write Network.AsynchronousChannel.notifyWritable
Network.Scheduler.PollEvent.Accept Network.AsynchronousChannel.notifyConnection
Network.Scheduler.PollEvent.Error Network.AsynchronousChannel.notifyError
Network.Scheduler.PollEvent.Close Network.AsynchronousChannel.notifyClosed

Returns true if an event was activated; otherwise returns false.

After a call to this method, the values returned by Network.Scheduler.PollDescriptor.getEvents are updated.

Network.Scheduler.thread

null

Internal synchronization thead handle.

Network.Scheduler.watch

def (self, channel)

Adds a channel to the scheduler. The channel object must provides the getSocket method. The same interface than Network.AsynchronousChannel is also expected to automaticaly update the object on events. Returns true if the channel is successfully watched; otherwise returns false.