Esempio n. 1
0
  private CDAPMessage messageSentOrReceived(CDAPMessage cdapMessage, boolean sent)
      throws CDAPException {
    switch (cdapMessage.getOpCode()) {
      case M_CONNECT:
        connectionStateMachine.connectSentOrReceived(cdapMessage, sent);
        populateSessionDescriptor(cdapMessage, sent);
        break;
      case M_CONNECT_R:
        connectionStateMachine.connectResponseSentOrReceived(cdapMessage, sent);
        break;
      case M_RELEASE:
        connectionStateMachine.releaseSentOrReceived(cdapMessage, sent);
        break;
      case M_RELEASE_R:
        connectionStateMachine.releaseResponseSentOrReceived(cdapMessage, sent);
        emptySessionDescriptor();
        break;
      case M_CREATE:
        requestMessageSentOrReceived(cdapMessage, Opcode.M_CREATE, sent);
        break;
      case M_CREATE_R:
        responseMessageSentOrReceived(cdapMessage, Opcode.M_CREATE, sent);
        break;
      case M_DELETE:
        requestMessageSentOrReceived(cdapMessage, Opcode.M_DELETE, sent);
        break;
      case M_DELETE_R:
        responseMessageSentOrReceived(cdapMessage, Opcode.M_DELETE, sent);
        break;
      case M_START:
        requestMessageSentOrReceived(cdapMessage, Opcode.M_START, sent);
        break;
      case M_START_R:
        responseMessageSentOrReceived(cdapMessage, Opcode.M_START, sent);
        break;
      case M_STOP:
        requestMessageSentOrReceived(cdapMessage, Opcode.M_STOP, sent);
        break;
      case M_STOP_R:
        responseMessageSentOrReceived(cdapMessage, Opcode.M_STOP, sent);
        break;
      case M_WRITE:
        requestMessageSentOrReceived(cdapMessage, Opcode.M_WRITE, sent);
        break;
      case M_WRITE_R:
        responseMessageSentOrReceived(cdapMessage, Opcode.M_WRITE, sent);
        break;
      case M_READ:
        requestMessageSentOrReceived(cdapMessage, Opcode.M_READ, sent);
        break;
      case M_READ_R:
        responseMessageSentOrReceived(cdapMessage, Opcode.M_READ, sent);
        break;
      case M_CANCELREAD:
        break;
      case M_CANCELREAD_R:
        cancelReadResponseMessageSentOrReceived(cdapMessage, sent);
        break;
      default:
        throw new CDAPException(
            "Unrecognized operation code: " + cdapMessage.getOpCode().toString());
    }

    CDAPMessageValidator.validate(cdapMessage);

    freeOrReserveInvokeId(cdapMessage);

    return cdapMessage;
  }