#include "port.h"
#include "semaphore.h"
#include "sync.h"
#include <stdio.h>

Sync::Sync(SYNC_TYPE type, int semKey, int num_tests)
 : Semaphore(semKey, num_tests)
 , m_type(type)
{
}

int Sync::decrement_and_wait(int nr_sem)
{
  switch(m_type)
  {
  case eSem:
    return Semaphore::decrement_and_wait(nr_sem);
  case ePrompt:
    printf("\n%d:\n", nr_sem);
    fflush(NULL);
    char buf[16];
    fgets(buf, sizeof(buf) - 1, stdin);
  default:
  break;
  }
  return 0;
}

int Sync::get_semid()
{
  if(m_type == eSem)
    return Semaphore::get_semid();
  return 0;
}


syntax highlighted by Code2HTML, v. 0.9.1