Android Open Source - msghandle Image Response Handle






From Project

Back to project page msghandle.

License

The source code is released under:

GNU General Public License

If you think the Android project msghandle listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.anlong.msghandle.handle;
/*from ww w.j ava2  s.co  m*/
import java.io.InputStream;
import java.util.Timer;
import java.util.TimerTask;

import com.anlong.msghandle.common.HandleStaticValue;
import com.anlong.msghandle.request.Request100;
import com.anlong.msghandle.response.Response1000;
import com.anlong.msghandle.socket.InitFileSocketServer;
import com.anlong.msghandle.util.ByteAndInt;
import com.anlong.msghandle.util.IMLog;
import com.anlong.msghandle.util.Utils;

public class ImageResponseHandle {
  // ???
  private static Timer timer = null;
  // ??????????????
  private static boolean timerCancel = false;
  // ??????????
  private static long startTime = 0;
  // ??????????
  private static long endTime = 0;
  // ??????
  private static boolean timeOut = false;
  InputStream inputStream = null;
  // ???????????
  int isSize = 0;
  
  public void ImageDecode(Object request){
    
    try {
      if (request == null)
        return;
      
      if(request instanceof Request100){
        
        IMLog.anlong("??????????...");
        
        inputStream = InitFileSocketServer.getInputStream();
        if (inputStream == null)
          return;
        
        // TODO ????????
        Request100 request100 = (Request100)request;
        
        // ?????????,4???
        int msgSize = 0;
        
        // ???????
        getInstanceTimer(inputStream);
        while (!timerCancel) {
          //IMLog.anlong("?????????..");
          // ??0.5?
          Thread.sleep(500);
        }
        
        // TODO ??????
        if (timeOut){
          IMLog.anlong("???????????!");
          // TODO ????????????
          try {
            Object obj = setResponse1000(request100, msgSize, (short)1);
            Utils.notifyMessage(obj,HandleStaticValue.BCODE1002);
          } catch (Exception e) {
            IMLog.anlong("?????????? " + HandleStaticValue.BCODE1002 + "!");
            IMLog.anlong("???????????????????:" + HandleStaticValue.BCODE1002 + "!");
          }
          // ??Socket??
          closeFileSocket();
          return;
        }
        
        // TODO ?????????????????
        byte[] dataSize = new byte[HandleStaticValue.PROTOCOL_SIZE];
        if(inputStream.read(dataSize) == HandleStaticValue.PROTOCOL_SIZE){
          msgSize = ByteAndInt.byteArray2Int(dataSize);
          IMLog.anlong("?????????????:" + msgSize);
        }
        
        dataSize = null;
        
        // TODO ??????
        try {
          Object obj = setResponse1000(request100, msgSize, (short)0);
          Utils.notifyMessage(obj,HandleStaticValue.BCODE1002);
        } catch (Exception e) {
          IMLog.anlong("?????????? " + HandleStaticValue.BCODE1002 + "!");
          IMLog.anlong("???????????????????:" + HandleStaticValue.BCODE1002 + "!");
        }
        // ??Socket??
        closeFileSocket();
      }// end instance of
      
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      if(InitFileSocketServer.getInstance() != null){
        try {
          // TODO ??Socket
          InitFileSocketServer.closeSocketConnection();
        } catch (Exception e2) {
          e2.printStackTrace();
        }
      }
    }
  }
  
  /**
   * @Title: closeFileSocket 
   * @Description: TODO ??Socket??
   * @author anlong 
   * @param      
   * @return void     
   * @throws
   */
  private void closeFileSocket(){
    try {
      if(InitFileSocketServer.getInstance() != null){
        try {
          // TODO ??Socket
          InitFileSocketServer.closeSocketConnection();
        } catch (Exception e2) {
          e2.printStackTrace();
        }
      }
    } catch (Exception e) {
      e.printStackTrace();
    }  
  }
  
  /**
   * @Title: setResponse1000 
   * @Description: TODO ?????
   * @author anlong 
   * @param @param request100
   * @param @param msgSize
   * @param @param rtCode
   * @param @return     
   * @return Response1000     
   * @throws
   */
  private Response1000 setResponse1000(Request100 request100,Integer msgSize,short rtCode){
    try {
      Response1000 response1000 = new Response1000();
      response1000.setFileCode(request100.getFileCode());
      response1000.setFileSize(msgSize);
      response1000.setRtCode(rtCode);
      response1000.setSendType(request100.getSendType());
      response1000.setImageType(request100.getImageType());
      return response1000;
    } catch (Exception e) {
      e.printStackTrace();
    }
    return null;
  }
  
  /**
   * @Title: notifyMessage 
   * @Description: TODO ???????
   * @author anlong 
   * @throws
   */
  private static void getInstanceTimer(InputStream inputStream){
        if ( timer == null ){
            timer = new Timer();
            // ??????????
            startTime = System.currentTimeMillis();
            // ?1?????????,?????2?    
            timer.schedule(new RunTask(inputStream), 1000, 2000);
            //timer.cancel();
        }
    }
  
  /**
   * @Title: notifyMessage 
   * @Description: TODO ???
   * @author anlong 
   * @throws
   */
  static class RunTask extends TimerTask{
    private InputStream inputStream1 = null;
    
    public RunTask(InputStream inputStream){
      inputStream1 = inputStream;
      
      // ????????
      endTime = System.currentTimeMillis();
      // ??20???
      if((endTime - startTime) > HandleStaticValue.SERVER_CONNECTION_TIMEOUT){
        timeOut = true;
        timerCancel = true;
        timer.cancel();
      }
    }
    @Override
    public void run(){
      try {
        if ( inputStream1.available() != 0 ){
          timerCancel = true;
          timer.cancel();
        }
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
  }


}




Java Source Code List

com.anlong.msghandle.common.BaseMessage.java
com.anlong.msghandle.common.HandleStaticValue.java
com.anlong.msghandle.common.HandleTimer.java
com.anlong.msghandle.common.MessageTimer.java
com.anlong.msghandle.event.MessageEventListener.java
com.anlong.msghandle.event.MessageEventSource.java
com.anlong.msghandle.event.MessageEvent.java
com.anlong.msghandle.file.InitImageFileServer.java
com.anlong.msghandle.handle.ImageRequestHandle.java
com.anlong.msghandle.handle.ImageResponseHandle.java
com.anlong.msghandle.handle.MsgRequestHandle.java
com.anlong.msghandle.handle.MsgResponseHandle.java
com.anlong.msghandle.impl.AppParamImpl.java
com.anlong.msghandle.impl.AppSystemMessageReportImpl.java
com.anlong.msghandle.impl.AuthenticationImpl.java
com.anlong.msghandle.impl.BroadcastImpl.java
com.anlong.msghandle.impl.CommonContactImpl.java
com.anlong.msghandle.impl.DepImpl.java
com.anlong.msghandle.impl.DepInfoListImpl.java
com.anlong.msghandle.impl.EditGroupImpl.java
com.anlong.msghandle.impl.EditGroupUserImpl.java
com.anlong.msghandle.impl.EditUserInfoImpl.java
com.anlong.msghandle.impl.ExitPreventGroupImpl.java
com.anlong.msghandle.impl.GetGroupInfoImpl.java
com.anlong.msghandle.impl.GetHistoryMessageImpl.java
com.anlong.msghandle.impl.GetUserInfoImpl105.java
com.anlong.msghandle.impl.GroupInfoListImpl.java
com.anlong.msghandle.impl.GroupShareImpl.java
com.anlong.msghandle.impl.HeartImpl103.java
com.anlong.msghandle.impl.LocationImpl.java
com.anlong.msghandle.impl.LoginImpl101.java
com.anlong.msghandle.impl.MessageStateReportImpl.java
com.anlong.msghandle.impl.OnlineStateImpl102.java
com.anlong.msghandle.impl.OnlineUserListImpl110.java
com.anlong.msghandle.impl.SendImageFile.java
com.anlong.msghandle.impl.SendMessageImpl203.java
com.anlong.msghandle.impl.SystemParaImpl.java
com.anlong.msghandle.impl.UnreadMessageImpl.java
com.anlong.msghandle.impl.UpdatePasswordImpl.java
com.anlong.msghandle.impl.UserInfoListImpl.java
com.anlong.msghandle.interfac.AbstractMsgHandle.java
com.anlong.msghandle.interfac.BaseActivity.java
com.anlong.msghandle.interfac.MessageHandleActivity.java
com.anlong.msghandle.interfac.MsgHandle.java
com.anlong.msghandle.message.InitRequMessageServer.java
com.anlong.msghandle.message.InitRespMessageServer.java
com.anlong.msghandle.request.BaseRequest.java
com.anlong.msghandle.request.Request100.java
com.anlong.msghandle.request.Request101.java
com.anlong.msghandle.request.Request102.java
com.anlong.msghandle.request.Request103.java
com.anlong.msghandle.request.Request105.java
com.anlong.msghandle.request.Request110.java
com.anlong.msghandle.request.Request203.java
com.anlong.msghandle.request.Request301.java
com.anlong.msghandle.response.BaseResponse.java
com.anlong.msghandle.response.Response1000.java
com.anlong.msghandle.response.Response1010.java
com.anlong.msghandle.response.Response1020.java
com.anlong.msghandle.response.Response1030.java
com.anlong.msghandle.response.Response1050.java
com.anlong.msghandle.response.Response1100.java
com.anlong.msghandle.response.Response2030.java
com.anlong.msghandle.response.Response3010.java
com.anlong.msghandle.service.InitServerManager.java
com.anlong.msghandle.service.ServerManager.java
com.anlong.msghandle.socket.InitFileSocketServer.java
com.anlong.msghandle.socket.InitMsgSocketServer.java
com.anlong.msghandle.util.ByteAndInt.java
com.anlong.msghandle.util.FormatTransfer.java
com.anlong.msghandle.util.IMLog.java
com.anlong.msghandle.util.ReflectionUtil.java
com.anlong.msghandle.util.Utils.java
com.anlong.msghandle.vo.AppMessage.java
com.anlong.msghandle.vo.Application.java
com.anlong.msghandle.vo.BroadcastMessage.java
com.anlong.msghandle.vo.DepInfo.java
com.anlong.msghandle.vo.GroupInfo.java
com.anlong.msghandle.vo.GroupShare.java
com.anlong.msghandle.vo.OnlineUser.java
com.anlong.msghandle.vo.ReportState.java
com.anlong.msghandle.vo.SimpleUserInfo.java
com.anlong.msghandle.vo.UserInfo.java
com.anlong.msghandle.vo.UserMessage.java