Пример #1
0
int Drill::deltaConf(int *input) {
	int out = lambda();
	time_remaining = 0;
	parts += *input;
	if(expire->getRealTime() < process_time) {
		timeAdvance(parts, process_time);
		return out;
	}
	parts -= 1;
	timeAdvance(parts, process_time);
	return out;
}
Пример #2
0
int Drill::deltaInternal() {
	int out = lambda();
	if(parts > 0) {
		parts -= 1;
		throwEvent(1);
		timeAdvance(parts, process_time);
	} else {
		throwEvent(1);
		timeAdvance(0, process_time);
	}
	return out;
}
Пример #3
0
InternalEvent * Simulator::buildInternalEvent(const Time& currentTime)
{
    Time time(timeAdvance());

    if (not isInfinity(time)) {
        return new InternalEvent(currentTime + time, this);
    } else {
        return 0;
    }
}
Пример #4
0
void Drill::deltaExternal(Time2D *time, int *input) {
	double current_time = time->getRealTime();
	time_remaining = expire->getRealTime() - current_time;
	std::cout << "DE-" << this->name << ":TR " << time_remaining << std::endl;
	parts += *input;
	if(time_remaining <= 0) {
		time_remaining = process_time;
	}
	timeAdvance(parts, time_remaining);
}
Пример #5
0
 /************** DEVS functions *****************/
 vd::Time init(vd::Time time) override
 {
     devs_state = INIT;
     processIn(time, INTERNAL);
     return timeAdvance();
 }
Пример #6
0
 virtual devs::Time init(devs::Time time) override
 {
     internalTransition(time);
     return timeAdvance();
 }