Example #1
0
  public byte[] encodeNextMessageToBeSent(CDAPMessage cdapMessage) throws CDAPException {
    CDAPMessageValidator.validate(cdapMessage);

    switch (cdapMessage.getOpCode()) {
      case M_CONNECT:
        connectionStateMachine.checkConnect();
        break;
      case M_CONNECT_R:
        connectionStateMachine.checkConnectResponse();
        break;
      case M_RELEASE:
        connectionStateMachine.checkRelease();
        break;
      case M_RELEASE_R:
        connectionStateMachine.checkReleaseResponse();
        break;
      case M_CREATE:
        checkIsConnected();
        break;
      case M_CREATE_R:
        checkIsConnected();
        break;
      case M_DELETE:
        checkIsConnected();
        break;
      case M_DELETE_R:
        checkIsConnected();
        break;
      case M_START:
        checkIsConnected();
        break;
      case M_START_R:
        checkIsConnected();
        break;
      case M_STOP:
        checkIsConnected();
        break;
      case M_STOP_R:
        checkIsConnected();
        break;
      case M_WRITE:
        checkIsConnected();
        break;
      case M_WRITE_R:
        checkIsConnected();
        break;
      case M_READ:
        checkIsConnected();
        break;
      case M_READ_R:
        checkIsConnected();
        break;
      case M_CANCELREAD:
        checkIsConnected();
        ;
        break;
      case M_CANCELREAD_R:
        checkIsConnected();
        break;
      default:
        throw new CDAPException(
            "Unrecognized operation code: " + cdapMessage.getOpCode().toString());
    }

    return serializeMessage(cdapMessage);
  }
Example #2
0
 private void checkIsConnected() throws CDAPException {
   if (!connectionStateMachine.isConnected()) {
     throw new CDAPException(
         "Cannot send a message " + "because the CDAP session is not in CONNECTED state");
   }
 }
Example #3
0
 public boolean isConnected() {
   return connectionStateMachine.isConnected();
 }
Example #4
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;
  }