/********************************************************
** NAME
** dll_erlc.c
**
** DESCRIPTION
** Front end to the ERLANG C DLL
**
** NOTES
** Best viewed with tabstops set to 4
**
** AUTHOR & COPYRIGHT 2000
** Robert Clark, Erlang Software, http://www.erlang-software.com/
**
*********************************************************/
#if defined(_Windows)
#include <windows.h>
#else
#include "win_eqiv.h"
#endif
#include "erl_math.h"
#include "matherlc.h"
#include "dll_erlc.h"
/******************************************************
Public Functions
******************************************************/
//
// NAME
// ERLC_CalcNumServ
//
// DESCRIPTION
// Calculates the number of servers required to meet specifications
//
// NOTES
// dADA_AHT is the ratio of:
// ADA (Average Delay, All Requests), and
// AHT (Average Holding Time).
// Both must be in the same units (eg. both in seconds, or both in minutes)
//
// AUTHOR & COPYRIGHT 2000
// Robert Clark, Erlang Software, http://www.erlang-software.com/
//
int FAR pascal _export //Return: Required number of servers
ERLC_CalcNumServ (
double dErlangs, //Offered Traffic (erlangs)
double dADA_AHT //(ADA)/(AHT) See Notes
) {
[code deleted]
}
//
// NAME
// ERLC_CalcErlangs
//
// DESCRIPTION
// Calculates the max. offered traffic a system can support.
//
// NOTES
// dADA_AHT is the ratio of:
// ADA (Average Delay, All Requests), and
// AHT (Average Holding Time).
// Both must be in the same units (eg. both in seconds, or both in minutes)
//
// AUTHOR & COPYRIGHT 2000
// Robert Clark, Erlang Software, http://www.erlang-software.com/
//
double FAR pascal _export //Return: max. offered traffic (erlangs)
ERLC_CalcErlangs (
int iNumServ, //Number of available servers
double dADA_AHT //(ADA)/(AHT) See Notes
) {
[code deleted]
}
//
// NAME
// ERLC_CalcProbADA_AHT
//
// DESCRIPTION
// Calculates blocking probablity from the ADA/AHT ratio
//
// NOTES
// dADA_AHT is the ratio of:
// ADA (Average Delay, All Requests), and
// AHT (Average Holding Time).
// Both must be in the same units (eg. both in seconds, or both in minutes)
//
// AUTHOR & COPYRIGHT 2000
// Robert Clark, Erlang Software, http://www.erlang-software.com/
//
double FAR pascal _export //Return: blocking probability 0< <1
ERLC_CalcProbADA_AHT(
double dErlangs, //Offered Traffic (erlangs)
double dADA_AHT //(ADA)/(AHT) See Notes
) {
[code deleted]
}
//
// NAME
// ERLC_CalcProb
//
// DESCRIPTION
// Calculates the blocking probability
//
// NOTES
//
// AUTHOR & COPYRIGHT 2000
// Robert Clark, Erlang Software, http://www.erlang-software.com/
//
double FAR pascal _export //Return: Blocking probability, 0< <1
ERLC_CalcProb(
double dErlangs, //Offered Traffic (erlangs)
int iNumServ //Number of available servers
) {
[code deleted]
}
//
// NAME
// ERLC_CalcPn
//
// DESCRIPTION
// Calculates probability of exactly 'n' requests in the system
//
// NOTES
//
// AUTHOR & COPYRIGHT 2000
// Robert Clark, Erlang Software, http://www.erlang-software.com/
//
double FAR pascal _export //Return:Probability of 'n' requests in system, 0< <1
ERLC_CalcPn (
double dErlangs, //Offered Traffic (erlangs)
int iNumServ, //Number of available servers
int iN //'n'
) {
[code deleted]
}
//
// NAME
// ERLC_CalcCarry
//
// DESCRIPTION
// Calculates traffic carried by the system
//
// NOTES
// There are no losses in the Erlang C model, so carried traffic must
// equal offered traffic
//
// AUTHOR & COPYRIGHT 2000
// Robert Clark, Erlang Software, http://www.erlang-software.com/
//
double FAR pascal _export //Return: carried traffic (erlangs)
ERLC_CalcCarry (
double dErlangs //Offered Traffic (erlangs)
) {
[code deleted]
}
//
// NAME
// ERLC_CalcCarryN
//
// DESCRIPTION
// Calculates the traffic carried by server 'n'
//
// NOTES
// It is assumed that requests are preferentially serviced by
// the 'lower' numbered servers....ie. if there is one request in
// service, then server '1' handles it. If there are 2 requests
// in the system, then servers '1 and 2' handle them, etc.
//
// AUTHOR & COPYRIGHT 2000
// Robert Clark, Erlang Software, http://www.erlang-software.com/
//
double FAR pascal _export //Return: Traffic carried by server 'n' (erlangs)
ERLC_CalcCarryN (
double dErlangs, //Offered Traffic (erlangs)
int iNumServ, //Number of available servers
int iN //'n'
) {
[code deleted]
}
//
// NAME
// ERLC_CalcLost
//
// DESCRIPTION
// Calculates the traffic lost
//
// NOTES
// As there can be no losses in an Erlang C model, the result is
// always zero.
//
// AUTHOR & COPYRIGHT 2000
// Robert Clark, Erlang Software, http://www.erlang-software.com/
//
double FAR pascal _export ERLC_CalcLost (
void
) {
return 0.0;
}
//
// NAME
// ERLC_CalcAQA
//
// DESCRIPTION
// Calculates the Average Queue length, for All requests.
// Return value is in units of 'requests'.
//
// NOTES
//
// AUTHOR & COPYRIGHT 2000
// Robert Clark, Erlang Software, http://www.erlang-software.com/
//
double FAR pascal _export //Return: Ave Queue length - all requests
ERLC_CalcAQA (
double dErlangs, //Offered Traffic (erlangs)
int iNumServ //Number of available servers
) {
[code deleted]
}
//
// NAME
// ERLC_CalcAQD
//
// DESCRIPTION
// Calculates the Average Queue length, for Delayed requests.
// Return value is in units of 'requests'.
//
// NOTES
//
// AUTHOR & COPYRIGHT 2000
// Robert Clark, Erlang Software, http://www.erlang-software.com/
//
double FAR pascal _export //return: Ave Queue length - delayed requests
ERLC_CalcAQD (
double dErlangs, //Offered Traffic (erlangs)
int iNumServ //Number of available servers
) {
[code deleted]
}
//
// NAME
// ERLC_CalcADA
//
// DESCRIPTION
// Calculates the Average Delay, for All requests.
// Return value is in same units as 'AHT'. For example, if
// AHT is in seconds, then so is returned result.
//
// NOTES
//
// AUTHOR & COPYRIGHT 2000
// Robert Clark, Erlang Software, http://www.erlang-software.com/
//
double FAR pascal _export //return: Ave Delay - All requests
ERLC_CalcADA (
double dErlangs, //Offered Traffic (erlangs)
int iNumServ, //Number of available servers
double dAHT //Ave Holding Time
) {
[code deleted]
}
//
// NAME
// ERLC_CalcADD
//
// DESCRIPTION
// Calculates the Average Delay, for Delayed requests.
// Return value is in same units as 'AHT'. For example, if
// AHT is in seconds, then so is returned result.
//
// NOTES
//
// AUTHOR & COPYRIGHT 2000
// Robert Clark, Erlang Software, http://www.erlang-software.com/
//
double FAR pascal _export //return: Ave Delay - Delayed requests
ERLC_CalcADD (
double dErlangs, //Offered Traffic (erlangs)
int iNumServ, //Number of available servers
double dAHT //Ave Holding Time
) {
[code deleted]
}
|