Open skliper opened 3 years ago
This works fine - although I don't know if it's really worth adding this helper function to remove such a small amount of common code from only 2 locations...
int32 EVS_ResetFilterVerifyCallerId(EVS_AppData_t **AppDataPtr, CFE_ES_AppId_t *AppID)
{
int32 Status;
/* Query and verify the caller's AppID */
Status = EVS_GetCurrentContext(AppDataPtr, AppID);
if (Status == CFE_SUCCESS)
{
if (!EVS_AppDataIsMatch(*AppDataPtr, *AppID))
{
Status = CFE_EVS_APP_NOT_REGISTERED;
}
}
return Status;
}
int32 CFE_EVS_ResetFilter(uint16 EventID)
{
int32 Status;
EVS_BinFilter_t *FilterPtr = NULL;
CFE_ES_AppId_t AppID;
EVS_AppData_t * AppDataPtr;
Status = EVS_ResetFilterVerifyCallerId(&AppDataPtr, &AppID);
if (Status == CFE_SUCCESS)
{
FilterPtr = EVS_FindEventID(EventID, AppDataPtr->BinFilters);
if (FilterPtr != NULL)
{
FilterPtr->Count = 0;
}
else
{
Status = CFE_EVS_EVT_NOT_REGISTERED;
}
}
return Status;
}
CFE_Status_t CFE_EVS_ResetAllFilters(void)
{
int32 Status;
CFE_ES_AppId_t AppID;
uint32 i;
EVS_AppData_t *AppDataPtr;
Status = EVS_ResetFilterVerifyCallerId(&AppDataPtr, &AppID);
if (Status == CFE_SUCCESS)
{
for (i = 0; i < CFE_PLATFORM_EVS_MAX_EVENT_FILTERS; i++)
{
AppDataPtr->BinFilters[i].Count = 0;
}
}
return Status;
}
Is your feature request related to a problem? Please describe. Common code in the reset filter related APIs is duplicated
Describe the solution you'd like Refactor to reduce duplication.
Describe alternatives you've considered None
Additional context Code review
Requester Info Jacob Hageman - NASA/GSFC