// /*-------------------------------------------------------------------*\
// | Concrete Template : Partial_Map_Kernel_4a
// \*-------------------------------------------------------------------*/
#ifndef CT_PARTIAL_MAP_KERNEL_4A
#define CT_PARTIAL_MAP_KERNEL_4A 1
///---------------------------------------------------------------------
/// Global Context -----------------------------------------------------
///---------------------------------------------------------------------
#include "CT/Partial_Map/Kernel_4.h"
#include "CT/Partial_Map/Kernel_2.h"
#include "CT/Static_Array/Kernel_1.h"
/*!
#include "AT/General/Is_Equal_To.h"
!*/
///---------------------------------------------------------------------
/// Local Context ------------------------------------------------------
///---------------------------------------------------------------------
concrete_template <
concrete_instance class D_Item,
/*!
implements
abstract_instance General_Is_Equal_To <D_Item, D_Item>
!*/
concrete_instance class R_Item,
concrete_instance utility_class D_Item_Hash,
/*!
implements
abstract_instance General_Hash <D_Item>
!*/
Integer_constant local_hash_table_size
/*!
satisfies restriction
local_hash_table_size > 0
!*/
>
class Partial_Map_Kernel_4a_D_R_Partial_Map :
specializes
Partial_Map_Kernel_2 <
D_Item,
R_Item,
D_Item_Hash,
local_hash_table_size
>
{};
//----------------------------------------------------------------------
concrete_template <
concrete_instance class D_Item,
/*!
implements
abstract_instance General_Is_Equal_To <D_Item, D_Item>
!*/
concrete_instance class R_Item,
concrete_instance utility_class D_Item_Hash,
/*!
implements
abstract_instance General_Hash <D_Item>
!*/
Integer_constant global_hash_table_size,
/*!
satisfies restriction
global_hash_table_size > 0
!*/
Integer_constant local_hash_table_size
/*!
satisfies restriction
local_hash_table_size > 0
!*/
>
class Partial_Map_Kernel_4a_Static_Array_Of_Partial_Map :
specializes
Static_Array_Kernel_1 <
Partial_Map_Kernel_4a_D_R_Partial_Map <
D_Item,
R_Item,
D_Item_Hash,
local_hash_table_size,
>,
0,
global_hash_table_size - 1
>
{};
//----------------------------------------------------------------------
concrete_template <
concrete_instance class D_Item,
/*!
implements
abstract_instance General_Is_Equal_To <D_Item, D_Item>
!*/
concrete_instance class R_Item,
concrete_instance utility_class D_Item_Hash,
/*!
implements
abstract_instance General_Hash <D_Item>
!*/
Integer_constant global_hash_table_size,
/*!
satisfies restriction
global_hash_table_size > 0
!*/
Integer_constant local_hash_table_size
/*!
satisfies restriction
local_hash_table_size > 0
!*/
>
class Partial_Map_Kernel_4a_Rep :
specializes
Representation <
Partial_Map_Kernel_4a_Static_Array_Of_Partial_Map <
D_Item,
R_Item,
D_Item_Hash,
global_hash_table_size,
local_hash_table_size
>,
Integer
>
{};
///---------------------------------------------------------------------
/// Interface ----------------------------------------------------------
///---------------------------------------------------------------------
concrete_template <
concrete_instance class D_Item,
/*!
implements
abstract_instance General_Is_Equal_To <D_Item, D_Item>
!*/
concrete_instance class R_Item,
concrete_instance utility_class D_Item_Hash,
/*!
implements
abstract_instance General_Hash <D_Item>
!*/
Integer_constant global_hash_table_size,
/*!
satisfies restriction
global_hash_table_size > 0
!*/
Integer_constant local_hash_table_size
/*!
satisfies restriction
local_hash_table_size > 0
!*/
>
class Partial_Map_Kernel_4a :
specializes
Partial_Map_Kernel_4 <
D_Item,
R_Item,
D_Item_Hash,
global_hash_table_size,
Partial_Map_Kernel_4a_D_R_Partial_Map <
D_Item,
R_Item,
D_Item_Hash,
local_hash_table_size
>,
Partial_Map_Kernel_4a_Static_Array_Of_Partial_Map <
D_Item,
R_Item,
D_Item_Hash,
global_hash_table_size,
local_hash_table_size
>,
Partial_Map_Kernel_4a_Rep <
D_Item,
R_Item,
D_Item_Hash,
local_hash_table_size,
global_hash_table_size
>
>
{};
//----------------------------------------------------------------------
#endif // CT_PARTIAL_MAP_KERNEL_4A
Last modified: Thu Dec 17 15:41:29 EST 2009