blob: 0ba2b1f7b6fe00b11de17a3f1e9ea91f3ac7087f [file] [log] [blame]
///////////////////////////////////////////////////////////////////////////////
// //
// Copyright (c) 2000-2019 Ericsson Telecom AB //
// //
// All rights reserved. This program and the accompanying materials //
// are made available under the terms of the Eclipse Public License v2.0 //
// which accompanies this distribution, and is available at //
// https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html //
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// Module: EPTF_CLL_RBT_Definitions
//
// Purpose:
// This module contains the type and constant definitions of the EPTF RedBlackTree feature
//
// Module Parameters:
// -
//
// Module depends on:
// <EPTF_CLL_Base_Definitions>
// <EPTF_CLL_Common_Definitions>
//
// Current Owner:
// Gabor Tatarka (EGBOTAT)
//
// Last Review Date:
// -
//
///////////////////////////////////////////////////////////////////////////////
module EPTF_CLL_RBT_Definitions {
import from EPTF_CLL_Base_Definitions all;
import from EPTF_CLL_Common_Definitions all;
///////////////////////////////////////////////////////////
// Type: EPTF_RBT_TreeId
//
// Purpose:
// Type definition of a tree ID
//
// Elements:
// type alias for *integer*
///////////////////////////////////////////////////////////
type integer EPTF_RBT_TreeId;
///////////////////////////////////////////////////////////
// Type: EPTF_RBT_ItemIdx
//
// Purpose:
// Type definition of an item index
//
// Elements:
// type alias for *integer*
///////////////////////////////////////////////////////////
type integer EPTF_RBT_ItemIdx;
///////////////////////////////////////////////////////////
// Type: EPTF_RBT_ItemIdxList
//
// Purpose:
// Type definition of list of item indices
//
// Elements:
// type alias for <EPTF_IntegerList>
///////////////////////////////////////////////////////////
type EPTF_IntegerList EPTF_RBT_ItemIdxList;
///////////////////////////////////////////////////////////
// Type: EPTF_RBT_CT
//
// Purpose:
// Component type definition of the RedBlackTree feature
//
// Detailed Comments:
// This component has to be extended by the component
// that wishes to use EPTF RedBlackTree.
///////////////////////////////////////////////////////////
type component EPTF_RBT_CT extends EPTF_Base_CT {
private var boolean v_EPTF_RBT_initialized := false;
}
group RBT_Test {
friend module EPTF_RBT_Test;
friend module EPTF_CLL_RBT_Functions;
friend type enumerated EPTF_RBT_ItemType {
RedNode,
BlackNode,
ChainItem,
FreeItem
}
friend type union EPTF_RBT_Key {
integer intKey,
float floatKey,
charstring stringKey
}
friend type record EPTF_RBT_TreeInitNode {
boolean isRed,
EPTF_RBT_Key key,
EPTF_RBT_TreeInitNode leftChild optional,
EPTF_RBT_TreeInitNode rightChild optional
}
} // group RBT_Test
} // module EPTF_CLL_RBT_Definitions