import javolution.util.FastMap; //导入方法依赖的package包/类

protected void processXmlCAPDialog(XmlCAPDialog xmlCAPDialog, CAPDialog capDialog, boolean isScf, FastList sentInvokeIds)

throws CAPException {

// marking of incoming Invokes for which there will not be responses / errors

FastList processInvokeWithoutAnswerIds = xmlCAPDialog.getProcessInvokeWithoutAnswerIds();

for (FastList.Node n = processInvokeWithoutAnswerIds.head(), end = processInvokeWithoutAnswerIds.tail(); (n = n

.getNext()) != end;) {

capDialog.processInvokeWithoutAnswer(n.getValue());

}

int addedMsgs = 0;

Boolean prearrangedEnd = xmlCAPDialog.getPrearrangedEnd();

// sending of errors

FastMap errorMessages = xmlCAPDialog.getErrorComponents().getErrorComponents();

for (FastMap.Entry n = errorMessages.head(), end = errorMessages.tail(); (n = n.getNext()) != end;) {

Long invokeId = n.getKey();

CAPErrorMessage capError = n.getValue();

capDialog.sendErrorComponent(invokeId, capError);

addedMsgs++;

}

// sending of Invokes / RRL

FastList capMessages = xmlCAPDialog.getCAPMessages();

for (FastList.Node n = capMessages.head(), end = capMessages.tail(); (n = n.getNext()) != end;) {

camelStatAggregator.updateMessagesSent();

camelStatAggregator.updateMessagesAll();

CAPMessage capMessage = n.getValue();

if (addedMsgs > 0) {

// we need to test if we have enough free space to send a component in the same massage

int encodedSize;

if (prearrangedEnd != null) {

encodedSize = capDialog.getMessageUserDataLengthOnClose(prearrangedEnd);

} else {

encodedSize = capDialog.getMessageUserDataLengthOnSend();

}

CAPAsnPrimitive asnPrimitive = (CAPAsnPrimitive) capMessage;

AsnOutputStream asnOs = new AsnOutputStream();

int nextMessageSize = 10; // 10 = max component encoding header size

try {

asnPrimitive.encodeAll(asnOs);

nextMessageSize += asnOs.size(); // 10 = max component encoding header size

} catch (CAPException e) {

// ignore it: this means that a message does not have a parameter body

}

if (encodedSize + nextMessageSize + 5 > capDialog.getMaxUserDataLength()) {

capDialog.send();

addedMsgs = 0;

}

}

ProcessComponentResult ps = this.processCAPMessageFromApplication(capMessage, capDialog, isScf);

if (ps.componentAdded)

addedMsgs++;

if (ps.invokeId != null && sentInvokeIds != null) {

sentInvokeIds.add(ps.invokeId);

}

}// for loop

}

java中entry_Java FastMap.Entry方法代码示例相关推荐

  1. cdate在java中_Java Calendar.add方法代码示例

    本文整理汇总了Java中java.util.Calendar.add方法的典型用法代码示例.如果您正苦于以下问题:Java Calendar.add方法的具体用法?Java Calendar.add怎 ...

  2. java中setattribute_Java Files.setAttribute方法代码示例

    import java.nio.file.Files; //导入方法依赖的package包/类 @Override public void setFileHiddenAttribute( String ...

  3. JAVA中rootpanel_Java JPanel.setFocusCycleRoot方法代码示例

    import javax.swing.JPanel; //导入方法依赖的package包/类 @Override public void actionPerformed(ActionEvent e) ...

  4. java中explore_Java ServerPlayer.exploreMap方法代码示例

    import net.sf.freecol.server.model.ServerPlayer; //导入方法依赖的package包/类 public void testHorsesLost() { ...

  5. java中mymaps_Java MyLocationStyle.myLocationType方法代码示例

    import com.amap.api.maps.model.MyLocationStyle; //导入方法依赖的package包/类 @Override protected void onCreat ...

  6. java中setDocument_Java ActionItem.setDocumentId方法代码示例

    import org.kuali.rice.kew.actionitem.ActionItem; //导入方法依赖的package包/类 @Test public void testConvertAc ...

  7. java中setcolor_Java XWPFRun.setColor方法代码示例

    import org.apache.poi.xwpf.usermodel.XWPFRun; //导入方法依赖的package包/类 /** * Inserts the given {@link Tem ...

  8. java中settext_Java JCheckBoxMenuItem.setText方法代码示例

    import javax.swing.JCheckBoxMenuItem; //导入方法依赖的package包/类 private void reloadLang() { lang = JLang.g ...

  9. java中setcolor_Java RPr.setColor方法代码示例

    import org.docx4j.wml.RPr; //导入方法依赖的package包/类 public RPr getRPrStyle(ObjectFactory factory, String ...

最新文章

  1. ERP中的合并会计报表
  2. 非常有用的15个Linux 服务器监控命令
  3. 2019-03-18-算法-进化(实现strStr())
  4. 12岁上大学,23岁获博士学位,这位天才科学家正式加盟清华
  5. 结构体structure
  6. 人均34万,腾讯为3300名员工发11亿红包;B站回应大会员补偿会自动续费;​小米销量超苹果跻身全球第二|极客头条...
  7. MapReduce框架下的FP Growth算法概述
  8. android studio gradle下载失败处理
  9. python 批量下载地理空间数据云
  10. PID控制最通俗的解释与PID参数的整定方法
  11. 微控制器编程技术c语言,1.单片机C语言编程技术分析.pptx
  12. 最流行十大在线客服系统排行榜-市场常见客服系统软件排行-2023最新
  13. 旭锋科技制造信息管理系统
  14. excel表格内容拆分_3个动图,教你学会如何让excel表格自动拆分,学会它,小白变大神...
  15. Android Studio完成简单UI设计
  16. 关于精度、分辨率、LSB的理解
  17. android 联系人导入iphone,4种快速将联系人导入iPhone的方法
  18. PC向手机进行拨号上网 DUN
  19. D3 关联关系图 力学图
  20. 如何实现六轴机械臂的逆解计算?

热门文章

  1. 10-1-数据库连接池
  2. 只用一个marker 替换 高德_Android基于高德地图完全自定义Marker的实现方法
  3. 唯有自己变得强大_只有自己变得强大,才够让你的人生一帆风顺
  4. oracle number对应java什么类型_JVM系列之数据类型
  5. sha java 应用_Java中常用的加密算法应用MD5,SHA,RSA
  6. 走错路也要美美的!富有创意的404页面设计灵感
  7. 剪纸风格的美妆海报设计,你试过吗?
  8. 平面设计师友好的免抠PNG图片素材
  9. 如何做漂亮实用的UI界面?UI/UX设计模板,帮你入手!
  10. eval语法报错 ie10_JavaScript中eval语句浅尝