Changeset 346:c0eb803e5b3e in finroc_core-java
- Timestamp:
- 22.02.2021 13:52:25 (5 days ago)
- Branch:
- default
- Phase:
- public
- Tags:
- tip
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
remote/RemoteRuntime.java
r345 r346 313 313 RemoteTypeConversion getTupleElementOperation = getTypeConversionOperation(RemoteTypeConversion.SupportedTypeFilter.GET_TUPLE_ELEMENT); 314 314 RemoteTypeConversion adjustLengthOperation = getTypeConversionOperation(RemoteTypeConversion.SupportedTypeFilter.ADJUST_LENGTH); 315 RemoteTypeConversion captureMeta DataOperation = getTypeConversionOperation("Capture Meta Data");316 RemoteTypeConversion appendMeta DataOperation = getTypeConversionOperation("Append Meta Data");315 RemoteTypeConversion captureMetadataOperation = getTypeConversionOperation("Capture Metadata"); 316 RemoteTypeConversion appendMetadataOperation = getTypeConversionOperation("Append Metadata"); 317 317 RemoteType checkType = sourceType; 318 318 while (checkType != null) { … … 348 348 checkType = getUnderlyingTypeOperationsAreInheritedFrom(checkType); 349 349 } 350 if (captureMeta DataOperation != null) {350 if (captureMetadataOperation != null) { 351 351 for (int i = 0, n = remoteTypes.size(); i < n; i++) { 352 352 RemoteType type = remoteTypes.get(i); 353 if (IsSupportedMeta DataCaptureType(type)) {354 fromSourceType.add(new GetCastOperationEntry(captureMeta DataOperation, type, false));355 } 356 } 357 } 358 if (appendMeta DataOperation != null) {353 if (IsSupportedMetadataCaptureType(type)) { 354 fromSourceType.add(new GetCastOperationEntry(captureMetadataOperation, type, false)); 355 } 356 } 357 } 358 if (appendMetadataOperation != null) { 359 359 for (int i = 0, n = remoteTypes.size(); i < n; i++) { 360 360 RemoteType type = remoteTypes.get(i); 361 if (appendMeta DataSupported(sourceType, type)) {362 fromSourceType.add(new GetCastOperationEntry(appendMeta DataOperation, type, false));361 if (appendMetadataSupported(sourceType, type)) { 362 fromSourceType.add(new GetCastOperationEntry(appendMetadataOperation, type, false)); 363 363 } 364 364 } … … 403 403 } 404 404 } 405 if (captureMeta DataOperation != null && IsSupportedMetaDataCaptureType(destinationType)) {405 if (captureMetadataOperation != null && IsSupportedMetadataCaptureType(destinationType)) { 406 406 for (int i = 0, n = remoteTypes.size(); i < n; i++) { 407 407 RemoteType type = remoteTypes.get(i); 408 fromDestinationType.add(new GetCastOperationEntry(captureMeta DataOperation, type, false));409 } 410 } 411 if (appendMeta DataOperation != null && destinationType.getTupleElementTypes() != null) {408 fromDestinationType.add(new GetCastOperationEntry(captureMetadataOperation, type, false)); 409 } 410 } 411 if (appendMetadataOperation != null && destinationType.getTupleElementTypes() != null) { 412 412 RemoteType newType = remoteTypes.get(destinationType.getTupleElementTypes()[destinationType.getTupleElementTypes().length - 1]); 413 if (IsSupportedMeta DataCaptureType(newType)) {413 if (IsSupportedMetadataCaptureType(newType)) { 414 414 for (int i = 0, n = remoteTypes.size(); i < n; i++) { 415 415 RemoteType type = remoteTypes.get(i); 416 if (appendMeta DataSupported(type, destinationType)) {417 fromDestinationType.add(new GetCastOperationEntry(appendMeta DataOperation, type, false));416 if (appendMetadataSupported(type, destinationType)) { 417 fromDestinationType.add(new GetCastOperationEntry(appendMetadataOperation, type, false)); 418 418 } 419 419 } … … 526 526 } 527 527 528 // Remove nonsense meta 528 // Remove nonsense metadata casts 529 529 for (int i = 0; i < result.size(); i++) { 530 530 RemoteConnectOptions operation = result.get(i); 531 if ((operation.operation1 == captureMeta DataOperation || operation.operation1 == appendMetaDataOperation) && (operation.operation2 == captureMetaDataOperation || operation.operation2 == appendMetaDataOperation)) {531 if ((operation.operation1 == captureMetadataOperation || operation.operation1 == appendMetadataOperation) && (operation.operation2 == captureMetadataOperation || operation.operation2 == appendMetadataOperation)) { 532 532 result.remove(i); 533 533 i--; 534 } else if ((operation.operation1 == captureMeta DataOperation || operation.operation2 == captureMetaDataOperation) && operation.operation2 != null) {534 } else if ((operation.operation1 == captureMetadataOperation || operation.operation2 == captureMetadataOperation) && operation.operation2 != null) { 535 535 result.remove(i); 536 536 i--; … … 1571 1571 * @param sourceType Remote source type 1572 1572 * @param sourceType Remote destinationType type 1573 * @return Whether remote AppendMeta Data operation supports converting sourceType to destinationType1574 */ 1575 boolean appendMeta DataSupported(RemoteType sourceType, RemoteType destinationType) {1573 * @return Whether remote AppendMetadata operation supports converting sourceType to destinationType 1574 */ 1575 boolean appendMetadataSupported(RemoteType sourceType, RemoteType destinationType) { 1576 1576 short[] sourceTupleElements = sourceType.getTupleElementTypes(); 1577 1577 short[] destinationTupleElements = destinationType.getTupleElementTypes(); … … 1591 1591 } 1592 1592 RemoteType newType = remoteTypes.get(destinationTupleElements[destinationTupleElementCount - 1]); 1593 if (IsSupportedMeta DataCaptureType(newType)) {1593 if (IsSupportedMetadataCaptureType(newType)) { 1594 1594 return true; 1595 1595 } … … 1600 1600 /** 1601 1601 * @param type Type to check 1602 * @return Whether it is possible to capture type as meta 1603 */ 1604 static boolean IsSupportedMeta DataCaptureType(RemoteType type) {1605 return (type.isCheapCopyType() && (type.getLocalTypeMatch() != RemoteType.LocalTypeMatch.EXACT || type.getDefaultLocalDataType() != Event.TYPE)) || type.getName().equals("finroc.data_ports.Meta Data");1602 * @return Whether it is possible to capture type as metadata (with the respective remote conversion operations) 1603 */ 1604 static boolean IsSupportedMetadataCaptureType(RemoteType type) { 1605 return (type.isCheapCopyType() && (type.getLocalTypeMatch() != RemoteType.LocalTypeMatch.EXACT || type.getDefaultLocalDataType() != Event.TYPE)) || type.getName().equals("finroc.data_ports.Metadata"); 1606 1606 } 1607 1607 }
Note: See TracChangeset
for help on using the changeset viewer.