inc/c_util/tarray.h (46 lines of code) (raw):

// Copyright (c) Microsoft. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. #ifndef TARRAY_H #define TARRAY_H #ifdef __cplusplus #include <cinttypes> #else #include <inttypes.h> #endif #include "c_pal/thandle_ll.h" #include "c_util/tarray_ll.h" #include "umock_c/umock_c_prod.h" /*TARRAY is-a THANDLE.*/ /*given a type "T" TARRAY(T) expands to the name of the type. */ /*tarray_int folder in c-util\tests contains a template for usage in tests (with reals)*/ #define TARRAY(T) TARRAY_LL(T) #define TARRAY_CREATE_WITH_CAPACITY_AND_CLEANUP_INTERNAL_DEFINE(T) TARRAY_LL_CREATE_WITH_CAPACITY_AND_CLEANUP_INTERNAL_DEFINE(T, T) #define TARRAY_CREATE_DECLARE(T) TARRAY_LL_CREATE_DECLARE(T, T) #define TARRAY_CREATE_DEFINE(T) TARRAY_LL_CREATE_DEFINE(T, T) #define TARRAY_CREATE_WITH_CAPACITY_AND_CLEANUP_DECLARE(T) TARRAY_LL_CREATE_WITH_CAPACITY_AND_CLEANUP_DECLARE(T, T) #define TARRAY_CREATE_WITH_CAPACITY_AND_CLEANUP_DEFINE(T) TARRAY_LL_CREATE_WITH_CAPACITY_AND_CLEANUP_DEFINE(T, T) #define TARRAY_CREATE_WITH_CAPACITY_DECLARE(T) TARRAY_LL_CREATE_WITH_CAPACITY_DECLARE(T, T) #define TARRAY_CREATE_WITH_CAPACITY_DEFINE(T) TARRAY_LL_CREATE_WITH_CAPACITY_DEFINE(T, T) #define TARRAY_ENSURE_CAPACITY_DECLARE(T) TARRAY_LL_ENSURE_CAPACITY_DECLARE(T, T) #define TARRAY_ENSURE_CAPACITY_DEFINE(T) TARRAY_LL_ENSURE_CAPACITY_DEFINE(T, T) #define TARRAY_FREE_DEFINE(T) TARRAY_LL_FREE_DEFINE(T, T) #define TARRAY_CREATE(C) TARRAY_LL_CREATE(C) #define TARRAY_CREATE_WITH_CAPACITY_AND_CLEANUP(C) TARRAY_LL_CREATE_WITH_CAPACITY_AND_CLEANUP(C) #define TARRAY_CREATE_WITH_CAPACITY(C) TARRAY_LL_CREATE_WITH_CAPACITY(C) #define TARRAY_ENSURE_CAPACITY(C) TARRAY_LL_ENSURE_CAPACITY(C) #define TARRAY_INITIALIZE(T) TARRAY_LL_INITIALIZE(T) #define TARRAY_ASSIGN(T) TARRAY_LL_ASSIGN(T) #define TARRAY_MOVE(T) TARRAY_LL_MOVE(T) #define TARRAY_INITIALIZE_MOVE(T) TARRAY_LL_INITIALIZE_MOVE(T) /*macro to be used in headers*/ \ #define TARRAY_TYPE_DECLARE(T) \ /*hint: have TARRAY_DEFINE_STRUCT_TYPE(T) before TARRAY_TYPE_DECLARE */ \ /*hint: have THANDLE_TYPE_DECLARE(TARRAY_TYPEDEF_NAME(T)) before TARRAY_TYPE_DECLARE */ \ TARRAY_CREATE_WITH_CAPACITY_AND_CLEANUP_DECLARE(T) \ TARRAY_CREATE_DECLARE(T) \ TARRAY_CREATE_WITH_CAPACITY_DECLARE(T) \ TARRAY_ENSURE_CAPACITY_DECLARE(T) \ #define TARRAY_TYPE_DEFINE(T) \ /*hint: have THANDLE_TYPE_DEFINE(TARRAY_TYPEDEF_NAME(T)) before TARRAY_TYPE_DEFINE */ \ TARRAY_FREE_DEFINE(T) \ TARRAY_CREATE_WITH_CAPACITY_AND_CLEANUP_INTERNAL_DEFINE(T) \ TARRAY_CREATE_DEFINE(T) \ TARRAY_CREATE_WITH_CAPACITY_AND_CLEANUP_DEFINE(T) \ TARRAY_CREATE_WITH_CAPACITY_DEFINE(T) \ TARRAY_ENSURE_CAPACITY_DEFINE(T) \ #endif /*TARRAY_H*/