<!--  
///////////////////////////////////////////////////////////////////////////////
//                                                                           //
// 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                                 //
//                                                                           //
///////////////////////////////////////////////////////////////////////////////

-->

<!DOCTYPE TITAN_GUI_project_file>
<Project TITAN_version="1.8.pre0 build 2" >
    <General>
        <Project_Name>ExecCtrlUIHandler_demo</Project_Name>
        <Executable_Path>../build/ExecCtrl_demo</Executable_Path>
        <Working_Dir>../build</Working_Dir>
        <Build_Host>alpha</Build_Host>
        <Execution_Mode>Parallel</Execution_Mode>
        <ScriptFile_AfterMake>../HostAdmin/makefile_patch.sh</ScriptFile_AfterMake>
        <Log_Format>yes</Log_Format>
        <Update_Symlinks>yes</Update_Symlinks>
        <Create_Absolute_Symlinks>no</Create_Absolute_Symlinks>
        <Update_Makefile>yes</Update_Makefile>
        <Localhost_Execute>yes</Localhost_Execute>
        <Execute_Command>rsh %host &quot;cd %project_working_dir ; &quot;%executable&quot; %localhost %mctr_port&quot;</Execute_Command>
        <Execute_Hosts>alfa, beta, gamma</Execute_Hosts>
        <UnUsed_List></UnUsed_List>
    </General>
    <Configs>
        <Config>execctrld.cfg</Config>
    </Configs>
    <Test_Cases>
        <Test_Case>ExecCtrlUIHandler_Demo.control</Test_Case>
        <Test_Case>ExecCtrlUIHandler_Demo.TC</Test_Case>
        <Test_Case>ExecCtrl_Demo.control</Test_Case>
        <Test_Case>ExecCtrl_Demo.TC</Test_Case>
    </Test_Cases>
    <Others/>
    <File_Group name="MainFileGroup" >
        <File_Groups>
            <File_Group name="EPTF_R2" >
                <File_Groups>
                    <File_Group path="../../src/Common/EPTF_CLL_Common.grp" />
                    <File_Group path="../../src/Base/EPTF_CLL_Base.grp" />
                    <File_Group path="../../src/Scheduler/EPTF_CLL_Scheduler.grp" />
                    <File_Group path="../../src/HashMap/EPTF_CLL_HashMap.grp" />
                    <File_Group path="../../src/Variable/EPTF_CLL_Variable.grp" />
                    <File_Group path="../../src/RedBlackTree/EPTF_CLL_RBtree.grp" />
                    <File_Group path="../../src/FreeBusyQueue/EPTF_CLL_FreeBusyQueue.grp" />
                    <File_Group path="../../src/Logging/EPTF_CLL_Logging.grp" />
                    <File_Group path="../../src/ExecCtrl/EPTF_CLL_ExecCtrlUIHandler.grp" />
                    <File_Group path="../../src/Logging/EPTF_CLL_LoggingUI.grp" />
                    <File_Group path="../../src/UIHandler/EPTF_CLL_UIHandler.grp" />
                    <File_Group path="../../src/LGenBase/EPTF_CLL_LGenBase.grp" />
                    <File_Group path="../../src/LGenBase/EPTF_CLL_LGenBaseStatsUI.grp" />
                    <File_Group path="../../src/LGenBase/EPTF_CLL_LGenBaseStats.grp" />
                    <File_Group path="../../src/ExecCtrl/EPTF_CLL_ExecCtrl.grp" />
                    <File_Group path="../../src/LoadRegulator/EPTF_CLL_LoadRegulator.grp" />
                    <File_Group path="../../src/LoadRegulator/EPTF_CLL_LoadRegulatorUI.grp" />
                    <File_Group path="../../src/StatMeasure/EPTF_CLL_StatMeasure.grp" />
                    <File_Group path="../../src/StatHandler/EPTF_CLL_StatHandler.grp" />
                    <File_Group path="../../src/Semaphore/EPTF_CLL_Semaphore.grp" />
                    <File_Group path="../../src/RandomNArray/EPTF_CLL_RNA.grp" />
                    <File_Group path="../../src/StatHandler/EPTF_CLL_StatHandlerUI.grp" />
                    <File_Group path="../../src/Transport/EPTF_CLL_TransportCommPortIPL4.grp" />
                    <File_Group path="../../src/Transport/EPTF_CLL_TransportMessageBufferManager.grp" />
                    <File_Group path="../../src/Transport/EPTF_CLL_TransportRouting.grp" />
                </File_Groups>
            </File_Group>
            <File_Group name="ExecCtrl_demo" >
                <File path="AppLib_A_Definitions.ttcn" />
                <File path="AppLib_A_Functions.ttcn" />
                <File path="ExecCtrl_Demo.ttcn" />
            </File_Group>
            <File_Group name="TestPorts" >
                <File_Groups>
                    <File_Group name="AbstractSocket" >
                        <File path="../../../../TestPorts/Common_Components/Abstract_Socket_CNL113384/src/Abstract_Socket.cc" />
                        <File path="../../../../TestPorts/Common_Components/Abstract_Socket_CNL113384/src/Abstract_Socket.hh" />
                    </File_Group>
                    <File_Group name="Telnet" >
                        <File path="../../../../TestPorts/TELNETasp_CNL113320/src/TELNETasp_PT.cc" />
                        <File path="../../../../TestPorts/TELNETasp_CNL113320/src/TELNETasp_PT.hh" />
                        <File path="../../../../TestPorts/TELNETasp_CNL113320/src/TELNETasp_PortType.ttcn" />
                    </File_Group>
                    <File_Group path="../../../../TestPorts/IPL4asp_CNL113531/src/IPL4.grp" />
                </File_Groups>
            </File_Group>
            <File_Group name="TCCUseful" >
                <File_Groups>
                    <File_Group name="FileIO" >
                        <File path="../../../TCCUsefulFunctions_CNL113472/src/TCCFileIO.cc" />
                        <File path="../../../TCCUsefulFunctions_CNL113472/src/TCCFileIO_Functions.ttcn" />
                    </File_Group>
                    <File_Group name="DateTime" >
                        <File path="../../../TCCUsefulFunctions_CNL113472/src/TCCDateTime.cc" />
                        <File path="../../../TCCUsefulFunctions_CNL113472/src/TCCDateTime_Functions.ttcn" />
                    </File_Group>
                    <File_Group name="Encoding" >
                        <File path="../../../TCCUsefulFunctions_CNL113472/src/TCCEncoding.cc" />
                        <File path="../../../TCCUsefulFunctions_CNL113472/src/TCCEncoding_Functions.ttcn" />
                    </File_Group>
                    <File_Group name="Maths" >
                        <File path="../../../TCCUsefulFunctions_CNL113472/src/TCCMaths.cc" />
                        <File path="../../../TCCUsefulFunctions_CNL113472/src/TCCMaths_GenericTypes.ttcn" />
                        <File path="../../../TCCUsefulFunctions_CNL113472/src/TCCMaths_Functions.ttcn" />
                    </File_Group>
                    <File_Group name="Conversion" >
                        <File path="../../../TCCUsefulFunctions_CNL113472/src/TCCConversion.cc" />
                        <File path="../../../TCCUsefulFunctions_CNL113472/src/TCCConversion_Functions.ttcn" />
                    </File_Group>
                    <File_Group name="Interface" >
                        <File path="../../../TCCUsefulFunctions_CNL113472/src/TCCInterface.cc" />
                        <File path="../../../TCCUsefulFunctions_CNL113472/src/TCCInterface_Functions.ttcn" />
                        <File path="../../../TCCUsefulFunctions_CNL113472/src/TCCInterface_ip.h" />
                    </File_Group>
                </File_Groups>
            </File_Group>
            <File_Group path="ExecControlUIHandler_Demo.grp" />
        </File_Groups>
    </File_Group>
</Project>
