RtrvPmPon.java :  » App » learnandroid » com » lgnortel » r3 » r3nemanager » r3oam » Android Open Source

Android Open Source » App » learnandroid 
learnandroid » com » lgnortel » r3 » r3nemanager » r3oam » RtrvPmPon.java
package com.lgnortel.r3.r3nemanager.r3oam;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketTimeoutException;
import java.net.UnknownHostException;
import java.util.logging.Logger;

import com.lgnortel.lib.logger.LoggerUtil;
import com.lgnortel.network.networkview.ErrorInspect;
import com.lgnortel.r3.r3nemanager.r3pdu.CommandExcutor;
import com.lgnortel.r3.r3nemanager.r3pdu.MpHeaderInfo;
import com.lgnortel.r3.r3nemanager.r3pdu.MpHeaderPdu;
import com.lgnortel.r3.r3nemanager.r3pdu.NeConstants;
import com.lgnortel.r3.r3nemanager.r3pdu.NeUtil;
import com.lgnortel.r3.r3rmi.NeOamIF;

/**
 * Copyright (c) 2008 LG-Nortel, Inc. All Rights Reserved.
 * 
 * CONFIDENTIALITY AND LIMITED USE: This software, including any software of third parties embodied herein, contains code, information, data and concepts which are confidential and/or proprietary to LG-Nortel and such third parties. This software is licensed for use solely in accordance with the terms and conditions of the applicable license agreement with LG-Nortel or its authorized distributor, and not for any other use or purpose. No redistribution of this software by any party is permitted.
 * 
 * 
 *<p>
 * Title: RtrvPmPon.java
 * </p>
 *<p>
 * Description: The Command Dispatcher in EA Manager 1100 Server processes a command requested from GUI using this class. This class processes a command for displaying PM information of SW-PI port.
 * </p>
 *<p>
 * Copyright: Copyright(c) 2008 LG-NORTEL ALL Rights Reserved
 * </p>
 *<p>
 * Company: LG-Nortel
 * </p>
 * 
 *@author OH MOON GUE
 *@version 0.1
 *@created 2009. 1. 21.
 *@modified 2009. 1. 21.
 *@product EFA R4.0 EMS
 *@sw_block nemanager
 *@function_no
 */

public class RtrvPmPon extends CommandExcutor {

  private final static int PM_OLT_PDU_LENGTH = 412 + 16;

  /**
   * Description: Constructor of this class
   * 
   * @param cmdTag
   *            : If many clients request with a same command, the command code is equal each other and the cmdTag numbers increase by one.
   * @param viewId
   *            : View ID of GUI
   * @param userId
   *            : Login user ID
   * @param nodeId
   *            : Node ID
   * @param shelfId
   *            : Shelf ID
   * @param cmdCode
   *            : Command code
   * @param data
   *            : A message to be interchanged between EA Manager 1100 GUI and EA Manager 1100 Server
   */
  public RtrvPmPon(int cmdTag, int viewId, int userId, int nodeId, int shelfId, int cmdCode, Object[] data) {

    this.cmdTag = cmdTag;
    this.viewId = viewId;
    this.userId = userId;
    this.cmdCode = cmdCode;
    this.nodeId = nodeId;
    this.data = data;
  }

  /**
   * Description: This method hands over a command requested from GUI to the NEIF process to be existed in the MCP board of EAST 1100 and sends a result to perform a command to EA Manager 1100 Server(Command Dispatcher Thread).
   * 
   * @param cmdTag
   *            : If many clients request with a same command, the command code is equal each other and the cmdTag numbers increase by one.
   * @param viewId
   *            : View ID of GUI
   * @param userId
   *            : Login user ID
   * @param nodeId
   *            : Node ID
   * @param shelfId
   *            : Shelf ID
   * @param cmdCode
   *            : Command code
   * @param data
   *            : A message to be interchanged between EA Manager 1100 GUI and EA Manager 1100 Server
   */
  public static void execute(int cmdTag, int viewId, int userId, int nodeId, int shelfId, int cmdCode, Object[] data) {

    // Log4J
    Logger logger = LoggerUtil.getInstance().getLogger("com.lgnortel.r3.r3nemanager");
    String neIpAddr = dbSelecter.getIpAddress(nodeId);
    NeOamIF.RtrvPmPonIF inputObject = (NeOamIF.RtrvPmPonIF) data[0];
    NeOamIF.RtrvPmPonIF[] outputObject = null;

    DatagramSocket socket = null;
    byte[] receiveBuffer = new byte[NeConstants.PDU_LENGTH];
    byte[] resultBuffer = null;
    byte[] ackBuffer = null;
    int rsltByteNum = 0;
    byte[] pmItemValue = new byte[4];
    NeUtil nu = new NeUtil();

    int local_shelf = 0;
    int local_slot = 0;
    int local_port = 0;
    int local_sysType = 0;

    // 15min
    long cur_15_txByteHi;
    long pre_15_txByteHi;
    long cur_15_txByteLo;
    long pre_15_txByteLo;
    long cur_15_txUniPkt;
    long pre_15_txUniPkt;
    long cur_15_txBrdPkt;
    long pre_15_txBrdPkt;
    long cur_15_txMltPkt;
    long pre_15_txMltPkt;
    long cur_15_rxByteHi;
    long pre_15_rxByteHi;
    long cur_15_rxByteLo;
    long pre_15_rxByteLo;
    long cur_15_rxUniPkt;
    long pre_15_rxUniPkt;
    long cur_15_rxBrdPkt;
    long pre_15_rxBrdPkt;
    long cur_15_rxMltPkt;
    long pre_15_rxMltPkt;
    long cur_15_rxSz64;
    long pre_15_rxSz64;
    long cur_15_rxSz127;
    long pre_15_rxSz127;
    long cur_15_rxSz255;
    long pre_15_rxSz255;
    long cur_15_rxSz511;
    long pre_15_rxSz511;
    long cur_15_rxSz1023;
    long pre_15_rxSz1023;
    long cur_15_rxSz1518;
    long pre_15_rxSz1518;
    long cur_15_rxSzOver1518;
    long pre_15_rxSzOver1518;
    long cur_15_txLatCol;
    long pre_15_txLatCol;
    long cur_15_txDeferr;
    long pre_15_txDeferr;
    long cur_15_rxCrcErr;
    long pre_15_rxCrcErr;
    long cur_15_rxDprpkt;
    long pre_15_rxDprpkt;
    long cur_15_rxUdsize;
    long pre_15_rxUdsize;
    long cur_15_rxFrgmnt;
    long pre_15_rxFrgmnt;
    long cur_15_rxOvsize;
    long pre_15_rxOvsize;
    long cur_15_rxJabber;
    long pre_15_rxJabber;

    // 1 hour
    long cur_txByteHi;
    long pre_txByteHi;
    long cur_txByteLo;
    long pre_txByteLo;
    long cur_txUniPkt;
    long pre_txUniPkt;
    long cur_txBrdPkt;
    long pre_txBrdPkt;
    long cur_txMltPkt;
    long pre_txMltPkt;
    long cur_rxByteHi;
    long pre_rxByteHi;
    long cur_rxByteLo;
    long pre_rxByteLo;
    long cur_rxUniPkt;
    long pre_rxUniPkt;
    long cur_rxBrdPkt;
    long pre_rxBrdPkt;
    long cur_rxMltPkt;
    long pre_rxMltPkt;
    long cur_rxSz64;
    long pre_rxSz64;
    long cur_rxSz127;
    long pre_rxSz127;
    long cur_rxSz255;
    long pre_rxSz255;
    long cur_rxSz511;
    long pre_rxSz511;
    long cur_rxSz1023;
    long pre_rxSz1023;
    long cur_rxSz1518;
    long pre_rxSz1518;
    long cur_rxSzOver1518;
    long pre_rxSzOver1518;
    long cur_txLatCol;
    long pre_txLatCol;
    long cur_txDeferr;
    long pre_txDeferr;
    long cur_rxCrcErr;
    long pre_rxCrcErr;
    long cur_rxDprpkt;
    long pre_rxDprpkt;
    long cur_rxUdsize;
    long pre_rxUdsize;
    long cur_rxFrgmnt;
    long pre_rxFrgmnt;
    long cur_rxOvsize;
    long pre_rxOvsize;
    long cur_rxJabber;
    long pre_rxJabber;

    MpHeaderInfo headerInfo = null;

    if (neIpAddr.equals("") || neIpAddr.length() == 0) {
      logger.warning("[RTRV-PM-PON] NE IP ADDRESS NOT FOUND !");
      cmdDispatcher.cmdResponse(cmdTag, viewId, userId, nodeId, shelfId, cmdCode, data, ErrorInspect.FAILURE);
      return;
    }

    try {

      // length
      MpHeaderPdu header = new MpHeaderPdu(NeConstants.CODE, NeConstants.PVER, 1, // version
          cmdTag, // invokeId
          NeConstants.NO_MORE, // moreFlag
          0, // seqNo
          NeConstants.RTRV_CMD, // cmdType
          NeConstants.SEND_CMD, // msgType
          NeConstants.NEIF, // channel
          shelfId, // sid
          userId, neIpAddr, // aganetIp
          0, // result
          32, // length
          cmdCode // commandId
      );

      ByteArrayOutputStream baos = new ByteArrayOutputStream();
      DataOutputStream out_stream = new DataOutputStream(baos);

      // write header info
      out_stream.write(header.getStream(), 0, NeConstants.HEADER_LENGTH);

      // write payload( cid,lid)
      out_stream.writeInt(0); // objId
      out_stream.writeInt(inputObject.shelfId); // sid
      out_stream.writeInt(inputObject.slotId); // cid
      out_stream.writeInt(inputObject.portId); // lid
      out_stream.writeInt(inputObject.sysType); // ontId
      out_stream.writeInt(inputObject.type);

      out_stream.writeInt(0); // if_apd_version_tag
      out_stream.writeInt(0); // if_ont_get_rsp_apd_type

      out_stream.flush();
      out_stream.close();

      byte[] sendBuffer = baos.toByteArray();
      DataInputStream in_stream = null;

      DatagramPacket packet = new DatagramPacket(sendBuffer, sendBuffer.length, InetAddress.getByName(neIpAddr), NeConstants.AGENT_PORT);

      socket = new DatagramSocket();

      socket.setSoTimeout(NeConstants.TIME_OUT_30);

      socket.send(packet);

      packet = new DatagramPacket(receiveBuffer, receiveBuffer.length);

      while (true) {

        socket.receive(packet);

        in_stream = new DataInputStream(new ByteArrayInputStream(receiveBuffer));

        // header processing
        headerInfo = new MpHeaderInfo(in_stream);

        // invokeId 
        if (headerInfo.getInvokeId() != header.getInvokeId()) {
          continue; // .. it would timeout
        }

        // check result(succes or not)
        if (headerInfo.getResult() != NeConstants.SUCCESS) {
          // i need error code
          in_stream.close();
          socket.close();
          cmdDispatcher.cmdResponse(cmdTag, viewId, userId, nodeId, shelfId, cmdCode, outputObject, headerInfo.getResult());
          return;
        }

        rsltByteNum = packet.getLength();

        if (rsltByteNum > 0) {

          if (headerInfo.getNEVersion() == NeConstants.R31) {
            resultBuffer = new byte[rsltByteNum - NeConstants.HEADER_LENGTH];
          } else {
            resultBuffer = new byte[rsltByteNum - NeConstants.HEADER_LENGTH_R30];
          }

          int infoCnt = resultBuffer.length / PM_OLT_PDU_LENGTH;

          if (inputObject.type == NeConstants.PM_INTERVAL_ALL) {
            outputObject = new NeOamIF.RtrvPmPonIF[infoCnt * 4];
          } else { // 15 min , 1 houre case
            outputObject = new NeOamIF.RtrvPmPonIF[infoCnt * 2];
          }

          for (int i = 0; i < infoCnt; i++) {

            in_stream.skipBytes(4); // objId
            local_shelf = in_stream.readInt(); // 4byte cid
            local_slot = in_stream.readInt(); // 4byte cid
            local_port = in_stream.readInt(); // lid
            local_sysType = in_stream.readInt(); // ontid

            if (inputObject.type == NeConstants.PM_INTERVAL_ALL) {

              outputObject[4 * i] = new NeOamIF.RtrvPmPonIF();
              outputObject[4 * i + 1] = new NeOamIF.RtrvPmPonIF();
              outputObject[4 * i + 2] = new NeOamIF.RtrvPmPonIF();
              outputObject[4 * i + 3] = new NeOamIF.RtrvPmPonIF();

              outputObject[4 * i].nodeId = nodeId;
              outputObject[4 * i + 1].nodeId = nodeId;
              outputObject[4 * i + 2].nodeId = nodeId;
              outputObject[4 * i + 3].nodeId = nodeId;

              outputObject[4 * i].shelfId = local_shelf;
              outputObject[4 * i + 1].shelfId = local_shelf;
              outputObject[4 * i + 2].shelfId = local_shelf;
              outputObject[4 * i + 3].shelfId = local_shelf;

              outputObject[4 * i].slotId = local_slot;
              outputObject[4 * i + 1].slotId = local_slot;
              outputObject[4 * i + 2].slotId = local_slot;
              outputObject[4 * i + 3].slotId = local_slot;

              outputObject[4 * i].portId = local_port;
              outputObject[4 * i + 1].portId = local_port;
              outputObject[4 * i + 2].portId = local_port;
              outputObject[4 * i + 3].portId = local_port;

              outputObject[4 * i].sysType = local_sysType;
              outputObject[4 * i + 1].sysType = local_sysType;
              outputObject[4 * i + 2].sysType = local_sysType;
              outputObject[4 * i + 3].sysType = local_sysType;

            } else {

              outputObject[2 * i] = new NeOamIF.RtrvPmPonIF();
              outputObject[2 * i + 1] = new NeOamIF.RtrvPmPonIF();

              outputObject[2 * i].nodeId = nodeId;
              outputObject[2 * i + 1].nodeId = nodeId;

              outputObject[2 * i].shelfId = local_shelf;
              outputObject[2 * i + 1].shelfId = local_shelf;

              outputObject[2 * i].slotId = local_slot;
              outputObject[2 * i + 1].slotId = local_slot;

              outputObject[2 * i].portId = local_port;
              outputObject[2 * i + 1].portId = local_port;

              outputObject[2 * i].sysType = local_sysType;
              outputObject[2 * i + 1].sysType = local_sysType;
            }

            // type     [15_cur][15_pre][1_cur][1_pre]

            in_stream.read(pmItemValue);
            cur_15_txByteHi = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_15_txByteHi = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            cur_txByteHi = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_txByteHi = nu.getUnsignedInt(pmItemValue);

            in_stream.read(pmItemValue);
            cur_15_txByteLo = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_15_txByteLo = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            cur_txByteLo = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_txByteLo = nu.getUnsignedInt(pmItemValue);

            in_stream.read(pmItemValue);
            cur_15_txUniPkt = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_15_txUniPkt = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            cur_txUniPkt = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_txUniPkt = nu.getUnsignedInt(pmItemValue);

            in_stream.read(pmItemValue);
            cur_15_txBrdPkt = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_15_txBrdPkt = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            cur_txBrdPkt = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_txBrdPkt = nu.getUnsignedInt(pmItemValue);

            in_stream.read(pmItemValue);
            cur_15_txMltPkt = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_15_txMltPkt = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            cur_txMltPkt = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_txMltPkt = nu.getUnsignedInt(pmItemValue);

            in_stream.read(pmItemValue);
            cur_15_rxByteHi = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_15_rxByteHi = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            cur_rxByteHi = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_rxByteHi = nu.getUnsignedInt(pmItemValue);

            in_stream.read(pmItemValue);
            cur_15_rxByteLo = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_15_rxByteLo = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            cur_rxByteLo = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_rxByteLo = nu.getUnsignedInt(pmItemValue);

            in_stream.read(pmItemValue);
            cur_15_rxUniPkt = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_15_rxUniPkt = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            cur_rxUniPkt = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_rxUniPkt = nu.getUnsignedInt(pmItemValue);

            in_stream.read(pmItemValue);
            cur_15_rxBrdPkt = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_15_rxBrdPkt = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            cur_rxBrdPkt = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_rxBrdPkt = nu.getUnsignedInt(pmItemValue);

            in_stream.read(pmItemValue);
            cur_15_rxMltPkt = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_15_rxMltPkt = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            cur_rxMltPkt = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_rxMltPkt = nu.getUnsignedInt(pmItemValue);

            in_stream.read(pmItemValue);
            cur_15_rxSz64 = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_15_rxSz64 = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            cur_rxSz64 = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_rxSz64 = nu.getUnsignedInt(pmItemValue);

            in_stream.read(pmItemValue);
            cur_15_rxSz127 = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_15_rxSz127 = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            cur_rxSz127 = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_rxSz127 = nu.getUnsignedInt(pmItemValue);

            in_stream.read(pmItemValue);
            cur_15_rxSz255 = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_15_rxSz255 = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            cur_rxSz255 = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_rxSz255 = nu.getUnsignedInt(pmItemValue);

            in_stream.read(pmItemValue);
            cur_15_rxSz511 = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_15_rxSz511 = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            cur_rxSz511 = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_rxSz511 = nu.getUnsignedInt(pmItemValue);

            in_stream.read(pmItemValue);
            cur_15_rxSz1023 = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_15_rxSz1023 = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            cur_rxSz1023 = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_rxSz1023 = nu.getUnsignedInt(pmItemValue);

            in_stream.read(pmItemValue);
            cur_15_rxSz1518 = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_15_rxSz1518 = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            cur_rxSz1518 = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_rxSz1518 = nu.getUnsignedInt(pmItemValue);

            in_stream.read(pmItemValue);
            cur_15_rxSzOver1518 = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_15_rxSzOver1518 = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            cur_rxSzOver1518 = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_rxSzOver1518 = nu.getUnsignedInt(pmItemValue);

            in_stream.read(pmItemValue);
            cur_15_txLatCol = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_15_txLatCol = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            cur_txLatCol = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_txLatCol = nu.getUnsignedInt(pmItemValue);

            in_stream.read(pmItemValue);
            cur_15_txDeferr = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_15_txDeferr = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            cur_txDeferr = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_txDeferr = nu.getUnsignedInt(pmItemValue);

            in_stream.read(pmItemValue);
            cur_15_rxCrcErr = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_15_rxCrcErr = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            cur_rxCrcErr = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_rxCrcErr = nu.getUnsignedInt(pmItemValue);

            in_stream.read(pmItemValue);
            cur_15_rxDprpkt = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_15_rxDprpkt = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            cur_rxDprpkt = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_rxDprpkt = nu.getUnsignedInt(pmItemValue);

            in_stream.read(pmItemValue);
            cur_15_rxUdsize = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_15_rxUdsize = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            cur_rxUdsize = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_rxUdsize = nu.getUnsignedInt(pmItemValue);

            in_stream.read(pmItemValue);
            cur_15_rxFrgmnt = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_15_rxFrgmnt = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            cur_rxFrgmnt = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_rxFrgmnt = nu.getUnsignedInt(pmItemValue);

            in_stream.read(pmItemValue);
            cur_15_rxOvsize = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_15_rxOvsize = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            cur_rxOvsize = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_rxOvsize = nu.getUnsignedInt(pmItemValue);

            in_stream.read(pmItemValue);
            cur_15_rxJabber = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_15_rxJabber = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            cur_rxJabber = nu.getUnsignedInt(pmItemValue);
            in_stream.read(pmItemValue);
            pre_rxJabber = nu.getUnsignedInt(pmItemValue);

            in_stream.skipBytes(4); // 4byte if_apd_version_tag
            in_stream.skipBytes(4); // 4byte if_user_his_ne_get_rsp_apd_type

            if (inputObject.type == NeConstants.PM_INTERVAL_ALL) {
              // [15_cur][15_pre][1_cur][1_pre]
              for (int j = 0; j < 4; j++) {

                if (j == 0) { // 15_cur
                  outputObject[i * 4 + j].type = NeConstants.PM_CURRENT_15MIN; //
                  outputObject[i * 4 + j].txByteHi = cur_15_txByteHi;
                  outputObject[i * 4 + j].txByteLo = cur_15_txByteLo;
                  outputObject[i * 4 + j].txUnipkt = cur_15_txUniPkt;
                  outputObject[i * 4 + j].txBrdpkt = cur_15_txBrdPkt;
                  outputObject[i * 4 + j].txMltpkt = cur_15_txMltPkt;
                  outputObject[i * 4 + j].rxByteHi = cur_15_rxByteHi;
                  outputObject[i * 4 + j].rxByteLo = cur_15_rxByteLo;
                  outputObject[i * 4 + j].rxUnipkt = cur_15_rxUniPkt;
                  outputObject[i * 4 + j].rxBrdpkt = cur_15_rxBrdPkt;
                  outputObject[i * 4 + j].rxMltpkt = cur_15_rxMltPkt;
                  outputObject[i * 4 + j].rxSz64 = cur_15_rxSz64;
                  outputObject[i * 4 + j].rxSz127 = cur_15_rxSz127;
                  outputObject[i * 4 + j].rxSz255 = cur_15_rxSz255;
                  outputObject[i * 4 + j].rxSz511 = cur_15_rxSz511;
                  outputObject[i * 4 + j].rxSz1023 = cur_15_rxSz1023;
                  outputObject[i * 4 + j].rxSz1518 = cur_15_rxSz1518;
                  outputObject[i * 4 + j].rxSzOver1518 = cur_15_rxSzOver1518;
                  outputObject[i * 4 + j].txLatcol = cur_15_txLatCol;
                  outputObject[i * 4 + j].txDeferr = cur_15_txDeferr;
                  outputObject[i * 4 + j].rxCrcErr = cur_15_rxCrcErr;
                  outputObject[i * 4 + j].rxDprpkt = cur_15_rxDprpkt;
                  outputObject[i * 4 + j].rxUdsize = cur_15_rxUdsize;
                  outputObject[i * 4 + j].rxFrgmnt = cur_15_rxFrgmnt;
                  outputObject[i * 4 + j].rxOvsize = cur_15_rxOvsize;
                  outputObject[i * 4 + j].rxJabber = cur_15_rxJabber;

                } else if (j == 1) { // 15_pre

                  outputObject[i * 4 + j].type = NeConstants.PM_PREVIOUS_15MIN; //
                  outputObject[i * 4 + j].txByteHi = pre_15_txByteHi;
                  outputObject[i * 4 + j].txByteLo = pre_15_txByteLo;
                  outputObject[i * 4 + j].txUnipkt = pre_15_txUniPkt;
                  outputObject[i * 4 + j].txBrdpkt = pre_15_txBrdPkt;
                  outputObject[i * 4 + j].txMltpkt = pre_15_txMltPkt;
                  outputObject[i * 4 + j].rxByteHi = pre_15_rxByteHi;
                  outputObject[i * 4 + j].rxByteLo = pre_15_rxByteLo;
                  outputObject[i * 4 + j].rxUnipkt = pre_15_rxUniPkt;
                  outputObject[i * 4 + j].rxBrdpkt = pre_15_rxBrdPkt;
                  outputObject[i * 4 + j].rxMltpkt = pre_15_rxMltPkt;
                  outputObject[i * 4 + j].rxSz64 = pre_15_rxSz64;
                  outputObject[i * 4 + j].rxSz127 = pre_15_rxSz127;
                  outputObject[i * 4 + j].rxSz255 = pre_15_rxSz255;
                  outputObject[i * 4 + j].rxSz511 = pre_15_rxSz511;
                  outputObject[i * 4 + j].rxSz1023 = pre_15_rxSz1023;
                  outputObject[i * 4 + j].rxSz1518 = pre_15_rxSz1518;
                  outputObject[i * 4 + j].rxSzOver1518 = pre_15_rxSzOver1518;
                  outputObject[i * 4 + j].txLatcol = pre_15_txLatCol;
                  outputObject[i * 4 + j].txDeferr = pre_15_txDeferr;
                  outputObject[i * 4 + j].rxCrcErr = pre_15_rxCrcErr;
                  outputObject[i * 4 + j].rxDprpkt = pre_15_rxDprpkt;
                  outputObject[i * 4 + j].rxUdsize = pre_15_rxUdsize;
                  outputObject[i * 4 + j].rxFrgmnt = pre_15_rxFrgmnt;
                  outputObject[i * 4 + j].rxOvsize = pre_15_rxOvsize;
                  outputObject[i * 4 + j].rxJabber = pre_15_rxJabber;

                } else if (j == 2) { // 1_cur

                  outputObject[i * 4 + j].type = NeConstants.PM_CURRENT_1DAY; //
                  outputObject[i * 4 + j].txByteHi = cur_txByteHi;
                  outputObject[i * 4 + j].txByteLo = cur_txByteLo;
                  outputObject[i * 4 + j].txUnipkt = cur_txUniPkt;
                  outputObject[i * 4 + j].txBrdpkt = cur_txBrdPkt;
                  outputObject[i * 4 + j].txMltpkt = cur_txMltPkt;
                  outputObject[i * 4 + j].rxByteHi = cur_rxByteHi;
                  outputObject[i * 4 + j].rxByteLo = cur_rxByteLo;
                  outputObject[i * 4 + j].rxUnipkt = cur_rxUniPkt;
                  outputObject[i * 4 + j].rxBrdpkt = cur_rxBrdPkt;
                  outputObject[i * 4 + j].rxMltpkt = cur_rxMltPkt;
                  outputObject[i * 4 + j].rxSz64 = cur_rxSz64;
                  outputObject[i * 4 + j].rxSz127 = cur_rxSz127;
                  outputObject[i * 4 + j].rxSz255 = cur_rxSz255;
                  outputObject[i * 4 + j].rxSz511 = cur_rxSz511;
                  outputObject[i * 4 + j].rxSz1023 = cur_rxSz1023;
                  outputObject[i * 4 + j].rxSz1518 = cur_rxSz1518;
                  outputObject[i * 4 + j].rxSzOver1518 = cur_rxSzOver1518;
                  outputObject[i * 4 + j].txLatcol = cur_txLatCol;
                  outputObject[i * 4 + j].txDeferr = cur_txDeferr;
                  outputObject[i * 4 + j].rxCrcErr = cur_rxCrcErr;
                  outputObject[i * 4 + j].rxDprpkt = cur_rxDprpkt;
                  outputObject[i * 4 + j].rxUdsize = cur_rxUdsize;
                  outputObject[i * 4 + j].rxFrgmnt = cur_rxFrgmnt;
                  outputObject[i * 4 + j].rxOvsize = cur_rxOvsize;
                  outputObject[i * 4 + j].rxJabber = cur_rxJabber;

                } else if (j == 3) { // 1_pre

                  outputObject[i * 4 + j].type = NeConstants.PM_PREVIOUS_1DAY;
                  outputObject[i * 4 + j].txByteHi = pre_txByteHi;
                  outputObject[i * 4 + j].txByteLo = pre_txByteLo;
                  outputObject[i * 4 + j].txUnipkt = pre_txUniPkt;
                  outputObject[i * 4 + j].txBrdpkt = pre_txBrdPkt;
                  outputObject[i * 4 + j].txMltpkt = pre_txMltPkt;
                  outputObject[i * 4 + j].rxByteHi = pre_rxByteHi;
                  outputObject[i * 4 + j].rxByteLo = pre_rxByteLo;
                  outputObject[i * 4 + j].rxUnipkt = pre_rxUniPkt;
                  outputObject[i * 4 + j].rxBrdpkt = pre_rxBrdPkt;
                  outputObject[i * 4 + j].rxMltpkt = pre_rxMltPkt;
                  outputObject[i * 4 + j].rxSz64 = pre_rxSz64;
                  outputObject[i * 4 + j].rxSz127 = pre_rxSz127;
                  outputObject[i * 4 + j].rxSz255 = pre_rxSz255;
                  outputObject[i * 4 + j].rxSz511 = pre_rxSz511;
                  outputObject[i * 4 + j].rxSz1023 = pre_rxSz1023;
                  outputObject[i * 4 + j].rxSz1518 = pre_rxSz1518;
                  outputObject[i * 4 + j].rxSzOver1518 = pre_rxSzOver1518;
                  outputObject[i * 4 + j].txLatcol = pre_txLatCol;
                  outputObject[i * 4 + j].txDeferr = pre_txDeferr;
                  outputObject[i * 4 + j].rxCrcErr = pre_rxCrcErr;
                  outputObject[i * 4 + j].rxDprpkt = pre_rxDprpkt;
                  outputObject[i * 4 + j].rxUdsize = pre_rxUdsize;
                  outputObject[i * 4 + j].rxFrgmnt = pre_rxFrgmnt;
                  outputObject[i * 4 + j].rxOvsize = pre_rxOvsize;
                  outputObject[i * 4 + j].rxJabber = pre_rxJabber;

                }

              }

            } else {
              // 2
              if (inputObject.type == NeConstants.PM_INTERVAL_15MIN) { // 15min

                for (int j = 0; j < 2; j++) {

                  if (j == 0) { // 15_cur
                    outputObject[2 * i + j].type = NeConstants.PM_CURRENT_15MIN; //
                    outputObject[2 * i + j].txByteHi = cur_15_txByteHi;
                    outputObject[2 * i + j].txByteLo = cur_15_txByteLo;
                    outputObject[2 * i + j].txUnipkt = cur_15_txUniPkt;
                    outputObject[2 * i + j].txBrdpkt = cur_15_txBrdPkt;
                    outputObject[2 * i + j].txMltpkt = cur_15_txMltPkt;
                    outputObject[2 * i + j].rxByteHi = cur_15_rxByteHi;
                    outputObject[2 * i + j].rxByteLo = cur_15_rxByteLo;
                    outputObject[2 * i + j].rxUnipkt = cur_15_rxUniPkt;
                    outputObject[2 * i + j].rxBrdpkt = cur_15_rxBrdPkt;
                    outputObject[2 * i + j].rxMltpkt = cur_15_rxMltPkt;
                    outputObject[2 * i + j].rxSz64 = cur_15_rxSz64;
                    outputObject[2 * i + j].rxSz127 = cur_15_rxSz127;
                    outputObject[2 * i + j].rxSz255 = cur_15_rxSz255;
                    outputObject[2 * i + j].rxSz511 = cur_15_rxSz511;
                    outputObject[2 * i + j].rxSz1023 = cur_15_rxSz1023;
                    outputObject[2 * i + j].rxSz1518 = cur_15_rxSz1518;
                    outputObject[2 * i + j].rxSzOver1518 = cur_15_rxSzOver1518;
                    outputObject[2 * i + j].txLatcol = cur_15_txLatCol;
                    outputObject[2 * i + j].txDeferr = cur_15_txDeferr;
                    outputObject[2 * i + j].rxCrcErr = cur_15_rxCrcErr;
                    outputObject[2 * i + j].rxDprpkt = cur_15_rxDprpkt;
                    outputObject[2 * i + j].rxUdsize = cur_15_rxUdsize;
                    outputObject[2 * i + j].rxFrgmnt = cur_15_rxFrgmnt;
                    outputObject[2 * i + j].rxOvsize = cur_15_rxOvsize;
                    outputObject[2 * i + j].rxJabber = cur_15_rxJabber;

                  } else if (j == 1) { // 15_pre

                    outputObject[2 * i + j].type = NeConstants.PM_PREVIOUS_15MIN; //
                    outputObject[2 * i + j].txByteHi = pre_15_txByteHi;
                    outputObject[2 * i + j].txByteLo = pre_15_txByteLo;
                    outputObject[2 * i + j].txUnipkt = pre_15_txUniPkt;
                    outputObject[2 * i + j].txBrdpkt = pre_15_txBrdPkt;
                    outputObject[2 * i + j].txMltpkt = pre_15_txMltPkt;
                    outputObject[2 * i + j].rxByteHi = pre_15_rxByteHi;
                    outputObject[2 * i + j].rxByteLo = pre_15_rxByteLo;
                    outputObject[2 * i + j].rxUnipkt = pre_15_rxUniPkt;
                    outputObject[2 * i + j].rxBrdpkt = pre_15_rxBrdPkt;
                    outputObject[2 * i + j].rxMltpkt = pre_15_rxMltPkt;
                    outputObject[2 * i + j].rxSz64 = pre_15_rxSz64;
                    outputObject[2 * i + j].rxSz127 = pre_15_rxSz127;
                    outputObject[2 * i + j].rxSz255 = pre_15_rxSz255;
                    outputObject[2 * i + j].rxSz511 = pre_15_rxSz511;
                    outputObject[2 * i + j].rxSz1023 = pre_15_rxSz1023;
                    outputObject[2 * i + j].rxSz1518 = pre_15_rxSz1518;
                    outputObject[2 * i + j].rxSzOver1518 = pre_15_rxSzOver1518;
                    outputObject[2 * i + j].txLatcol = pre_15_txLatCol;
                    outputObject[2 * i + j].txDeferr = pre_15_txDeferr;
                    outputObject[2 * i + j].rxCrcErr = pre_15_rxCrcErr;
                    outputObject[2 * i + j].rxDprpkt = pre_15_rxDprpkt;
                    outputObject[2 * i + j].rxUdsize = pre_15_rxUdsize;
                    outputObject[2 * i + j].rxFrgmnt = pre_15_rxFrgmnt;
                    outputObject[2 * i + j].rxOvsize = pre_15_rxOvsize;
                    outputObject[2 * i + j].rxJabber = pre_15_rxJabber;

                  }

                }

              } else { // 1 day

                for (int j = 0; j < 2; j++) {

                  if (j == 0) { // 1_cur

                    outputObject[2 * i + j].type = NeConstants.PM_CURRENT_1DAY; //
                    outputObject[2 * i + j].txByteHi = cur_txByteHi;
                    outputObject[2 * i + j].txByteLo = cur_txByteLo;
                    outputObject[2 * i + j].txUnipkt = cur_txUniPkt;
                    outputObject[2 * i + j].txBrdpkt = cur_txBrdPkt;
                    outputObject[2 * i + j].txMltpkt = cur_txMltPkt;
                    outputObject[2 * i + j].rxByteHi = cur_rxByteHi;
                    outputObject[2 * i + j].rxByteLo = cur_rxByteLo;
                    outputObject[2 * i + j].rxUnipkt = cur_rxUniPkt;
                    outputObject[2 * i + j].rxBrdpkt = cur_rxBrdPkt;
                    outputObject[2 * i + j].rxMltpkt = cur_rxMltPkt;
                    outputObject[2 * i + j].rxSz64 = cur_rxSz64;
                    outputObject[2 * i + j].rxSz127 = cur_rxSz127;
                    outputObject[2 * i + j].rxSz255 = cur_rxSz255;
                    outputObject[2 * i + j].rxSz511 = cur_rxSz511;
                    outputObject[2 * i + j].rxSz1023 = cur_rxSz1023;
                    outputObject[2 * i + j].rxSz1518 = cur_rxSz1518;
                    outputObject[2 * i + j].rxSzOver1518 = cur_rxSzOver1518;
                    outputObject[2 * i + j].txLatcol = cur_txLatCol;
                    outputObject[2 * i + j].txDeferr = cur_txDeferr;
                    outputObject[2 * i + j].rxCrcErr = cur_rxCrcErr;
                    outputObject[2 * i + j].rxDprpkt = cur_rxDprpkt;
                    outputObject[2 * i + j].rxUdsize = cur_rxUdsize;
                    outputObject[2 * i + j].rxFrgmnt = cur_rxFrgmnt;
                    outputObject[2 * i + j].rxOvsize = cur_rxOvsize;
                    outputObject[2 * i + j].rxJabber = cur_rxJabber;

                  } else if (j == 1) { // 1_pre

                    outputObject[2 * i + j].type = NeConstants.PM_PREVIOUS_1DAY; //
                    outputObject[2 * i + j].txByteHi = pre_txByteHi;
                    outputObject[2 * i + j].txByteLo = pre_txByteLo;
                    outputObject[2 * i + j].txUnipkt = pre_txUniPkt;
                    outputObject[2 * i + j].txBrdpkt = pre_txBrdPkt;
                    outputObject[2 * i + j].txMltpkt = pre_txMltPkt;
                    outputObject[2 * i + j].rxByteHi = pre_rxByteHi;
                    outputObject[2 * i + j].rxByteLo = pre_rxByteLo;
                    outputObject[2 * i + j].rxUnipkt = pre_rxUniPkt;
                    outputObject[2 * i + j].rxBrdpkt = pre_rxBrdPkt;
                    outputObject[2 * i + j].rxMltpkt = pre_rxMltPkt;
                    outputObject[2 * i + j].rxSz64 = pre_rxSz64;
                    outputObject[2 * i + j].rxSz127 = pre_rxSz127;
                    outputObject[2 * i + j].rxSz255 = pre_rxSz255;
                    outputObject[2 * i + j].rxSz511 = pre_rxSz511;
                    outputObject[2 * i + j].rxSz1023 = pre_rxSz1023;
                    outputObject[2 * i + j].rxSz1518 = pre_rxSz1518;
                    outputObject[2 * i + j].rxSzOver1518 = pre_rxSzOver1518;
                    outputObject[2 * i + j].txLatcol = pre_txLatCol;
                    outputObject[2 * i + j].txDeferr = pre_txDeferr;
                    outputObject[2 * i + j].rxCrcErr = pre_rxCrcErr;
                    outputObject[2 * i + j].rxDprpkt = pre_rxDprpkt;
                    outputObject[2 * i + j].rxUdsize = pre_rxUdsize;
                    outputObject[2 * i + j].rxFrgmnt = pre_rxFrgmnt;
                    outputObject[2 * i + j].rxOvsize = pre_rxOvsize;
                    outputObject[2 * i + j].rxJabber = pre_rxJabber;

                  }

                }

              }

            }

          }

          cmdDispatcher.cmdResponse(cmdTag, viewId, userId, nodeId, shelfId, cmdCode, outputObject, ErrorInspect.SUCCESS);

        }

        // sending ack

        if (headerInfo.getMoreFlag() == NeConstants.NO_MORE) {
          in_stream.close();
          ackBuffer = header.getAckHeaderByte(1, // version
              cmdTag, // invokeId
              NeConstants.NO_MORE, // moreFlag
              0, // seqNo
              NeConstants.CMD_ACK, // cmdType
              0, // msgType
              NeConstants.NEIF, // channel
              shelfId, // sid
              neIpAddr, // aganetIp
              0, // result
              0, // length
              cmdCode // commandId
              );
          packet = new DatagramPacket(ackBuffer, ackBuffer.length, InetAddress.getByName(neIpAddr), NeConstants.AGENT_PORT);
          socket.send(packet);
          break;
        }
      }

    }

    catch (SocketTimeoutException ste) {

      logger.warning("[RTRV-PM-PON]REQUEST TIMED OUT(" + cmdCode + ")");
      socket.close();
      cmdDispatcher.cmdResponse(cmdTag, viewId, userId, nodeId, shelfId, cmdCode, outputObject, ErrorInspect.SERVER_TIMEOUT_ERR);
      return;

    } catch (UnknownHostException uhe) {

      logger.warning("[RTRV-PM-PON]UNKNOWN HOST (" + cmdCode + ")");
      socket.close();
      cmdDispatcher.cmdResponse(cmdTag, viewId, userId, nodeId, shelfId, cmdCode, outputObject, ErrorInspect.HOST_UNKNOWN);
      return;

    } catch (Exception e) {
      e.printStackTrace();
      logger.warning("[RTRV-PM-PON] Exception Occured(" + cmdCode + ")");
      socket.close();
      cmdDispatcher.cmdResponse(cmdTag, viewId, userId, nodeId, shelfId, cmdCode, outputObject, ErrorInspect.FAILURE);
      return;

    } finally {
      if (socket != null)
        socket.close();
    }
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.