/** * This method writes this object of <code>ApplicationStateDetails</code> to the specified output * stream object. * * @param out DataOutput object * @param versionNo * @throws IOException if an error occurs while converting data and writing it to a binary stream. * @since Tifosi2.0 */ public void toStream(DataOutput out, int versionNo) throws IOException { super.toStream(out, versionNo); out.writeLong(m_launchTime); out.writeLong(m_killTime); writeUTF(out, m_strAppGUID); writeUTF(out, m_strAppVersion); out.writeInt(m_serviceStates.size()); Enumeration enums = m_serviceStates.keys(); while (enums.hasMoreElements()) { String instName = (String) enums.nextElement(); ServiceInstanceStateDetails status = (ServiceInstanceStateDetails) m_serviceStates.get(instName); UTFReaderWriter.writeUTF(out, instName); status.toStream(out, versionNo); } out.writeInt(m_serviceExceptionTraces.size()); Enumeration traceEnums = m_serviceExceptionTraces.keys(); while (traceEnums.hasMoreElements()) { String instName = (String) traceEnums.nextElement(); String trace = (String) m_serviceExceptionTraces.get(instName); UTFReaderWriter.writeUTF(out, instName); UTFReaderWriter.writeUTF(out, trace); } out.writeInt(m_debugRoutes.size()); Iterator debugRoutes = getDebugRoutes(); while (debugRoutes.hasNext()) { String routeGUID = (String) debugRoutes.next(); UTFReaderWriter.writeUTF(out, routeGUID); } out.writeInt(m_pendingDebugRoutesForClosure.size()); Iterator pendingDebugRoutesForClosure = getPendingDebugRoutesForClosure(); while (pendingDebugRoutesForClosure.hasNext()) { String routeGUID = (String) pendingDebugRoutesForClosure.next(); UTFReaderWriter.writeUTF(out, routeGUID); } out.writeInt(m_previousSyncPeers.size()); Iterator previousSynchPeers = getPreviousSynchPeers(); while (previousSynchPeers.hasNext()) { String peerName = (String) previousSynchPeers.next(); UTFReaderWriter.writeUTF(out, peerName); } }