void SchedulingTraceProcessor::registerLitmusExecutionTime(struct st_event_record* ster) {

  LitmusSchedulingTraceRecord *litmusSchedulingTraceRecord;

  litmusSchedulingTraceRecord = new LitmusExecutionTime(ST_RELEASE);
  litmusSchedulingTraceRecord->setTaskSet(taskSet);

  // Registers ST_RELEASE, ST_COMPLETION, ST_TERMINATION.
  registeredTraceRecords.insert(pair<int,LitmusSchedulingTraceRecord*>
				(ster->hdr.pid,litmusSchedulingTraceRecord));
}
void SchedulingTraceProcessor::registerLitmusSelfSuspension(struct st_event_record* ster) {

  LitmusSchedulingTraceRecord *litmusSchedulingTraceRecord;

  litmusSchedulingTraceRecord = new LitmusSelfSuspension(ST_BLOCK);
  litmusSchedulingTraceRecord->setTaskSet(taskSet);

  // Registers ST_BLOCK, ST_RESUME.
  registeredSelfSuspensions.insert(pair<int,LitmusSchedulingTraceRecord*>
				     (ster->hdr.pid,litmusSchedulingTraceRecord));
}
void SchedulingTraceProcessor::registerLitmusInterArrivalTime(struct st_event_record* ster) {

  LitmusSchedulingTraceRecord *litmusSchedulingTraceRecord;

  litmusSchedulingTraceRecord = new LitmusInterArrivalTime(ST_RELEASE);
  litmusSchedulingTraceRecord->setTaskSet(taskSet);

  // Registers ST_RELEASE.
  registeredInterArrivalTimeTraceRocords.insert(pair<int,LitmusSchedulingTraceRecord*>
						  (ster->hdr.pid,litmusSchedulingTraceRecord));

}
void SchedulingTraceProcessor::registerLitmusSelfSuspension(struct st_event_record* ster) {

  LitmusSchedulingTraceRecord *litmusSchedulingTraceRecord;
  map<pair<int,int>,LitmusSchedulingTraceRecord*>::iterator it;

  litmusSchedulingTraceRecord = new LitmusSelfSuspension(ST_BLOCK);
  litmusSchedulingTraceRecord->setTaskSet(taskSet);

  it = registeredSelfSuspensions.begin();
  registeredSelfSuspensions.insert(it, pair<pair<int,int>,LitmusSchedulingTraceRecord*>
				(pair<int,int>(ST_BLOCK,ster->hdr.pid),litmusSchedulingTraceRecord));

  // register the completion scheduling trace; notice that LitmusSchedulingTraceRecord is the same
  it = registeredSelfSuspensions.begin();
  registeredSelfSuspensions.insert(it,pair<pair<int,int>,LitmusSchedulingTraceRecord*>
				(pair<int,int>(ST_RESUME,ster->hdr.pid),litmusSchedulingTraceRecord));
}
void SchedulingTraceProcessor::registerLitmusInterArrivalTime(struct st_event_record* ster) {

  LitmusSchedulingTraceRecord *litmusSchedulingTraceRecord;
  map<pair<int,int>,LitmusSchedulingTraceRecord*>::iterator it;

  litmusSchedulingTraceRecord = new LitmusInterArrivalTime(ST_RELEASE);
  litmusSchedulingTraceRecord->setTaskSet(taskSet);

  it = registeredInterArrivalTimeTraceRocords.begin();
  registeredInterArrivalTimeTraceRocords.insert(it, pair<pair<int,int>,LitmusSchedulingTraceRecord*>
  				(pair<int,int>(ST_COMPLETION,ster->hdr.pid),litmusSchedulingTraceRecord));

  // register the release scheduling trace; notice that LitmusSchedulingTraceRecord is the same
  it = registeredInterArrivalTimeTraceRocords.begin();
  registeredInterArrivalTimeTraceRocords.insert(it,pair<pair<int,int>,LitmusSchedulingTraceRecord*>
  				(pair<int,int>(ST_RELEASE,ster->hdr.pid),litmusSchedulingTraceRecord));

}
void SchedulingTraceProcessor::registerLitmusExecutionTime(struct st_event_record* ster) {

  LitmusSchedulingTraceRecord *litmusSchedulingTraceRecord;
  map<pair<int,int>,LitmusSchedulingTraceRecord*>::iterator it;

  litmusSchedulingTraceRecord = new LitmusExecutionTime(ST_RELEASE);
  litmusSchedulingTraceRecord->setTaskSet(taskSet);

  it = registeredTraceRecords.begin();
  registeredTraceRecords.insert(it, pair<pair<int,int>,LitmusSchedulingTraceRecord*>
				(pair<int,int>(ST_RELEASE,ster->hdr.pid),litmusSchedulingTraceRecord));

  // register the completion scheduling trace; notice that LitmusSchedulingTraceRecord is the same
  it = registeredTraceRecords.begin();
  registeredTraceRecords.insert(it,pair<pair<int,int>,LitmusSchedulingTraceRecord*>
				(pair<int,int>(ST_COMPLETION,ster->hdr.pid),litmusSchedulingTraceRecord));

  // register the termintation scheduling trace; notice that LitmusSchedulingTraceRecord is the same
  it = registeredTraceRecords.begin();
  registeredTraceRecords.insert(it,pair<pair<int,int>,LitmusSchedulingTraceRecord*>
				(pair<int,int>(ST_TERMINATION,ster->hdr.pid),litmusSchedulingTraceRecord));
}