///////////////////////////////////////////////////////////////////////////////
//                                                                           //
// 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: MyMessageTypeRingBuffer_Functions
// 
//  Purpose:
//    This module contains type definitions, include statements and macro definitions 
//    in order to demonstrate the handling of a ring buffer built from an arbitrary 
//    user defined type.
// 
//  Module depends on:
//    <EPTF_CLL_GenericRingBuffer_Functions.ttcnin>
// 
//  Current Owner:
//    Istvan Falusi (eistfal)
// 
//  Last Review Date:
//    2007-11-19
// 
///////////////////////////////////////////////////////////

module MyMessageTypeRingBuffer_Functions
{

///////////////////////////////////////////////////////////
//  Type: MyMessageType
// 
//  Purpose:
//    Defines the base type the ring buffer is built from.
///////////////////////////////////////////////////////////
type record MyMessageType
{
  enumerated {OK, ERROR} severity,
  charstring data
}

// defines the ring buffer base type
#define EPTF_BASE_TYPE MyMessageType

//instantiate the code for managing a ring buffer built from the base type
#include "EPTF_CLL_GenericRingBuffer_Functions.ttcnin"

//undef the base type to avoid error in case of multiple careless "#include"-s
#undef EPTF_BASE_TYPE 

}  // end of module
