Пример #1
0
void Triggerable::HandleMessage(MessageChunk messageChunk) {
	Component::HandleMessage(messageChunk);

	int prevActive   = this->activeSwitches.size();
	int prevSwitches = this->subscriptions.size();
	int currActive, currSwitches;

	switch (messageChunk->GetMessageType()) {
		case MESSAGE_TYPE_SWITCH_ACTIVATED:
			this->markAsActive(messageChunk->GetSenderId());
			currActive = this->activeSwitches.size();
			currSwitches = this->subscriptions.size();
			this->compareCounts(prevActive, prevSwitches, currActive, currSwitches);
			break;

		case MESSAGE_TYPE_SWITCH_DEACTIVATED:
			this->markAsInactive(messageChunk->GetSenderId());
			currActive = this->activeSwitches.size();
			currSwitches = this->subscriptions.size();
			this->compareCounts(prevActive, prevSwitches, currActive, currSwitches);
			break;
	}
}