Example #1
0
 /**
  * File event in database
  *
  * @param  integer $farmid
  * @param  string  $event_name
  */
 public static function FireEvent($farmid, Event $event)
 {
     if (!self::$observersSetuped) {
         self::setupObservers();
     }
     $startTime = microtime(true);
     try {
         $event->SetFarmID($farmid);
         $handledObservers = array();
         // Notify class observers
         foreach (self::$EventObservers as $observer) {
             $observerStartTime = microtime(true);
             $observer->SetFarmID($farmid);
             if ($event instanceof CustomEvent) {
                 call_user_func(array($observer, "OnCustomEvent"), $event);
             } else {
                 call_user_func(array($observer, "On{$event->GetName()}"), $event);
             }
             $handledObservers[substr(strrchr(get_class($observer), "\\"), 1)] = microtime(true) - $observerStartTime;
         }
     } catch (Exception $e) {
         Logger::getLogger(__CLASS__)->fatal(sprintf("Exception thrown in Scalr::FireEvent(%s:%s, %s:%s): %s", @get_class($observer), $event->GetName(), $e->getFile(), $e->getLine(), $e->getMessage()));
         throw new Exception($e->getMessage());
     }
     $event->handledObservers = $handledObservers;
     self::StoreEvent($farmid, $event, microtime(true) - $startTime);
 }
Example #2
0
 /**
  * File event in database
  *
  * @param integer $farmid
  * @param string $event_name
  */
 public static function FireEvent($farmid, Event $event)
 {
     if (!self::$observersSetuped) {
         self::setupObservers();
     }
     try {
         $event->SetFarmID($farmid);
         // Notify class observers
         foreach (self::$EventObservers as $observer) {
             $observer->SetFarmID($farmid);
             Logger::getLogger(__CLASS__)->info(sprintf("Event %s. Observer: %s", "On{$event->GetName()}", get_class($observer)));
             call_user_func(array($observer, "On{$event->GetName()}"), $event);
         }
     } catch (Exception $e) {
         Logger::getLogger(__CLASS__)->fatal(sprintf("Exception thrown in Scalr::FireEvent(%s:%s, %s:%s): %s", @get_class($observer), $event->GetName(), $e->getFile(), $e->getLine(), $e->getMessage()));
         throw new Exception($e->getMessage());
     }
     // invoke StoreEvent method
     $reflect = new ReflectionMethod("Scalr", "StoreEvent");
     $reflect->invoke(null, $farmid, $event);
 }