#!/usr/bin/perl
###############################################################################
#  Copyright (C) 1994 - 2009, Performance Dynamics Company                    #
#                                                                             #
#  This software is licensed as described in the file COPYING, which          #
#  you should have received as part of this distribution. The terms           #
#  are also available at http://www.perfdynamics.com/Tools/copyright.html.    #
#                                                                             #
#  You may opt to use, copy, modify, merge, publish, distribute and/or sell   #
#  copies of the Software, and permit persons to whom the Software is         #
#  furnished to do so, under the terms of the COPYING file.                   #
#                                                                             #
#  This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY  #
#  KIND, either express or implied.                                           #
###############################################################################

#
#  $Id: test.pl,v 4.5 2012/11/08 23:16:44 earl-lang Exp $
#

use pdq;

$arrivRate    = 9.9;
$service_time = 0.1;

#$arrivRate    = .00261165577342047930;
#$service_time = 1774.1;


#---- Initialize --------------------------------------------------------------

pdq::Init("OpenCenter");
pdq::SetComment("A simple M/M/1 queue");


#---- Define the queueing center ----------------------------------------------

$noNodes = pdq::CreateNode("server", $pdq::CEN, $pdq::FCFS);


#---- Define the workload and circuit type ------------------------------------

$noStreams = pdq::CreateOpen("work", $arrivRate);
   
pdq::SetWUnit("Customers");
pdq::SetTUnit("Seconds");


#---- Define service demand due to workload on the queueing center ------------

pdq::SetDemand("server", "work", $service_time);


#---- Solve the model ---------------------------------------------------------
#  Must use the CANONical method for an open circuit

pdq::Solve($pdq::CANON);


#---- Generate a report -------------------------------------------------------

pdq::Report();


#printf "[print_nodes] Before 2\n";
#pdq::PrintNodes();
#printf "[print_nodes] After 2\n";

#printf "pdq::nodes = %d\n", $pdq::nodes;
#$node = pdq::GetNode(0);
#printf "Node->{devname}\n", $node->{devname};

