예제 #1
0
파일: scheme.go 프로젝트: myshkin5/netspel
func (s *Scheme) Init(config jsonstruct.JSONStruct) error {
	s.messagesPerSecond = config.IntWithDefault(MessagesPerSecond, DefaultMessagesPerSecond)
	expectedMessagesPerSecond := config.IntWithDefault(ExpectedMessagesPerSecond, DefaultExpectedMessagesPerSecond)
	s.bytesPerMessage = config.IntWithDefault(BytesPerMessage, DefaultBytesPerMessage)

	var err error
	s.reportCycle, err = config.DurationWithDefault(ReportCycle, DefaultReportCycle)
	if err != nil {
		return err
	}

	if expectedMessagesPerSecond == 0 {
		expectedMessagesPerSecond = s.messagesPerSecond
	}

	s.buffer = make([]byte, s.bytesPerMessage)
	if s.messagesPerSecond > 0 {
		s.tickerTime = time.Second / time.Duration(s.messagesPerSecond)
	}

	s.done.Add(1)

	if s.reporter == nil {
		s.reporter = &ReporterImpl{}
	}
	s.reporter.Init(expectedMessagesPerSecond, s.reportCycle)

	return nil
}
예제 #2
0
파일: scheme.go 프로젝트: myshkin5/netspel
func (s *Scheme) Init(config jsonstruct.JSONStruct) error {
	s.messagesPerRun = config.IntWithDefault(MessagesPerRun, DefaultMessagesPerRun)
	s.bytesPerMessage = config.IntWithDefault(BytesPerMessage, DefaultBytesPerMessage)
	s.buffer = make([]byte, s.bytesPerMessage)

	var err error
	s.waitForLastMessage, err = config.DurationWithDefault(WaitForLastMessage, DefaultWaitForLastMessage)
	if err != nil {
		return err
	}

	s.warmupMessagesPerRun = config.IntWithDefault(WarmupMessagesPerRun, DefaultWarmupMessagesPerRun)
	s.warmupWait, err = config.DurationWithDefault(WarmupWait, DefaultWarmupWait)
	if err != nil {
		return err
	}

	return nil
}