1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
#pragma once
#include "ValueArray.h"
#include "Type.h"
namespace storm {
STORM_PKG(core.lang);
// Create types for unknown implementations.
Type *createQueue(Str *name, ValueArray *params);
/**
* Type for queues.
*/
class QueueType : public Type {
STORM_CLASS;
public:
// Create.
STORM_CTOR QueueType(Str *name, Type *contents);
// Late init.
virtual void lateInit();
// Parameter.
Value STORM_FN param() const;
protected:
// Lazy loading.
virtual Bool STORM_FN loadAll();
private:
// Content type.
Type *contents;
};
/**
* Iterator type for queues.
*/
class QueueIterType : public Type {
STORM_CLASS;
public:
// Create.
QueueIterType(Type *param);
protected:
// Lazy loading.
virtual Bool STORM_FN loadAll();
private:
// Content type.
Type *contents;
};
Bool STORM_FN isQueue(Value v);
Value STORM_FN unwrapQueue(Value v);
Value STORM_FN wrapQueue(Value v);
}
|