inc/c_util/two_d_array.h (39 lines of code) (raw):
// Copyright (C) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
#ifndef TWO_D_ARRAY_H
#define TWO_D_ARRAY_H
#include "c_pal/thandle_ll.h"
#include "c_util/two_d_array_ll.h"
#include "umock_c/umock_c_prod.h"
/*TWO_D_ARRAY is-a THANDLE.*/
/*given a type "T" TWO_D_ARRAY(T) expands to the name of the type. */
#define TWO_D_ARRAY(T) TWO_D_ARRAY_LL(T)
#define TWO_D_ARRAY_CREATE_DECLARE(T) TWO_D_ARRAY_LL_CREATE_DECLARE(T, T)
#define TWO_D_ARRAY_CREATE_DEFINE(T) TWO_D_ARRAY_LL_CREATE_DEFINE(T, T)
#define TWO_D_ARRAY_FREE_ROW_DECLARE(T) TWO_D_ARRAY_LL_FREE_ROW_DECLARE(T, T)
#define TWO_D_ARRAY_FREE_ROW_DEFINE(T) TWO_D_ARRAY_LL_FREE_ROW_DEFINE(T, T)
#define TWO_D_ARRAY_ALLOCATE_NEW_ROW_DECLARE(T) TWO_D_ARRAY_LL_ALLOCATE_NEW_ROW_DECLARE(T, T)
#define TWO_D_ARRAY_ALLOCATE_NEW_ROW_DEFINE(T) TWO_D_ARRAY_LL_ALLOCATE_NEW_ROW_DEFINE(T, T)
#define TWO_D_ARRAY_GET_ROW_DECLARE(T) TWO_D_ARRAY_LL_GET_ROW_DECLARE(T, T)
#define TWO_D_ARRAY_GET_ROW_DEFINE(T) TWO_D_ARRAY_LL_GET_ROW_DEFINE(T, T)
#define TWO_D_ARRAY_FREE_DEFINE(T) TWO_D_ARRAY_LL_FREE_DEFINE(T, T)
#define TWO_D_ARRAY_CREATE(C) TWO_D_ARRAY_LL_CREATE(C)
#define TWO_D_ARRAY_FREE_ROW(C) TWO_D_ARRAY_LL_FREE_ROW(C)
#define TWO_D_ARRAY_ALLOCATE_NEW_ROW(C) TWO_D_ARRAY_LL_ALLOCATE_NEW_ROW(C)
#define TWO_D_ARRAY_GET_ROW(C) TWO_D_ARRAY_LL_GET_ROW(C)
#define TWO_D_ARRAY_INITIALIZE(T) TWO_D_ARRAY_LL_INITIALIZE(T)
#define TWO_D_ARRAY_ASSIGN(T) TWO_D_ARRAY_LL_ASSIGN(T)
#define TWO_D_ARRAY_MOVE(T) TWO_D_ARRAY_LL_MOVE(T)
#define TWO_D_ARRAY_INITIALIZE_MOVE(T) TWO_D_ARRAY_LL_INITIALIZE_MOVE(T)
/*macro to be used in headers*/ \
#define TWO_D_ARRAY_TYPE_DECLARE(T) \
/*hint: have TWO_D_ARRAY_TYPE_DEFINE(T) before TWO_D_ARRAY_TYPE_DECLARE */ \
/*hint: have THANDLE_TYPE_DECLARE(TWO_D_ARRAY_TYPEDEF_NAME(T)) before TWO_D_ARRAY_TYPE_DECLARE */ \
TWO_D_ARRAY_CREATE_DECLARE(T) \
TWO_D_ARRAY_FREE_ROW_DECLARE(T) \
TWO_D_ARRAY_ALLOCATE_NEW_ROW_DECLARE(T) \
TWO_D_ARRAY_GET_ROW_DECLARE(T) \
#define TWO_D_ARRAY_TYPE_DEFINE(T) \
/*hint: have THANDLE_TYPE_DEFINE(TWO_D_ARRAY_TYPEDEF_NAME(T)) before TWO_D_ARRAY_TYPE_DEFINE */ \
TWO_D_ARRAY_FREE_DEFINE(T) \
TWO_D_ARRAY_CREATE_DEFINE(T) \
TWO_D_ARRAY_FREE_ROW_DEFINE(T) \
TWO_D_ARRAY_ALLOCATE_NEW_ROW_DEFINE(T) \
TWO_D_ARRAY_GET_ROW_DEFINE(T) \
#endif /*TWO_D_ARRAY_H*/