ContactCenters
V. 0.9.9.

umontreal.iro.lecuyer.contactcenters.msk.stat
Class CallByCallMeasureManager

java.lang.Object
  extended by umontreal.iro.lecuyer.contactcenters.msk.stat.CallByCallMeasureManager
All Implemented Interfaces:
ExitedContactListener

public class CallByCallMeasureManager
extends Object
implements ExitedContactListener

Contains and updates call-by-call measures for a call center model. This includes the number of arrivals, the number of services, etc. Any object of this class encapsulates matrices of sums for each type of call-by-call measure. It is also an exited-contact listener which can be notified each time a call leaves the system, for statistical collecting.


Constructor Summary
CallByCallMeasureManager(CallCenter cc, StatPeriod statP, boolean contactTypeAgentGroups)
          Constructs an observer for all supported types of call-by-call measures, for the call center model cc, and using statP to obtain the statistical period of each counted call.
CallByCallMeasureManager(CallCenter cc, StatPeriod statP, boolean contactTypeAgentGroups, Collection<MeasureType> measures)
          Similar to constructor StatPeriod, boolean), but restricts the counters to the given collection of measure types.
 
Method Summary
 void blocked(Router router, Contact contact, int bType)
          This method is called when the contact contact is blocked in the router router.
 void dequeued(Router router, DequeueEvent ev)
          This method is called when a contact leaves a waiting queue linked to the router router, without being served.
 StatPeriod getStatPeriod()
          Returns the simulation logic associated with this object.
 boolean hasMeasures()
           
 void init()
          Initializes every measure matrices defined by this object.
 void initMeasureMap(Map<MeasureType,MeasureMatrix> measureMap)
          Initializes the given map measureMap with the measure matrices declared by this class.
 boolean isContactTypeAgentGroup()
          Returns true if this group of call center measures contains matrices whose rows correspond to counters concerning (contact type, agent group) pairs.
 void newAbandoned(Contact contact, int period)
           
 void newArrival(Contact contact, int period)
           
 void newBlocked(Contact contact, int period)
           
 void newDelayed(Contact contact, int period)
           
 void newServed(Contact contact, int period)
           
 void newServiceTime(Contact contact, int period, double time)
           
 void newWaitingTimeAbandoned(Contact contact, int period, double t)
           
 void newWaitingTimeServed(Contact contact, int period, double t)
           
 void newWaitingTimeVQAbandoned(Contact contact, int period, double t)
           
 void newWaitingTimeVQServed(Contact contact, int period, double t)
           
 void newWrong(Contact contact, int period)
           
 void served(Router router, EndServiceEvent ev)
          This method is called when a contact was served by an agent.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CallByCallMeasureManager

public CallByCallMeasureManager(CallCenter cc,
                                StatPeriod statP,
                                boolean contactTypeAgentGroups)
Constructs an observer for all supported types of call-by-call measures, for the call center model cc, and using statP to obtain the statistical period of each counted call.

Many counters concerning a call type can be separated into I counters, one for each agent group. This can be useful to obtain statistics concerning specific (call type, agent group) pairs, but this requires more memory. The boolean argument contactTypeAgentGroups determines if this separation is needed. If (call type, agent group) statistics are needed, this argument is true. Otherwise, it is false.

Parameters:
cc - the call center model.
statP - the object used to get statistical periods of calls.
contactTypeAgentGroups - determines if statistics for (call type, agent group) pairs are needed.

CallByCallMeasureManager

public CallByCallMeasureManager(CallCenter cc,
                                StatPeriod statP,
                                boolean contactTypeAgentGroups,
                                Collection<MeasureType> measures)
Similar to constructor StatPeriod, boolean), but restricts the counters to the given collection of measure types.

Method Detail

getStatPeriod

public StatPeriod getStatPeriod()
Returns the simulation logic associated with this object.

Returns:
the associated simulation logic.

isContactTypeAgentGroup

public boolean isContactTypeAgentGroup()
Returns true if this group of call center measures contains matrices whose rows correspond to counters concerning (contact type, agent group) pairs. If no matrix with rows of type (contact type, agent group) is present, this returns false.


initMeasureMap

public void initMeasureMap(Map<MeasureType,MeasureMatrix> measureMap)
Initializes the given map measureMap with the measure matrices declared by this class. Each key of the map must be an instance of MeasureType while values are instances of MeasureMatrix.

Parameters:
measureMap - the map to be initialized.

hasMeasures

public boolean hasMeasures()

init

public void init()
Initializes every measure matrices defined by this object.


newArrival

public void newArrival(Contact contact,
                       int period)

newWrong

public void newWrong(Contact contact,
                     int period)

newServiceTime

public void newServiceTime(Contact contact,
                           int period,
                           double time)

newBlocked

public void newBlocked(Contact contact,
                       int period)

newDelayed

public void newDelayed(Contact contact,
                       int period)

newWaitingTimeAbandoned

public void newWaitingTimeAbandoned(Contact contact,
                                    int period,
                                    double t)

newWaitingTimeServed

public void newWaitingTimeServed(Contact contact,
                                 int period,
                                 double t)

newWaitingTimeVQAbandoned

public void newWaitingTimeVQAbandoned(Contact contact,
                                      int period,
                                      double t)

newWaitingTimeVQServed

public void newWaitingTimeVQServed(Contact contact,
                                   int period,
                                   double t)

newAbandoned

public void newAbandoned(Contact contact,
                         int period)

newServed

public void newServed(Contact contact,
                      int period)

blocked

public void blocked(Router router,
                    Contact contact,
                    int bType)
Description copied from interface: ExitedContactListener
This method is called when the contact contact is blocked in the router router. The integer bType is used to indicate the reason of the blocking, e.g., the contact could not be served or put into any waiting queue.

Specified by:
blocked in interface ExitedContactListener
Parameters:
router - the router causing the blocking.
contact - the blocked contact.
bType - an indicator giving the reason why the contact is blocked.

dequeued

public void dequeued(Router router,
                     DequeueEvent ev)
Description copied from interface: ExitedContactListener
This method is called when a contact leaves a waiting queue linked to the router router, without being served.

Specified by:
dequeued in interface ExitedContactListener
Parameters:
router - the router causing the dequeueing.
ev - the dequeue event.

served

public void served(Router router,
                   EndServiceEvent ev)
Description copied from interface: ExitedContactListener
This method is called when a contact was served by an agent. This method is called by the router before the after-contact work begins so ev does not contain the information about after-contact time.

Specified by:
served in interface ExitedContactListener
Parameters:
router - the router managing the contact.
ev - the end service event.

ContactCenters
V. 0.9.9.

To submit a bug or ask questions, send an e-mail to Richard Simard.