def generate(self, workingDir, oFile, strBuffer):              
        init, end = SimTimeRange.getTimeRange(self.__timeRange, self.__finishTime, self.__discardTime)
        
        strBuffer.writeln('')
        strBuffer.writeln('************* %s ****************' % self.__behaviorName)
        strBuffer.writeln('* Frequency: %.2f searches/s' % self.__searchFreq)
        strBuffer.writeln('* Generated: %d sets of searches' % self.getSearches())
        strBuffer.writeln('* Time range: [%s, %s] s' % (init, end))
        strBuffer.writeln("* Simultaneous searches: %.2f" % (self.getSimultaneous()))
        strBuffer.writeln("* Total searches: %d" % int(self.getSimultaneous() * self.getSearches()))
        strBuffer.writeln("* Search duration: %d s" % self.__searchDuration)
        strBuffer.writeln("* Invalid searches ratio: %.2f" % self.__invalidSearches)
        strBuffer.writeln("* Generating %d invalid searches" % int(self.getInvalidSearches()))
        self.printInfo(strBuffer)

        startTime = time()
        
        if self.__searchPeriod > 0.0:            
            #Create search events each specified period of time during specified time range        
            currentTime = init + DELTA_TIME
            while (currentTime < end + DELTA_TIME):
                self.perform(currentTime, oFile)
                
                #Increment time
                currentTime += self.__searchPeriod
                
        if self.__searchDuration > 0:
            self.finishSearches(self.__searchDuration, oFile)
                
        strBuffer.writeln('* Behavior generation time: %s ' % TimeFormatter.formatTime(time() - startTime)) 
        strBuffer.writeln('**********************************************************')
 def getSearches(self):
     init, end = SimTimeRange.getTimeRange(self.__timeRange, self.__finishTime, self.__discardTime)
     return int(math.ceil(self.__searchFreq * (end - init)))