Yume Project 3.0
Touhou-inspired Danmaku game made in C only
Chargement...
Recherche...
Aucune correspondance
Référence du fichier cotask.h
#include <stdint.h>
#include <stdlib.h>
#include "ecs.h"
#include "../include/koishi.h"
#include "list.h"
#include "common.h"
#include "coevent.h"

Aller au code source de ce fichier.

Classes

struct  BoxedTask
 Une BoxedTask est une référence faible a une task. Plus de détails...
struct  CoWaitResult

Définitions de type

typedef struct CoTask CoTask
typedef void *(* CoTaskFunc) (void *arg, size_t argsize)
typedef enum CoStatus CoStatus
typedef struct BoxedTask BoxedTask
 Une BoxedTask est une référence faible a une task.
typedef struct CoWaitResult CoWaitResult

Énumérations

enum  CoStatus { CO_STATUS_SUSPENDED = KOISHI_SUSPENDED , CO_STATUS_RUNNING = KOISHI_RUNNING , CO_STATUS_IDLE = KOISHI_IDLE , CO_STATUS_DEAD = KOISHI_DEAD }

Fonctions

typedef LIST_ANCHOR (CoTask) CoTaskList
void cotask_cancel (CoTask *task)
 Annule une tache.
BoxedTask cotask_box (CoTask *task)
 Emballer une task dans une boite (ref faible).
CoTaskcotask_unbox (BoxedTask box)
 A partir d'une boite, retrouver la task correspondante.
CoStatus cotask_status (CoTask *task)
 Renvoie le statut de la task.
CoTaskcotask_active (void)
 Renvoie la cotask actuellement en train de run.
void * cotask_resume (CoTask *task, void *arg)
 Redonne la main a la task.
void * cotask_yield (void *arg)
 Yield la coroutine active (redonne la main au main).
int cotask_wait (int delay)
 Permet de yield pdt delay frames.
int cotask_wait_subtasks (void)
 Wait les soustaches actives.
CoWaitResult cotask_wait_event (CoEvent *evt)
 Wait un événement.
CoWaitResult cotask_wait_event_once (CoEvent *evt)
 Wait un événement une seule fois.
CoWaitResult cotask_wait_event_or_die (CoEvent *evt)
 Wait un événement, sinon cancel la tache.
CoSchedcotask_get_sched (CoTask *task)
 Renvoie le scheduler d'une tache.
Entity cotask_bind_to_entity (CoTask *task, Entity ent)
 Rattache une tache a une entité
CoTaskEvents * cotask_get_events (CoTask *task)
 Renvoie les événements d'une tache.
Entity cotask_host_entity (CoTask *task, Tag ent_type)
void cotask_host_events (CoTask *task, unsigned int num_events, CoEvent events[num_events])
void cotask_free (CoTask *task)
void cotask_force_finish (CoTask *task)

Documentation des définitions de type

◆ BoxedTask

typedef struct BoxedTask BoxedTask

Une BoxedTask est une référence faible a une task.

◆ CoStatus

typedef enum CoStatus CoStatus

◆ CoTask

typedef struct CoTask CoTask

◆ CoTaskFunc

typedef void *(* CoTaskFunc) (void *arg, size_t argsize)

◆ CoWaitResult

typedef struct CoWaitResult CoWaitResult

Documentation du type de l'énumération

◆ CoStatus

enum CoStatus
Valeurs énumérées
CO_STATUS_SUSPENDED 
CO_STATUS_RUNNING 
CO_STATUS_IDLE 
CO_STATUS_DEAD 

Documentation des fonctions

◆ cotask_active()

CoTask * cotask_active ( void )

Renvoie la cotask actuellement en train de run.

Renvoie
CoTask*

◆ cotask_bind_to_entity()

Entity cotask_bind_to_entity ( CoTask * task,
Entity ent )

Rattache une tache a une entité

Paramètres
task
ent
Renvoie
Entity

◆ cotask_box()

BoxedTask cotask_box ( CoTask * task)

Emballer une task dans une boite (ref faible).

Paramètres
task
Renvoie
BoxedTask

◆ cotask_cancel()

void cotask_cancel ( CoTask * task)

Annule une tache.

Paramètres
task

◆ cotask_force_finish()

void cotask_force_finish ( CoTask * task)

◆ cotask_free()

void cotask_free ( CoTask * task)

◆ cotask_get_events()

CoTaskEvents * cotask_get_events ( CoTask * task)

Renvoie les événements d'une tache.

Paramètres
task
Renvoie
CoTaskEvents*

◆ cotask_get_sched()

CoSched * cotask_get_sched ( CoTask * task)

Renvoie le scheduler d'une tache.

Paramètres
task
Renvoie
CoSched*

◆ cotask_host_entity()

Entity cotask_host_entity ( CoTask * task,
Tag ent_type )

◆ cotask_host_events()

void cotask_host_events ( CoTask * task,
unsigned int num_events,
CoEvent events[num_events] )

◆ cotask_resume()

void * cotask_resume ( CoTask * task,
void * arg )

Redonne la main a la task.

Paramètres
task
arg
Renvoie
void*

◆ cotask_status()

CoStatus cotask_status ( CoTask * task)

Renvoie le statut de la task.

Paramètres
task
Renvoie
CoStatus

◆ cotask_unbox()

CoTask * cotask_unbox ( BoxedTask box)

A partir d'une boite, retrouver la task correspondante.

Si l'id de la boite ne correspond pas a l'id de la task, alors cette derniere a été recyclée et on renvoie NULL

Paramètres
box
Renvoie
CoTask*

◆ cotask_wait()

int cotask_wait ( int delay)

Permet de yield pdt delay frames.

Paramètres
delay
Renvoie
int nombre de frames restantes

◆ cotask_wait_event()

CoWaitResult cotask_wait_event ( CoEvent * evt)

Wait un événement.

Paramètres
evt
Renvoie
CoWaitResult

◆ cotask_wait_event_once()

CoWaitResult cotask_wait_event_once ( CoEvent * evt)

Wait un événement une seule fois.

Paramètres
evt
Renvoie
CoWaitResult

◆ cotask_wait_event_or_die()

CoWaitResult cotask_wait_event_or_die ( CoEvent * evt)

Wait un événement, sinon cancel la tache.

Paramètres
evt
Renvoie
CoWaitResult

◆ cotask_wait_subtasks()

int cotask_wait_subtasks ( void )

Wait les soustaches actives.

Renvoie
int

◆ cotask_yield()

void * cotask_yield ( void * arg)

Yield la coroutine active (redonne la main au main).

Paramètres
arg
Renvoie
void*

◆ LIST_ANCHOR()

typedef LIST_ANCHOR ( CoTask )