Mercurial > hg > Papers > 2018 > mitsuki-prosym
view Paper/src/context1.c @ 0:dbbe5ef644fb
add
author | mir3636 |
---|---|
date | Tue, 21 Nov 2017 19:56:10 +0900 |
parents | |
children |
line wrap: on
line source
struct Context { enum Code next; struct Worker* worker; struct TaskManager* taskManager; int codeNum; __code (**code) (struct Context*); void* heapStart; void* heap; long heapLimit; int dataNum; int idgCount; //number of waiting dataGear int odg; int maxOdg; int workerId; union Data **data; }; union Data { struct Meta { enum DataType type; long size; struct Queue* wait; // tasks waiting this dataGear } meta; struct Task { enum Code code; struct Queue* dataGears; int idsCount; } Task; // Stack Interface struct Stack { union Data* stack; union Data* data; union Data* data1; enum Code whenEmpty; enum Code clear; enum Code push; enum Code pop; enum Code isEmpty; enum Code get; enum Code next; } Stack; // Stack implementations struct SingleLinkedStack { struct Element* top; } SingleLinkedStack; struct Element { union Data* data; struct Element* next; } Element; struct Node { int key; // comparable data segment union Data* value; struct Node* left; struct Node* right; // need to balancing enum Color { Red, Black, } color; } Node; }; // union Data end this is necessary for context generator