|
ContactCenters V. 0.9.9. |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectumontreal.iro.lecuyer.contactcenters.app.AbstractContactCenterInfo
umontreal.iro.lecuyer.contactcenters.msk.model.CallCenter
public class CallCenter
Represents the model of a call center with multiple call types and agent groups. The model encapsulates all the logic of the call center itself: a simulator with a clock and event list, a simulation event marking the change of periods, the call factories which create objects for every call, manager objects for arrival processes, dialers, agent groups, and the router, etc. A program can use methods in this class to obtain references to the call center objects, and retrieve their parameters, or register listeners to observe their evolution in time.
A model is created from an instance of CallCenterParams
, and an
instance of RandomStreams
. After it is created using the
create()
method, it can be initialized for simulation using
initSim()
. The encapsulated period-change event, and managed arrival
processes and dialers must then be started to schedule events before the
simulation is started using simulator().start().
Constructor Summary | |
---|---|
CallCenter(CallCenterParams ccParams)
Creates a call center model with parameters stored in ccParams, and using the default class of random stream MRG32k3a . |
|
CallCenter(CallCenterParams ccParams,
RandomStreams streams)
Constructs a new call center model from the call center parameters ccParams, and the random streams streams. |
|
CallCenter(Simulator sim,
CallCenterParams ccParams)
Similar to CallCenter(CallCenterParams) , with the given simulator
sim. |
|
CallCenter(Simulator sim,
CallCenterParams ccParams,
RandomStreams streams)
Similar to CallCenter(CallCenterParams,RandomStreams) , with the
given simulator sim. |
Method Summary | |
---|---|
void |
create()
Calls create (false). |
void |
create(boolean recreateStreams)
Constructs the elements of the call center. |
protected WaitingQueue |
createWaitingQueue(int q)
Constructs and returns the qth waiting queue for this call center. |
AgentGroup |
getAgentGroup(int i)
Returns the agent group with index i. |
AgentGroupManager |
getAgentGroupManager(int i)
Returns the agent group manager with index i. |
AgentGroupManager[] |
getAgentGroupManagers()
Returns an array containing the agent group managers of this model. |
String |
getAgentGroupName(int i)
Returns the name associated with the agent group identifier i. |
Map<String,String> |
getAgentGroupProperties(int i)
This method is similar to ContactCenterInfo.getContactTypeProperties(int) ,
for agent groups instead of contact types. |
AgentGroup[] |
getAgentGroups()
Returns an array containing the agent groups of this model. |
SegmentInfo |
getAgentGroupSegment(int i)
Returns the information object for the ith user-defined segment regrouping agent groups. |
String |
getAgentGroupSegmentName(int i)
Returns the name associated with the agent group segment i, where i is a number greater than or equal to 0 and smaller than ContactCenterInfo.getNumAgentGroupSegments() . |
Map<String,String> |
getAgentGroupSegmentProperties(int i)
This method is similar to ContactCenterInfo.getContactTypeProperties(int) ,
for agent group segments instead of contact types. |
SegmentInfo[] |
getAgentGroupSegments()
Returns an array containing information objects for all user-defined segments regrouping agent groups. |
double |
getAgentsMult()
Returns the global multiplier for the number of agents in any group during any period. |
ArrivalProcessManager[] |
getArrivalProcesManagers()
Returns the array of arrival process managers in this model. |
ContactArrivalProcess |
getArrivalProcess(int k)
Returns the arrival process with index k, or null if k is smaller than ![]() |
ContactArrivalProcess[] |
getArrivalProcesses()
Returns an array containing the arrival processes of this model. |
ArrivalProcessManager |
getArrivalProcessManager(int k)
Returns the arrival process manager with index k. |
double |
getArrivalsMult()
Returns the global multiplier applied to the arrival rates or number of arrivals for each arrival process in this model. |
AWTPeriod |
getAwtPeriod()
Returns the object used to compute the AWT period of contacts. |
int |
getAwtPeriod(Contact contact)
Returns the period index used to obtain the period-specific acceptable waiting time for contact contact. |
double |
getBusynessFactor()
Returns the current value of B used by arrival processes. |
RandomVariateGen |
getBusynessGen()
Returns a reference to the random variate generator used for the global busyness factor B multiplying the arrival rates or number of arrivals of calls. |
CallCenterParams |
getCallCenterParams()
Returns the call center parameters associated with this model. |
CallFactory[] |
getCallFactories()
Returns the array of call factories for this model. |
CallFactory |
getCallFactory(int k)
Returns the call factory generating calls of type k in this model. |
double |
getConferenceTimesMult()
Returns the global multiplier for conference times of calls transferred to a new agent with the primary agent waiting for the secondary agent. |
String |
getContactTypeName(int k)
Returns the name associated with the contact type k, where k is a number greater than or equal to 0 and smaller than ContactCenterInfo.getNumContactTypes() . |
Map<String,String> |
getContactTypeProperties(int k)
Returns the properties associated with contact type k. |
SegmentInfo |
getContactTypeSegment(int k)
Returns the information object for the kth user-defined segment regrouping contact types. |
String |
getContactTypeSegmentName(int k)
Returns the name associated with the contact type segment k, where k is a number greater than or equal to 0 and smaller than ContactCenterInfo.getNumContactTypeSegments() . |
Map<String,String> |
getContactTypeSegmentProperties(int k)
This method is similar to ContactCenterInfo.getContactTypeProperties(int) ,
for contact type segments instead of contact types. |
SegmentInfo[] |
getContactTypeSegments()
Returns an array containing information objects for all user-defined segments regrouping contact types. |
boolean[][] |
getDefaultShiftMatrix()
Returns the J×P default shift matrix used for any agent group with a schedule giving only a vector of agents. |
TimeUnit |
getDefaultUnit()
Returns the default unit used for this call center. |
Dialer |
getDialer(int k)
Returns the dialer with index k, or null if k is smaller than ![]() |
DialerManager |
getDialerManager(int k)
Returns the dialer manager with index k. |
DialerManager[] |
getDialerManagers()
Returns the array of dialer managers in this model. |
DialerObjects |
getDialerObjects()
Returns the instance of DialerObjects associated with this model. |
Dialer[] |
getDialers()
Returns an array containing the dialers of this model. |
SegmentInfo |
getInContactTypeSegment(int k)
Returns the information object for the kth user-defined segment regrouping inbound contact types. |
String |
getInContactTypeSegmentName(int k)
Returns the name associated with the inbound contact type segment k, where k is a number greater than or equal to 0 and smaller than ContactCenterInfo.getNumInContactTypeSegments() . |
Map<String,String> |
getInContactTypeSegmentProperties(int k)
This method is similar to ContactCenterInfo.getContactTypeProperties(int) ,
for inbound contact type segments instead of contact types. |
SegmentInfo[] |
getInContactTypeSegments()
Returns an array containing information objects for all user-defined segments regrouping inbound contact types. |
String |
getMainPeriodName(int mp)
Returns the name corresponding to the main period mp. |
SegmentInfo |
getMainPeriodSegment(int p)
Returns the information object for the pth user-defined segment regrouping main periods. |
String |
getMainPeriodSegmentName(int mp)
Returns the name associated with the main period segment mp, where mp is a number greater than or equal to 0 and smaller than ContactCenterInfo.getNumMainPeriodSegments() . |
SegmentInfo[] |
getMainPeriodSegments()
Returns an array containing information objects for all user-defined segments regrouping main periods. |
Date |
getMainPeriodStartingDate(int mp)
Returns the date corresponding to the beginning of the main period mp. |
String |
getMatrixOfAWTName(int m)
Returns the name of the matrix of acceptable waiting time with index m, or null if no name was given in the parameter file. |
int |
getNumAgentGroups()
Returns the total number of agent groups supported by this contact center. |
int |
getNumAgentGroupSegments()
Returns the number of user-defined segments regrouping agent groups. |
int |
getNumArrivalProcesses()
Returns the maximal number of arrival process managers in this model. |
int |
getNumContactTypes()
Returns the total number of contact types supported by this contact center. |
int |
getNumContactTypeSegments()
Returns the number of user-defined segments regrouping contact types. |
int |
getNumDialers()
Returns the maximal number of dialer managers in this model. |
int |
getNumInContactTypes()
Returns the total number of inbound contact types for this contact center. |
int |
getNumInContactTypeSegments()
Returns the number of user-defined segments regrouping inbound contact types. |
int |
getNumMainPeriods()
Returns the number of main periods used for evaluation, as defined in PeriodChangeEvent . |
int |
getNumMainPeriodSegments()
Returns the number of user-defined segments regrouping main periods. |
int |
getNumMatricesOfAWT()
Returns the number of sets of parameters for the service level given by the user in parameter file. |
int |
getNumOutContactTypes()
Returns the total number of outbound contact types for this contact center. |
int |
getNumOutContactTypeSegments()
Returns the number of user-defined segments regrouping outbound contact types. |
int |
getNumWaitingQueues()
Returns the total number of waiting queues capable of storing contacts. |
int |
getNumWaitingQueueSegments()
Returns the number of user-defined segments regrouping waiting queues. |
SegmentInfo |
getOutContactTypeSegment(int k)
Returns the information object for the kth user-defined segment regrouping outbound contact types. |
String |
getOutContactTypeSegmentName(int k)
Returns the name associated with the outbound contact type segment k, where k is a number greater than or equal to 0 and smaller than ContactCenterInfo.getNumOutContactTypeSegments() . |
Map<String,String> |
getOutContactTypeSegmentProperties(int k)
This method is similar to ContactCenterInfo.getContactTypeProperties(int) ,
for outbound contact type segments instead of contact types. |
SegmentInfo[] |
getOutContactTypeSegments()
Returns an array containing information objects for all user-defined segments regrouping outbound contact types. |
double |
getPatienceTimesMult()
Returns the global multiplier for patience times which is applied on every generated patience time. |
PeriodChangeEvent |
getPeriodChangeEvent()
Returns a reference to the period-change event used by this model. |
double |
getPeriodDuration()
Returns the duration of main periods, expressed in the default time unit returned by getDefaultUnit() . |
double |
getPreServiceTimesNoConfMult()
Returns the global multiplier for pre-service times of calls transferred to a new agent without the primary agent waiting for the secondary agent. |
double |
getPreviewTimesMult()
Returns the global multiplier applied to all generated preview times of outbound calls. |
Map<String,Object> |
getProperties()
Returns a map containing the user-defined properties associated with this model. |
int |
getQueueCapacity()
Returns the current queue capacity in this model. |
RandomStreams |
getRandomStreams()
Returns the random streams used by this model. |
Router |
getRouter()
Returns a reference to the router used by this model. |
RouterManager |
getRouterManager()
Returns a reference to the router manager of this model. |
ServiceLevelParamReadHelper |
getServiceLevelParams(int m)
Returns the set of parameters m for the service level. |
double |
getServiceTimesMult()
Returns the global multiplier for service times which is applied on every generated service time. |
Date |
getStartingDate()
Returns the date corresponding to the environment being modeled. |
double |
getStartingTime()
Returns the starting time of the first main period, expressed in the default time unit. |
RandomStreams |
getStreams()
Deprecated. Use getRandomStreams() instead. |
double[] |
getTime(Duration... d)
Constructs and returns an array whose elements correspond to the time durations in the given array, converted to the default time unit. |
double |
getTime(Duration d)
Converts the given duration d to a time in the default time unit. |
double[][] |
getTime(Duration[][] d)
Similar to getTime(Duration...) , for a 2D array. |
double[] |
getTime(XMLGregorianCalendar... d)
Similar to getTime(Duration...) , for an array of XML gregorian
calendars. |
double |
getTime(XMLGregorianCalendar xgcal)
Converts the time returned by CallCenterUtil.getTimeInMillis(XMLGregorianCalendar) to the
default time unit returned by getDefaultUnit() . |
double[][] |
getTime(XMLGregorianCalendar[][] d)
Similar to getTime(XMLGregorianCalendar...) , for a 2D array. |
double |
getTransferTimesMult()
Returns the global multiplier applied on any generated transfer time. |
WaitingQueue |
getWaitingQueue(int q)
Returns the waiting queue with index q in this model. |
String |
getWaitingQueueName(int q)
Returns the name of the waiting queue with index q used by the evaluation. |
Map<String,String> |
getWaitingQueueProperties(int q)
This method is similar to ContactCenterInfo.getContactTypeProperties(int) ,
for waiting queues instead of contact types. |
WaitingQueue[] |
getWaitingQueues()
Returns an array containing the waiting queues of this model. |
String |
getWaitingQueueSegmentName(int q)
Returns the name associated with the waiting queue segment q, where q is a number greater than or equal to 0 and smaller than ContactCenterInfo.getNumMainPeriodSegments() . |
Map<String,String> |
getWaitingQueueSegmentProperties(int q)
This method is similar to ContactCenterInfo.getContactTypeProperties(int) ,
for waiting queue segments instead of contact types. |
Class<? extends WaitingTimePredictor> |
getWaitingTimePredictorClass()
Returns the class of waiting time predictors used by some routing policies, and virtual holding. |
void |
initSim()
Initializes the model for a new simulation with a random busyness factor. |
void |
initSim(double b1)
Initializes the model for a new simulation setting the busyness factor of arrival processes to the given value b. |
boolean |
isCallTransferSupported()
Determines if this model supports call transfers. |
boolean[][] |
isExponentialPatienceTime()
Returns an array containing true at position [k][p] if contacts of type k arrived during period p have exponential patience times. |
boolean |
isExponentialPatienceTime(int k,
int mp)
Determines if patience times for contacts of type k arrived during period mp are exponential, and returns the result of the test. |
boolean[][][] |
isExponentialServiceTime()
Returns an array containing true at position [k][i][p] if contacts of type k arrived during period p, and served by agents in group i have exponential service times. |
boolean |
isExponentialServiceTime(int k,
int i,
int mp)
Determines if service times for contacts of type k arrived during period mp, and served by agents in group i are exponential, and returns the result of the test. |
boolean |
isHorizonSpanningDays()
Determines if the horizon of this model spans multiple days, i.e., if the period duration times the number of periods is larger than 24 hours. |
boolean |
isVirtualHoldSupported()
Determines if this model supports virtual holding. |
void |
reset(CallCenterParams ccParams1,
RandomStreams streams1)
Recreates the model with new parameters. |
void |
resetAgentsMult()
Sets the multiplier returned by getAgentsMult() to 1, and adjusts
the multipliers for each agent group. |
void |
resetNextSubstream()
Calls RandomStream.resetNextSubstream() on every random stream of
this model. |
void |
resetStartStream()
Calls RandomStream.resetStartStream() on every random stream of
this model. |
void |
resetStartSubstream()
Calls RandomStream.resetStartSubstream() on each random stream of
this model. |
void |
setAgentsMult(double agentsMult)
Sets the global multiplier for the number of agents to agentsMult. |
void |
setArrivalsMult(double arrivalsMult)
Sets the global multiplier for arrivals to arrivalsMult. |
void |
setAwtPeriod(AWTPeriod awtPeriod)
Sets the object for computing AWT periods to awtPeriod. |
void |
setBusynessGen(RandomVariateGen bgen)
Sets the random variate generator for the global busyness factor to bgen. |
void |
setConferenceTimesMult(double conferenceTimesMult)
Sets the global multiplier for conference times to conferenceTimesMult. |
void |
setPatienceTimesMult(double patienceTimesMult)
Sets the global multiplier for patience times to patienceTimesMult. |
void |
setPreServiceTimesNoConfMult(double preServiceTimesNoConfMult)
Sets the global multiplier for pre-service times to preServiceTimesNoConfMult. |
void |
setPreviewTimesMult(double previewTimesMult)
Sets the global multiplier for preview times to previewTimesMult. |
void |
setQueueCapacity(int q)
Sets the total queue capacity to q. |
void |
setRandomStreams(RandomStreams streams)
Sets the random streams used by this model to streams. |
void |
setRouter(Router router)
Deprecated. Use RouterManager.setRouter(Router) instead. |
void |
setServiceTimesMult(double serviceTimesMult)
Sets the global multiplier for service times to serviceTimesMult. |
void |
setSimulator(Simulator sim)
Sets the simulator of this model to sim. |
void |
setTransferTimesMult(double transferTimesMult)
Sets the global multiplier for transfer times to transferTimesMult. |
Simulator |
simulator()
Returns the simulator associated with this call center model. |
Methods inherited from class umontreal.iro.lecuyer.contactcenters.app.AbstractContactCenterInfo |
---|
getNumAgentGroupsWithSegments, getNumContactTypesWithSegments, getNumInContactTypesWithSegments, getNumMainPeriodsWithSegments, getNumOutContactTypesWithSegments, getNumWaitingQueuesWithSegments |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public CallCenter(CallCenterParams ccParams, RandomStreams streams)
CallCenterParamsConverter
can be used to create valid objects from
XML files.
Note that the create()
method must be called after the model is
constructed in order to create the model.
ccParams
- streams
-
NullPointerException
- if ccParams or streams are null.public CallCenter(Simulator sim, CallCenterParams ccParams, RandomStreams streams)
CallCenter(CallCenterParams,RandomStreams)
, with the
given simulator sim.
public CallCenter(CallCenterParams ccParams)
MRG32k3a
.
Note that the create()
method must be called after the model is
constructed in order to create the model.
ccParams
- the parameters of the call center.
NullPointerException
- if ccParams is null.public CallCenter(Simulator sim, CallCenterParams ccParams)
CallCenter(CallCenterParams)
, with the given simulator
sim.
Method Detail |
---|
public final Simulator simulator()
public final void setSimulator(Simulator sim)
create()
method.
sim
- the new simulator.
NullPointerException
- if sim is null.public double getTime(Duration d)
Duration.getTimeInMillis(Date)
using the date
returned by getStartingDate()
. It then uses
TimeUnit.convert(double,TimeUnit,TimeUnit)
to convert the obtained
time in milliseconds to the default unit given by
getDefaultUnit()
.
d
- the duration to be converted.
public double[] getTime(Duration... d)
getTime(Duration)
called with d[i].
d
- the array of durations to convert.
public double[][] getTime(Duration[][] d)
getTime(Duration...)
, for a 2D array.
d
- the 2D array of durations to convert.
public double getTime(XMLGregorianCalendar xgcal)
CallCenterUtil.getTimeInMillis(XMLGregorianCalendar)
to the
default time unit returned by getDefaultUnit()
.
xgcal
- the XML gregorian calendar representing a time.
public double[] getTime(XMLGregorianCalendar... d)
getTime(Duration...)
, for an array of XML gregorian
calendars.
d
- the array of times to convert.
public double[][] getTime(XMLGregorianCalendar[][] d)
getTime(XMLGregorianCalendar...)
, for a 2D array.
d
- the 2D array of times to convert.
public TimeUnit getDefaultUnit()
public double getPeriodDuration()
getDefaultUnit()
.
public Date getStartingDate()
public double getStartingTime()
public Date getMainPeriodStartingDate(int mp)
getStartingDate()
, and
returns the resulting date.
mp
- the index of the main period.
public boolean isHorizonSpanningDays()
getMainPeriodStartingDate(int)
, and returns true
if and only if the two dates have different days according to the
Gregorian calendar.
public int getNumMatricesOfAWT()
public String getMatrixOfAWTName(int m)
getMatrixOfAWTName
in interface ContactCenterInfo
getMatrixOfAWTName
in class AbstractContactCenterInfo
m
- the index of the matrix.
ArrayIndexOutOfBoundsException
- if m is negative or greater than or equal to the
value returned by getNumMatricesOfAWT()
.public ServiceLevelParamReadHelper getServiceLevelParams(int m)
m
- the index of the set.
public CallCenterParams getCallCenterParams()
public RandomStreams getRandomStreams()
@Deprecated public RandomStreams getStreams()
getRandomStreams()
instead.
public void setRandomStreams(RandomStreams streams)
RandomStreams.createStreams(CallCenterParams)
on the
call center parameters to create necessary streams.
Note that the new random streams are used only after create()
is
called.
streams
- the new random streams.
NullPointerException
- if streams id null.public void resetNextSubstream()
RandomStream.resetNextSubstream()
on every random stream of
this model.
public void resetStartStream()
RandomStream.resetStartStream()
on every random stream of
this model.
public void resetStartSubstream()
RandomStream.resetStartSubstream()
on each random stream of
this model.
public void reset(CallCenterParams ccParams1, RandomStreams streams1) throws CallCenterCreationException
create()
to recreate the model.
ccParams1
- the new call center parameters.streams1
- the new random streams.
NullPointerException
- if ccParams or streams are null.
CallCenterCreationException
public void create() throws CallCenterCreationException
create
(false).
CallCenterCreationException
- if an error occurs during the creation of the model.public void create(boolean recreateStreams) throws CallCenterCreationException
reset(CallCenterParams,RandomStreams)
. If
recreateStreams is true, a new RandomStreams
object is created and associated with this model; this results in a change
of seeds for every random stream used. If recreateStreams is
false, the same random streams are kept, and new ones are created
just if needed.
Since this method recreates the complete structure of the call center, any listener observing the evolution of the model must be re-registered after this method returns.
recreateStreams
- determines if random streams are recreated.
CallCenterCreationException
- if an error occurs during the creation of the model.public DialerObjects getDialerObjects()
DialerObjects
associated with this model.
If no such instance exists, it is constructed, stored for future use, and
returned.
protected WaitingQueue createWaitingQueue(int q)
StandardWaitingQueue
which is a FIFO queue without priority.
q
- the index of the created waiting queue.
public void initSim()
getBusynessGen()
, or sets B = 1 if no generator was
given in parameter file for the busyness factor. It then calls
initSim(double)
with the generated B to complete
initialization.
public double getBusynessFactor()
public void initSim(double b1)
PeriodChangeEvent.start()
, ContactArrivalProcess.start()
,
etc. must be used to schedule events before starting the simulation.
b1
- the busyness factor used.public boolean isCallTransferSupported()
CallFactory.isCallTransferSupported()
returns
true for at least one call factory returned by
getCallFactories()
.
public boolean isVirtualHoldSupported()
CallFactory.isVirtualHoldSupported()
returns
true for at least one call factory returned by
getCallFactories()
.
public int getNumMainPeriods()
ContactCenterInfo
PeriodChangeEvent
.
For a steady-state evaluation on
a single period, this
always returns 1, even if
the model defines several period.
public int getNumContactTypes()
ContactCenterInfo
ContactCenterInfo.getNumInContactTypes()
+ ContactCenterInfo.getNumOutContactTypes()
.
public int getNumInContactTypes()
ContactCenterInfo
public int getNumOutContactTypes()
ContactCenterInfo
public int getNumAgentGroups()
ContactCenterInfo
public int getNumWaitingQueues()
ContactCenterInfo
public String getContactTypeName(int k)
ContactCenterInfo
ContactCenterInfo.getNumContactTypes()
. The first ContactCenterInfo.getNumInContactTypes()
indices are inbound contact types whereas the
remaining indices are outbound contact types.
If no contact type name is available, this
returns null.
getContactTypeName
in interface ContactCenterInfo
getContactTypeName
in class AbstractContactCenterInfo
k
- the contact type identifier.
public Map<String,String> getContactTypeProperties(int k)
ContactCenterInfo
getContactTypeProperties
in interface ContactCenterInfo
getContactTypeProperties
in class AbstractContactCenterInfo
k
- the contact type identifier.
public String getContactTypeSegmentName(int k)
ContactCenterInfo
ContactCenterInfo.getNumContactTypeSegments()
.
If no segment name is available, this
returns null.
getContactTypeSegmentName
in interface ContactCenterInfo
getContactTypeSegmentName
in class AbstractContactCenterInfo
k
- the contact type segment identifier.
public Map<String,String> getContactTypeSegmentProperties(int k)
ContactCenterInfo
ContactCenterInfo.getContactTypeProperties(int)
,
for contact type segments instead of contact types.
getContactTypeSegmentProperties
in interface ContactCenterInfo
getContactTypeSegmentProperties
in class AbstractContactCenterInfo
k
- the segment identifier.
public String getInContactTypeSegmentName(int k)
ContactCenterInfo
ContactCenterInfo.getNumInContactTypeSegments()
.
If no segment name is available, this
returns null.
getInContactTypeSegmentName
in interface ContactCenterInfo
getInContactTypeSegmentName
in class AbstractContactCenterInfo
k
- the inbound contact type segment identifier.
public Map<String,String> getInContactTypeSegmentProperties(int k)
ContactCenterInfo
ContactCenterInfo.getContactTypeProperties(int)
,
for inbound contact type segments instead of contact types.
getInContactTypeSegmentProperties
in interface ContactCenterInfo
getInContactTypeSegmentProperties
in class AbstractContactCenterInfo
k
- the segment identifier.
public String getOutContactTypeSegmentName(int k)
ContactCenterInfo
ContactCenterInfo.getNumOutContactTypeSegments()
.
If no segment name is available, this
returns null.
getOutContactTypeSegmentName
in interface ContactCenterInfo
getOutContactTypeSegmentName
in class AbstractContactCenterInfo
k
- the outbound contact type segment identifier.
public Map<String,String> getOutContactTypeSegmentProperties(int k)
ContactCenterInfo
ContactCenterInfo.getContactTypeProperties(int)
,
for outbound contact type segments instead of contact types.
getOutContactTypeSegmentProperties
in interface ContactCenterInfo
getOutContactTypeSegmentProperties
in class AbstractContactCenterInfo
k
- the segment identifier.
public String getAgentGroupName(int i)
ContactCenterInfo
getAgentGroupName
in interface ContactCenterInfo
getAgentGroupName
in class AbstractContactCenterInfo
i
- the identifier of the agent group.
public Map<String,String> getAgentGroupProperties(int i)
ContactCenterInfo
ContactCenterInfo.getContactTypeProperties(int)
,
for agent groups instead of contact types.
getAgentGroupProperties
in interface ContactCenterInfo
getAgentGroupProperties
in class AbstractContactCenterInfo
i
- the agent group identifier.
public String getAgentGroupSegmentName(int i)
ContactCenterInfo
ContactCenterInfo.getNumAgentGroupSegments()
.
If no segment name is available, this
returns null.
getAgentGroupSegmentName
in interface ContactCenterInfo
getAgentGroupSegmentName
in class AbstractContactCenterInfo
i
- the agent group segment identifier.
public Map<String,String> getAgentGroupSegmentProperties(int i)
ContactCenterInfo
ContactCenterInfo.getContactTypeProperties(int)
,
for agent group segments instead of contact types.
getAgentGroupSegmentProperties
in interface ContactCenterInfo
getAgentGroupSegmentProperties
in class AbstractContactCenterInfo
i
- the segment identifier.
public String getMainPeriodName(int mp)
ContactCenterInfo
getMainPeriodName
in interface ContactCenterInfo
getMainPeriodName
in class AbstractContactCenterInfo
mp
- the index of the main period.
public String getMainPeriodSegmentName(int mp)
ContactCenterInfo
ContactCenterInfo.getNumMainPeriodSegments()
.
If no segment name is available, this
returns null.
getMainPeriodSegmentName
in interface ContactCenterInfo
getMainPeriodSegmentName
in class AbstractContactCenterInfo
mp
- the main period segment identifier.
public String getWaitingQueueName(int q)
ContactCenterInfo
getWaitingQueueName
in interface ContactCenterInfo
getWaitingQueueName
in class AbstractContactCenterInfo
q
- the index of the waiting queue.
public int getNumWaitingQueueSegments()
ContactCenterInfo
The result of this method depends on the role
of the waiting queues, which depends on the
router's policy.
For example, if waiting queues correspond
to contact types, this returns
the result of
ContactCenterInfo.getNumContactTypeSegments()
.
getNumWaitingQueueSegments
in interface ContactCenterInfo
getNumWaitingQueueSegments
in class AbstractContactCenterInfo
public Map<String,String> getWaitingQueueProperties(int q)
ContactCenterInfo
ContactCenterInfo.getContactTypeProperties(int)
,
for waiting queues instead of contact types.
getWaitingQueueProperties
in interface ContactCenterInfo
getWaitingQueueProperties
in class AbstractContactCenterInfo
q
- the waiting queue identifier.
public String getWaitingQueueSegmentName(int q)
ContactCenterInfo
ContactCenterInfo.getNumMainPeriodSegments()
.
If no segment name is available, this
returns null.
getWaitingQueueSegmentName
in interface ContactCenterInfo
getWaitingQueueSegmentName
in class AbstractContactCenterInfo
q
- the waiting queue segment identifier.
public Map<String,String> getWaitingQueueSegmentProperties(int q)
ContactCenterInfo
ContactCenterInfo.getContactTypeProperties(int)
,
for waiting queue segments instead of contact types.
getWaitingQueueSegmentProperties
in interface ContactCenterInfo
getWaitingQueueSegmentProperties
in class AbstractContactCenterInfo
q
- the segment identifier.
public AWTPeriod getAwtPeriod()
setAwtPeriod(AWTPeriod)
was called
with a non-null value.
public void setAwtPeriod(AWTPeriod awtPeriod)
awtPeriod
- the object for computing AWT periods.public int getAwtPeriod(Contact contact)
getAwtPeriod()
returns null, this method returns the main period index of the
contact's arrival. Otherwise, it returns the result of
getAwtPeriod().getAwtPeriod (contact).
contact
- the contact to be tested.
public PeriodChangeEvent getPeriodChangeEvent()
PeriodChangeEvent.start()
to
simulate the horizon, or use
PeriodChangeEvent.setCurrentPeriod(int)
to simulate a single
period as if it was infinite in the model.
@Deprecated public void setRouter(Router router)
RouterManager.setRouter(Router)
instead.
public Router getRouter()
public RouterManager getRouterManager()
public RandomVariateGen getBusynessGen()
public void setBusynessGen(RandomVariateGen bgen)
bgen
- the new random variate generator.public int getNumDialers()
public DialerManager getDialerManager(int k)
k
- the index of the dialer manager.
ArrayIndexOutOfBoundsException
- if k is negative, or greater than or equal to the
value returned by getNumDialers()
.public Dialer getDialer(int k)
getDialerManager(int)
with the
given value of k, and returns the dialer associated with the
returned dialer manager.
k
- the index of the dialer.
public DialerManager[] getDialerManagers()
public Dialer[] getDialers()
getDialerManagers()
, and creates an array with each element k
being the dialer associated with the dialer manager k. As with
getDialerManagers()
, some elements in the returned array might be
null.
public int getNumArrivalProcesses()
public ArrivalProcessManager getArrivalProcessManager(int k)
k
- the index of the arrival process manager.
ArrayIndexOutOfBoundsException
- if k is negative, or greater than or equal to the
value returned by getNumArrivalProcesses()
.public ContactArrivalProcess getArrivalProcess(int k)
getArrivalProcessManager(int)
with the given value of k,
and returns the arrival process associated with the returned manager.
k
- the index of the arrival process.
public ArrivalProcessManager[] getArrivalProcesManagers()
public ContactArrivalProcess[] getArrivalProcesses()
getArrivalProcesManagers()
, and creates an array
with each element k being the arrival process associated with the
manager k. As with getArrivalProcesManagers()
, some elements in
the returned array might be null.
public AgentGroupManager getAgentGroupManager(int i)
i
- the index of the agent group.
ArrayIndexOutOfBoundsException
- if i is negative, or greater than or equal to the
value returned by getNumAgentGroups()
.public AgentGroup getAgentGroup(int i)
getAgentGroupManager(int)
and using
AgentGroupManager.getAgentGroup()
.
i
- the index of the agent group.
ArrayIndexOutOfBoundsException
- if i is negative, or greater than or equal to the
value returned by getNumAgentGroups()
.public AgentGroupManager[] getAgentGroupManagers()
public AgentGroup[] getAgentGroups()
public WaitingQueue[] getWaitingQueues()
public WaitingQueue getWaitingQueue(int q)
q
- the index of the waiting queue.
ArrayIndexOutOfBoundsException
- if q is negative, or greater than or equal to the
value returned by getNumWaitingQueues()
.public CallFactory[] getCallFactories()
public CallFactory getCallFactory(int k)
k
- the index of the call type.
ArrayIndexOutOfBoundsException
- if k is negative, or greater than or equal to the
value returned by getNumContactTypes()
.public SegmentInfo[] getInContactTypeSegments()
public SegmentInfo getInContactTypeSegment(int k)
k
- the index of the user-defined segment.
ArrayIndexOutOfBoundsException
- if k is negative, or greater than or equal to
getNumInContactTypeSegments()
.public int getNumInContactTypeSegments()
ContactCenterInfo
getNumInContactTypeSegments
in interface ContactCenterInfo
getNumInContactTypeSegments
in class AbstractContactCenterInfo
public SegmentInfo[] getOutContactTypeSegments()
public int getNumOutContactTypeSegments()
ContactCenterInfo
getNumOutContactTypeSegments
in interface ContactCenterInfo
getNumOutContactTypeSegments
in class AbstractContactCenterInfo
public SegmentInfo getOutContactTypeSegment(int k)
k
- the index of the user-defined segment.
ArrayIndexOutOfBoundsException
- if k is negative, or greater than or equal to
getNumOutContactTypeSegments()
.public SegmentInfo[] getContactTypeSegments()
public int getNumContactTypeSegments()
ContactCenterInfo
getNumContactTypeSegments
in interface ContactCenterInfo
getNumContactTypeSegments
in class AbstractContactCenterInfo
public SegmentInfo getContactTypeSegment(int k)
k
- the index of the user-defined segment.
ArrayIndexOutOfBoundsException
- if k is negative, or greater than or equal to
getNumContactTypeSegments()
.public SegmentInfo[] getAgentGroupSegments()
public int getNumAgentGroupSegments()
ContactCenterInfo
getNumAgentGroupSegments
in interface ContactCenterInfo
getNumAgentGroupSegments
in class AbstractContactCenterInfo
public SegmentInfo getAgentGroupSegment(int i)
i
- the index of the user-defined segment.
ArrayIndexOutOfBoundsException
- if i is negative, or greater than or equal to
getNumAgentGroups()
.public SegmentInfo[] getMainPeriodSegments()
public int getNumMainPeriodSegments()
ContactCenterInfo
getNumMainPeriodSegments
in interface ContactCenterInfo
getNumMainPeriodSegments
in class AbstractContactCenterInfo
public SegmentInfo getMainPeriodSegment(int p)
p
- the index of the user-defined segment.
ArrayIndexOutOfBoundsException
- if p is negative, or greater than or equal to
getNumMainPeriods()
.public double getArrivalsMult()
public double getPatienceTimesMult()
public double getServiceTimesMult()
public double getConferenceTimesMult()
public double getPreServiceTimesNoConfMult()
public double getTransferTimesMult()
public double getPreviewTimesMult()
public double getAgentsMult()
public void setArrivalsMult(double arrivalsMult)
initSim()
.
arrivalsMult
- the new multiplier.
IllegalArgumentException
- if the given multiplier is negative.public void setPatienceTimesMult(double patienceTimesMult)
initSim()
.
patienceTimesMult
- the new multiplier.
IllegalArgumentException
- if the given multiplier is negative.public void setServiceTimesMult(double serviceTimesMult)
initSim()
.
serviceTimesMult
- the new multiplier.
IllegalArgumentException
- if the given multiplier is negative.public void setConferenceTimesMult(double conferenceTimesMult)
initSim()
.
conferenceTimesMult
- the new multiplier.
IllegalArgumentException
- if the given multiplier is negative.public void setPreServiceTimesNoConfMult(double preServiceTimesNoConfMult)
initSim()
.
preServiceTimesNoConfMult
- the new multiplier.
IllegalArgumentException
- if the given multiplier is negative.public void setTransferTimesMult(double transferTimesMult)
initSim()
.
transferTimesMult
- the new multiplier.
IllegalArgumentException
- if the given multiplier is negative.public void setPreviewTimesMult(double previewTimesMult)
initSim()
.
previewTimesMult
- the new multiplier.
IllegalArgumentException
- if the given multiplier is negative.public void setAgentsMult(double agentsMult)
initSim()
.
agentsMult
- the new multiplier.
IllegalArgumentException
- if the given multiplier is negative.public boolean[][] getDefaultShiftMatrix()
public void resetAgentsMult()
getAgentsMult()
to 1, and adjusts
the multipliers for each agent group. Let m be the multiplier returned
by getAgentsMult()
before this method is called. This method
changes the multiplier for each agent group i from mi to m*mi, and
resets the global multiplier m to 1.
public Class<? extends WaitingTimePredictor> getWaitingTimePredictorClass()
public int getQueueCapacity()
Integer.MAX_VALUE
.
public void setQueueCapacity(int q)
q
- the new queue capacity.
IllegalArgumentException
- if the given queue capacity is smaller than the current
total number of calls in queue.public boolean isExponentialPatienceTime(int k, int mp)
k
- the tested contact type.mp
- the tester arrival period.
public boolean[][] isExponentialPatienceTime()
public boolean isExponentialServiceTime(int k, int i, int mp)
k
- the tested contact type.i
- the tested agent group.mp
- the tested arrival period.
public boolean[][][] isExponentialServiceTime()
public Map<String,Object> getProperties()
|
ContactCenters V. 0.9.9. |
||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |