+ /**\r
+ * Called via a callback when a session becomes ready\r
+ *\r
+ * @param array $data Data\r
+ */\r
+ public function handle_session_ready($data) {\r
+ $sessionFailed = false;\r
+ $wm = Msn_waiting_message::top($data['to']);\r
+ while ($wm != NULL) {\r
+ if ($sessionFailed) {\r
+ $this->plugin->sendMessage($wm->screenname, $wm->message);\r
+ $sessionFailed = true;\r
+ } elseif (!$this->conn->sendMessage($wm->screenname, $wm->message, $ignore)) {\r
+ $this->plugin->sendMessage($wm->screenname, $wm->message);\r
+ }\r
+\r
+ $wm->delete();\r
+ $wm = Msn_waiting_message::top($data['to']);\r
+ }\r
+ }\r
+\r
+ /**\r
+ * Requeue messages from the waiting table so we try\r
+ * to send them again\r
+ *\r
+ * @return void\r
+ */\r
+ protected function requeue_waiting_messages() {\r
+ $wm = Msn_waiting_message::top();\r
+ while ($wm != NULL) {\r
+ $this->plugin->sendMessage($wm->screenname, $wm->message);\r
+ $wm->delete();\r
+ $wm = Msn_waiting_message::top();\r
+ }\r
+ }\r
+\r