/******************************************************************************
*                                                                             *
*  File: ComponentEvent.h                                                     *
*                                                                             *
*  Description: An abstract class for representing events related to          *
*               ComponentConfigurators.                                       *
*                                                                             *
*  Project: 2K - Automatic Configuration                                      *
*  Author: Fabio Kon (f-kon@cs.uiuc.edu)                                      *
*                                                                             *
*******************************************************************************

   Revision Control Information

   $Revision: $

   $Log: $
******************************************************************************/

#if !defined (COMPONENT_EVENT_H)
#define       COMPONENT_EVENT_H

class ComponentEvent {
  protected:
    /* unknown event String. */
    static const char * const UNKNOWN;

  public:
    enum EVENT {
        DELETION     = 1,
        FAILURE      = 2,
        RECONFIGURED = 4,
        REPLACED     = 8,
        MIGRATED     = 16
    };
    
/* Converts the event into a String.
 * @return a string describing the event.
 */
    virtual const char * toString() const = 0;
};

#endif
