Version x.xx
============
o Added copyright notices.
o Other exceptions than sfException are now removed.
o sfORBScheduler and sfFIFOScheduler are now combined to one class, the
  new combined class is called sfFIFOScheduler.

Version 0.05
============
o The sfORBScheduler class is not inherited from OBReactor anymore. This
  is to prevent replicating OmniBroker code in the scheduler and to make
  the structure more flexible in general (different kind of reactors can
  be used easily).

Version 0.04
============
o All error handling is implemented using exceptions.
o New scheduler: sfORBScheduler is capable of running the CORBA events
  of the OmniBroker ORB v1.0 or higher (see http://www.ooc.com/ for
  more information about OmniBroker).
o Some bugfixes

Version 0.03
============
o FIFO scheduler performance tremendously enhanced by not using STL
  list to implementing the runnable tasks' queue. The list structure
  is inside FIFOHandle class, so it can be inserted into and removed 
  from the runnable queue very quickly.
o Only one timeout, read or write operation per task can be scheduled
  to FIFO scheduler at any given time.
o If FIFO scheduler becomes empty and cannot proceed anymore, it will
  throw an sfSchedulerEmptyException instead of printing error and
  exiting.
o Removed unnecessary sfScheduler parameter from sfSchedulerHandle
  constructor.
o Added and improved comments.

Version 0.02
============
o Class structure slightly reworked: tasks now call scheduler via
  instances of sfSchedulerHandle classes that are provided by the
  scheduler. The handles are implemented internally in the concrete
  schedulers. This is to bring a little more abstraction to the
  scheduler interface.
o sfFIFOScheduler slightly improved with the help of shceduler handles.
  Now it doesn't create and delete objects every time a task is inserted
  into scheduler queues, but simply inserts the handle.
o Demo program improved to better illustrate the usage of SF.

Version 0.01
============
o Initial version
