TestTPConversationService.java
上传用户:xfwatch
上传日期:2020-12-14
资源大小:872k
文件大小:2k
源码类别:

中间件编程

开发平台:

Java

  1. package org.jboss.blacktie.jatmibroker.xatmi;
  2. import org.apache.log4j.LogManager;
  3. import org.apache.log4j.Logger;
  4. public class TestTPConversationService implements BlacktieService {
  5. private static final Logger log = LogManager
  6. .getLogger(TestTPConversationService.class);
  7. public Response tpservice(TPSVCINFO svcinfo) {
  8. try {
  9. log.info("testTPConversation_service");
  10. boolean fail = false;
  11. X_OCTET sendbuf = (X_OCTET) svcinfo.tpalloc("X_OCTET", null);
  12. if (TestTPConversation.strcmp((X_OCTET) svcinfo.getBuffer(),
  13. "conversate") != 0) {
  14. if (svcinfo.getBuffer() != null) {
  15. log.error("Got invalid data %s"
  16. + new String(((X_OCTET) svcinfo.getBuffer())
  17. .getByteArray()));
  18. } else {
  19. log.error("GOT A NULL");
  20. }
  21. fail = true;
  22. } else {
  23. long revent = 0;
  24. log.info("Chatting");
  25. for (int i = 0; i < TestTPConversation.interationCount; i++) {
  26. byte[] bytes = ("hi" + i).getBytes();
  27. sendbuf.setByteArray(bytes);
  28. // userlogc((char*) "testTPConversation_service:%s:",
  29. // sendbuf);
  30. int result = svcinfo.getSession().tpsend(sendbuf,
  31. bytes.length, Connection.TPRECVONLY);
  32. if (result != -1) {
  33. try {
  34. svcinfo.getSession().tprecv(0);
  35. fail = true;
  36. break;
  37. } catch (ConnectionException e) {
  38. Buffer rcvbuf = e.getReceived();
  39. if (rcvbuf != null
  40. && e.getEvent() == Connection.TPEV_SENDONLY) {
  41. if (TestTPConversation.strcmp("yo" + i, rcvbuf) != 0) {
  42. fail = true;
  43. break;
  44. }
  45. } else {
  46. fail = true;
  47. break;
  48. }
  49. }
  50. } else {
  51. fail = true;
  52. break;
  53. }
  54. }
  55. log.info("Chatted");
  56. }
  57. if (fail) {
  58. return new Response((short) Connection.TPESVCFAIL, 0, sendbuf,
  59. 0, 0);
  60. } else {
  61. byte[] bytes = ("hi" + TestTPConversation.interationCount)
  62. .getBytes();
  63. sendbuf.setByteArray(bytes);
  64. return new Response(Connection.TPSUCCESS, 0, sendbuf,
  65. bytes.length, 0);
  66. }
  67. } catch (ConnectionException e) {
  68. return new Response(Connection.TPFAIL, Connection.TPEITYPE, null,
  69. 0, 0);
  70. }
  71. }
  72. }