示例#1
0
 /**
  * Deliver a message to the group.
  *
  * @message the message to send
  * @return true if it was successfully sent to all members
  */
 public synchronized boolean deliverMessage(Message message) {
   boolean rv = true;
   /*
    * deliver to the output queues of all the group members
    *
    * synchronization: called within the monitor
    */
   // message.groupid=this.gid;
   for (BaseUser c : m_members) {
     ChatUser cu = (ChatUser) c;
     if (cu.isActive()) {
       try {
         System.out.println("sending to: " + cu.getUserName());
         cu.write(message);
       } catch (Exception e) {
         e.printStackTrace();
       }
       // rv = c.deliverMessage(message) && rv;
     } else {
       // rv = false;
       try {
         server.db.sendOfflineGroupMessage(
             cu.userid, this.gid, message.getSrc(), message.getMessage());
       } catch (SQLException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
       }
     }
   }
   return rv;
 }