1 /* 2 * coreMQTT Agent v1.1.0 3 * Copyright (C) 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. 4 * 5 * Permission is hereby granted, free of charge, to any person obtaining a copy of 6 * this software and associated documentation files (the "Software"), to deal in 7 * the Software without restriction, including without limitation the rights to 8 * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 9 * the Software, and to permit persons to whom the Software is furnished to do so, 10 * subject to the following conditions: 11 * 12 * The above copyright notice and this permission notice shall be included in all 13 * copies or substantial portions of the Software. 14 * 15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 17 * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 18 * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 20 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 */ 22 23 /** 24 * @file agent_command_pool_stubs.h 25 * @brief Stub functions to get and release command structure from a command pool. 26 */ 27 #ifndef AGENT_COMMAND_POOL_STUBS_H 28 #define AGENT_COMMAND_POOL_STUBS_H 29 30 #include <stddef.h> 31 #include <stdint.h> 32 #include <stdbool.h> 33 34 /* core_mqtt_agent.h must precede including this header. */ 35 36 /** 37 * @brief Send a message to the specified context. 38 * 39 * @param[in] blockTimeMs The length of time the calling task should remain in the 40 * Blocked state (so not consuming any CPU time) to wait for a MQTTAgentCommand_t structure to 41 * become available should one not be immediately at the time of the call. 42 * 43 * @return A pointer to a MQTTAgentCommand_t structure if one becomes available before 44 * blockTimeMs time expired, otherwise NULL. 45 */ 46 MQTTAgentCommand_t * AgentGetCommandStub( uint32_t blockTimeMs ); 47 48 /** 49 * @brief Receive a message from the specified context. 50 * Must be thread safe. 51 * 52 * @param[in] pCommandToRelease A pointer to the MQTTAgentCommand_t structure to return to 53 * the pool. The structure must first have been obtained by calling 54 * Agent_GetCommand(), otherwise Agent_ReleaseCommand() will 55 * have no effect. 56 * 57 * @return true if the MQTTAgentCommand_t structure was returned to the pool, otherwise false. 58 */ 59 bool Agent_ReleaseCommand( MQTTAgentCommand_t * pCommandToRelease ); 60 61 #endif /* AGENT_COMMAND_POOL_STUBS_H */ 62