/* * Copyright (C) 2018 "IoT.bzh" * Author Jonathan Aillet * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef _INTERNALS_HAL_CB_INCLUDE_ #define _INTERNALS_HAL_CB_INCLUDE_ #include #include #include // Enum for to define which type of dependency selection we want to use enum DependencySelectionType { ALL_DEPENDENCIES = 0, UID_CORRESPONDING_DEPENDENCIES = 1 }; // Enum to define if to to handle or to unmanage a selected halmap enum HalMapProcessingType { HANDLE_SELECTED_HALMAP = 0, UNMANAGE_SELECTED_HALMAP = 1 }; // Enum for the type of subscription enum SubscribeUnsubscribeType { SUBSCRIPTION = 0, UNSUBSCRIPTION = 1 }; // Internals HAL event handler function void InternalHalDispatchApiEvent(afb_api_t apiHandle, const char *evtLabel, json_object *eventJ); // Internals HAL - 'haldependencies' section parsing/handling functions int InternalHalHandleHalDependencies(afb_api_t apiHandle, struct HalData *currentHalData, struct cds_list_head *halDevicesToProbeListHead, enum DependencySelectionType dependenciesSelectionType, char *uid); int InternalHalHalDependenciesConfig(afb_api_t apiHandle, CtlSectionT *section, json_object *DependenciesJ); // Internals HAL - 'halmixer' section parsing/handling functions int InternalHalHalMixerConfig(afb_api_t apiHandle, CtlSectionT *section, json_object *MixerJ); // Internals HAL - 'halmap' section parsing/handling functions int InternalHalHandleDependencyRelatedHalmap(afb_api_t apiHandle, struct cds_list_head *halMapListHead, struct cds_list_head *halDevicesToProbeListHead, char *targetedDependency); int InternalHalUnmanageDependencyRelatedHalmap(afb_api_t apiHandle, struct cds_list_head *halMapListHead, struct cds_list_head *halDevicesToProbeListHead, char *targetedDependency); int InternalHalHandleAllHalMap(afb_api_t apiHandle, struct cds_list_head *halMapListHead, struct cds_list_head *halDevicesToProbeListHead); int InternalHalUnmanageAllHalMap(afb_api_t apiHandle, struct cds_list_head *halMapListHead, struct cds_list_head *halDevicesToProbeListHead); int InternalHalHalMapConfig(afb_api_t apiHandle, CtlSectionT *section, json_object *halMapJ); // Internals HAL verbs functions int GenerateInternalHalInfoJson(afb_api_t apiHandle, struct HalData *currentHalData, json_object *requestJ, json_object **returnedJ); void InternalHalInfoVerb(afb_req_t request); void InternalHalSubscribe(afb_req_t request); void InternalHalUnsubscribe(afb_req_t request); #endif /* _HALMGR_CB_INCLUDE_ */