Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

166 lines
2.8 KiB

  1. /*
  2. * REVISIONS:
  3. * mwh18Nov93: changed EventID to INT
  4. *
  5. * mwh07Jun94: port for NCR
  6. */
  7. #define INCL_BASE
  8. #define INCL_DOS
  9. #define INCL_NOPM
  10. #include "cdefine.h"
  11. extern "C" {
  12. #if (C_OS & C_OS2)
  13. #include <os2.h>
  14. #endif
  15. #include <stdlib.h>
  16. #include <stdio.h>
  17. #include <string.h>
  18. }
  19. #include "_defs.h"
  20. #include "message.h"
  21. #if (C_OS & C_NCR)
  22. # include "incfix.h"
  23. #endif
  24. Message :: Message() : Id(0),
  25. MsgType((Type)0),
  26. Timeout(0),
  27. Submit((CHAR*)NULL),
  28. Value((CHAR*)NULL),
  29. Compare((CHAR*)NULL),
  30. Response((CHAR*)NULL),
  31. Errcode(0),
  32. theWaitTime(40)
  33. {
  34. }
  35. Message :: Message(PMessage aMessage) : Id(aMessage->getId()),
  36. MsgType(aMessage->getType()),
  37. Timeout(aMessage->getTimeout()),
  38. Submit((CHAR*)NULL),
  39. Value((CHAR*)NULL),
  40. Compare((CHAR*)NULL),
  41. Response((CHAR*)NULL),
  42. Errcode(aMessage->getErrcode()),
  43. theWaitTime(aMessage->getWaitTime())
  44. {
  45. setSubmit(aMessage->getSubmit());
  46. setValue(aMessage->getValue());
  47. setCompare(aMessage->getCompare());
  48. setResponse(aMessage->getResponse());
  49. }
  50. Message :: Message(INT id) : Id(id),
  51. MsgType((Type)0),
  52. Timeout(0),
  53. Submit((CHAR*)NULL),
  54. Value((CHAR*)NULL),
  55. Compare((CHAR*)NULL),
  56. Response((CHAR*)NULL),
  57. Errcode(0),
  58. theWaitTime(40)
  59. {
  60. }
  61. Message :: Message(INT id, Type type) : Id(id),
  62. MsgType(type),
  63. Timeout(0),
  64. Submit((CHAR*)NULL),
  65. Value((CHAR*)NULL),
  66. Compare((CHAR*)NULL),
  67. Response((CHAR*)NULL),
  68. Errcode(0),
  69. theWaitTime(40)
  70. {
  71. }
  72. Message :: Message(INT id, Type type, CHAR* value) : Id(id),
  73. MsgType(type),
  74. Timeout(0),
  75. Submit((CHAR*)NULL),
  76. Value((CHAR*)NULL),
  77. Compare((CHAR*)NULL),
  78. Response((CHAR*)NULL),
  79. Errcode(0),
  80. theWaitTime(40)
  81. {
  82. setValue(value);
  83. }
  84. Message::~Message()
  85. {
  86. if(Submit) {
  87. free(Submit);
  88. }
  89. if(Value) {
  90. free(Value);
  91. }
  92. if(Compare) {
  93. free(Compare);
  94. }
  95. if(Response) {
  96. free(Response);
  97. }
  98. }
  99. VOID
  100. Message:: ReleaseResponse()
  101. {
  102. if (Response)
  103. free(Response);
  104. Response = (CHAR *)NULL;
  105. }
  106. INT Message:: Equal(RObj comp) const
  107. {
  108. RMessage item = (RMessage)comp;
  109. if ( Id == item.getId() )
  110. return TRUE;
  111. return FALSE;
  112. }
  113. VOID
  114. Message :: setSubmit(CHAR* submit)
  115. {
  116. if(Submit)
  117. free(Submit);
  118. Submit = ((submit == (CHAR*)NULL) ? (CHAR*)NULL : _strdup(submit));
  119. }
  120. VOID
  121. Message :: setValue(CHAR* value)
  122. {
  123. if(Value)
  124. free(Value);
  125. Value = ((value == (CHAR*)NULL) ? (CHAR*)NULL : _strdup(value));
  126. }
  127. VOID
  128. Message :: setCompare(CHAR* value)
  129. {
  130. if(Compare)
  131. free(Compare);
  132. Compare = ((value == (CHAR*)NULL) ? (CHAR*)NULL : _strdup(value));
  133. }
  134. VOID
  135. Message :: setResponse(CHAR* response)
  136. {
  137. if(Response)
  138. free(Response);
  139. Response = ((response == (CHAR*)NULL) ? (CHAR*)NULL : _strdup(response));
  140. }