# IntervalManager

from direct.interval.IntervalManager import IntervalManager

## Inheritance:

IntervalManager: CIntervalManager
CIntervalManager:

## Methods of IntervalManager:

__doPythonCallbacks
__init__
__storeInterval
addInterval
finishIntervalsMatching
getInterval
getIntervalsMatching
interrupt
pauseIntervalsMatching
removeInterval
step

## Methods of CIntervalManager:

addCInterval
findCInterval
getCInterval
getEventQueue
getGlobalPtr
getMaxIndex
getNextEvent
getNextRemoval
getNumIntervals
interrupt
output
removeCInterval
setEventQueue
step
write

__doPythonCallbacks def __doPythonCallbacks(self) Undocumented function.

__init__ def __init__(self, globalPtr=0) Undocumented function.

__storeInterval def __storeInterval(self, interval, index) Undocumented function.

addInterval def addInterval(self, interval) Undocumented function.

finishIntervalsMatching def finishIntervalsMatching(self, pattern) Undocumented function.

getInterval def getInterval(self, name) Undocumented function.

getIntervalsMatching def getIntervalsMatching(self, pattern) Undocumented function.

interrupt def interrupt(self) Undocumented function.

pauseIntervalsMatching def pauseIntervalsMatching(self, pattern) Undocumented function.

removeInterval def removeInterval(self, interval) Undocumented function.

step def step(self) Undocumented function.

addCInterval int CIntervalManager::add_c_interval(CInterval *interval, bool external); Description: Adds the interval to the manager, and returns a unique index for the interval. This index will be unique among all the currently added intervals, but not unique across all intervals ever added to the manager. The maximum index value will never exceed the maximum number of intervals added at any given time. If the external flag is true, the interval is understood to also be stored in the scripting language data structures. In this case, it will be available for information returned by get_next_event() and get_next_removal(). If external is false, the interval's index will never be returned by these two functions.

findCInterval int CIntervalManager::find_c_interval(string const &name) const; Description: Returns the index associated with the named interval, if there is such an interval, or -1 if there is not.

getCInterval CInterval *CIntervalManager::get_c_interval(int index) const; Description: Returns the interval associated with the given index.

getEventQueue EventQueue *CIntervalManager::get_event_queue(void) const; Description: Returns the custom event queue to be used for throwing done events from intervals as they finish.

getGlobalPtr static CIntervalManager *CIntervalManager::get_global_ptr(void); Description: Returns the pointer to the one global CIntervalManager object.

getMaxIndex int CIntervalManager::get_max_index(void) const; Description: Returns one more than the largest interval index number in the manager. If you walk through all the values between (0, get_max_index()] and call get_c_interval() on each number, you will retrieve all of the managed intervals (and possibly a number of NULL pointers as well).

getNextEvent int CIntervalManager::get_next_event(void); Description: This should be called by the scripting language after each call to step(). It returns the index number of the next interval that has events requiring servicing by the scripting language, or -1 if no more intervals have any events pending. If this function returns something other than -1, it is the scripting language's responsibility to query the indicated interval for its next event via get_event_index(), and eventually pop_event(). Then get_next_event() should be called again until it returns -1.

getNextRemoval int CIntervalManager::get_next_removal(void); Description: This should be called by the scripting language after each call to step(). It returns the index number of an interval that was recently removed, or -1 if no intervals were removed. If this returns something other than -1, the scripting language should clean up its own data structures accordingly, and then call get_next_removal() again.

getNumIntervals int CIntervalManager::get_num_intervals(void) const; Description: Returns the number of currently active intervals.

interrupt int CIntervalManager::interrupt(void); Description: Pauses or finishes (removes from the active queue) all intervals tagged with auto_pause or auto_finish set to true. These are intervals that someone fired up but won't necessarily expect to clean up; they can be interrupted at will when necessary. Returns the number of intervals affected.

output void CIntervalManager::output(ostream &out) const; Description:

removeCInterval void CIntervalManager::remove_c_interval(int index); Description: Removes the indicated interval from the queue immediately. It will not be returned from get_next_removal(), and none of its pending events, if any, will be returned by get_next_event().

setEventQueue void CIntervalManager::set_event_queue(EventQueue *event_queue); Filename: cIntervalManager.I Created by: drose (10Sep02) PANDA 3D SOFTWARE Copyright (c) 2001 - 2004, Disney Enterprises, Inc. All rights reserved All use of this software is subject to the terms of the Panda 3d Software license. You should have received a copy of this license along with this source code; you will also find a current copy of the license at http://etc.cmu.edu/panda3d/docs/license/ . To contact the maintainers of this program write to panda3d-general@lists.sourceforge.net . Description: Specifies a custom event queue to be used for throwing done events from intervals as they finish. If this is not specified, the global event queue is used. The caller maintains ownership of the EventQueue object; it is the caller's responsibility to ensure that the supplied EventQueue does not destruct during the lifetime of the CIntervalManager.

step void CIntervalManager::step(void); Description: This should be called every frame to do the processing for all the active intervals. It will call step_play() for each interval that has been added and that has not yet been removed. After each call to step(), the scripting language should call get_next_event() and get_next_removal() repeatedly to process all the high-level (e.g. Python-interval-based) events and to manage the high-level list of intervals.

write void CIntervalManager::write(ostream &out) const; Description: