| 671 | } |
| 672 | |
| 673 | MCAPI_ATTR McResult MCAPI_CALL mcEnqueueGetConnectedComponents( |
| 674 | const McContext context, |
| 675 | const McConnectedComponentType connectedComponentType, |
| 676 | const uint32_t numEntries, |
| 677 | McConnectedComponent* pConnComps, |
| 678 | uint32_t* numConnComps, |
| 679 | uint32_t numEventsInWaitlist, |
| 680 | const McEvent* pEventWaitList, |
| 681 | McEvent* pEvent) |
| 682 | { |
| 683 | McResult return_value = McResult::MC_NO_ERROR; |
| 684 | per_thread_api_log_str.clear(); |
| 685 | |
| 686 | if (context == nullptr) { |
| 687 | per_thread_api_log_str = "context ptr (param0) undef (NULL)"; |
| 688 | } else if (connectedComponentType == 0) { |
| 689 | per_thread_api_log_str = "invalid type-parameter (param1) (0)"; |
| 690 | } else if (numConnComps == nullptr && pConnComps == nullptr) { |
| 691 | per_thread_api_log_str = "output parameters undef (param3 & param4)"; |
| 692 | } else if (pEventWaitList == nullptr && numEventsInWaitlist > 0) { |
| 693 | per_thread_api_log_str = "invalid event waitlist ptr (NULL)"; |
| 694 | } else if (pEventWaitList != nullptr && numEventsInWaitlist == 0) { |
| 695 | per_thread_api_log_str = "invalid event waitlist size (zero)"; |
| 696 | } else if (pEventWaitList == nullptr && numEventsInWaitlist == 0 && pEvent == nullptr) { |
| 697 | per_thread_api_log_str = "invalid event ptr (zero)"; |
| 698 | } else { |
| 699 | try { |
| 700 | |
| 701 | get_connected_components_impl(context, connectedComponentType, numEntries, pConnComps, numConnComps, numEventsInWaitlist, pEventWaitList, pEvent); |
| 702 | } |
| 703 | CATCH_POSSIBLE_EXCEPTIONS(per_thread_api_log_str); |
| 704 | } |
| 705 | |
| 706 | if (!per_thread_api_log_str.empty()) { |
| 707 | |
| 708 | std::fprintf(stderr, "%s(...) -> %s\n", __FUNCTION__, per_thread_api_log_str.c_str()); |
| 709 | |
| 710 | if (return_value == McResult::MC_NO_ERROR) // i.e. problem with basic local parameter checks |
| 711 | { |
| 712 | return_value = McResult::MC_INVALID_VALUE; |
| 713 | } |
| 714 | } |
| 715 | |
| 716 | return return_value; |
| 717 | } |
| 718 | |
| 719 | MCAPI_ATTR McResult MCAPI_CALL mcGetConnectedComponents( |
| 720 | const McContext context, |
no test coverage detected