當前位置: 首頁>>代碼示例>>Golang>>正文


Golang events.Envelope類代碼示例

本文整理匯總了Golang中github.com/cloudfoundry/dropsonde/events.Envelope的典型用法代碼示例。如果您正苦於以下問題:Golang Envelope類的具體用法?Golang Envelope怎麽用?Golang Envelope使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了Envelope類的5個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1:

			})
		})

		It("marshals events and delegates to the inner emitter", func() {
			innerEmitter := fake.NewFakeByteEmitter()
			origin := "fake-origin"
			eventEmitter := emitter.NewEventEmitter(innerEmitter, origin)

			testEvent := factories.NewHeartbeat(1, 2, 3)
			err := eventEmitter.Emit(testEvent)
			Expect(err).ToNot(HaveOccurred())

			Expect(innerEmitter.GetMessages()).To(HaveLen(1))
			msg := innerEmitter.GetMessages()[0]

			var envelope events.Envelope
			err = proto.Unmarshal(msg, &envelope)
			Expect(err).ToNot(HaveOccurred())
			Expect(envelope.GetEventType()).To(Equal(events.Envelope_Heartbeat))
		})
	})

	Describe("Close", func() {
		It("closes the inner emitter", func() {
			innerEmitter := fake.NewFakeByteEmitter()
			eventEmitter := emitter.NewEventEmitter(innerEmitter, "")

			eventEmitter.Close()
			Expect(innerEmitter.IsClosed()).To(BeTrue())
		})
	})
開發者ID:trainchou,項目名稱:gorouter,代碼行數:31,代碼來源:event_emitter_test.go

示例2:

			lock := sync.RWMutex{}
			origin := os.Getenv("DROPSONDE_ORIGIN")

			go func() {
				defer close(udpDataChan)
				for {
					buffer := make([]byte, 1024)
					n, _, err := udpListener.ReadFrom(buffer)
					if err != nil {
						return
					}

					if n == 0 {
						panic("Received empty packet")
					}
					envelope := new(events.Envelope)
					err = proto.Unmarshal(buffer[0:n], envelope)
					if err != nil {
						panic(err)
					}

					var eventId = envelope.GetEventType().String()

					switch envelope.GetEventType() {
					case events.Envelope_HttpStart:
						eventId += envelope.GetHttpStart().GetPeerType().String()
					case events.Envelope_HttpStop:
						eventId += envelope.GetHttpStop().GetPeerType().String()
					case events.Envelope_Heartbeat:
					case events.Envelope_ValueMetric:
						eventId += envelope.GetValueMetric().GetName()
開發者ID:ninglipeng,項目名稱:gorouter,代碼行數:31,代碼來源:autowire_end_to_end_test.go

示例3: GetAppId

func GetAppId(envelope *events.Envelope) string {
	if envelope.GetEventType() == events.Envelope_LogMessage {
		return envelope.GetLogMessage().GetAppId()
	}

	if envelope.GetEventType() == events.Envelope_ContainerMetric {
		return envelope.GetContainerMetric().GetApplicationId()
	}

	var event hasAppId
	switch envelope.GetEventType() {
	case events.Envelope_HttpStart:
		event = envelope.GetHttpStart()
	case events.Envelope_HttpStop:
		event = envelope.GetHttpStop()
	case events.Envelope_HttpStartStop:
		event = envelope.GetHttpStartStop()
	default:
		return SystemAppId
	}

	uuid := event.GetApplicationId()
	if uuid != nil {
		return formatUUID(uuid)
	}
	return SystemAppId
}
開發者ID:trainchou,項目名稱:gorouter,代碼行數:27,代碼來源:envelope_extensions.go

示例4:

					buffer := make([]byte, 1024)
					n, addr, err := udpListener.ReadFrom(buffer)
					if err != nil {
						return
					}

					if !requestedHeartbeat {

						udpListener.WriteTo(marshalledHeartbeatRequest, addr)
						requestedHeartbeat = true
					}

					if n == 0 {
						panic("Received empty packet")
					}
					envelope := new(events.Envelope)
					err = proto.Unmarshal(buffer[0:n], envelope)
					if err != nil {
						panic(err)
					}

					var eventId = envelope.GetEventType().String()

					switch envelope.GetEventType() {
					case events.Envelope_HttpStart:
						eventId += envelope.GetHttpStart().GetPeerType().String()
					case events.Envelope_HttpStop:
						eventId += envelope.GetHttpStop().GetPeerType().String()
					case events.Envelope_Heartbeat:
						heartbeatUuidsChan <- envelope.GetHeartbeat().GetControlMessageIdentifier().String()
					case events.Envelope_ValueMetric:
開發者ID:jungle0755,項目名稱:gorouter,代碼行數:31,代碼來源:dropsonde_end_to_end_test.go

示例5:

		It("creates a Heartbeat message", func() {
			id, _ := uuid.NewV4()

			heartbeatRequest := &control.ControlMessage{
				Origin:      proto.String("tst"),
				Identifier:  factories.NewControlUUID(id),
				Timestamp:   proto.Int64(time.Now().UnixNano()),
				ControlType: control.ControlMessage_HeartbeatRequest.Enum(),
			}

			heartbeatResponder.Respond(heartbeatRequest)
			Expect(wrappedEmitter.GetMessages()).To(HaveLen(1))
			hbBytes := wrappedEmitter.GetMessages()[0]

			var heartbeat events.Envelope
			err := proto.Unmarshal(hbBytes, &heartbeat)
			Expect(err).NotTo(HaveOccurred())

			heartbeatUuid := heartbeatRequest.GetIdentifier().String()
			Expect(heartbeat.GetHeartbeat().ControlMessageIdentifier.String()).To(Equal(heartbeatUuid))
		})

		It("logs an error when heartbeat emission fails", func() {
			wrappedEmitter.ReturnError = errors.New("fake error")

			logWriter := new(bytes.Buffer)
			log.SetOutput(logWriter)

			id, _ := uuid.NewV4()
開發者ID:trainchou,項目名稱:gorouter,代碼行數:29,代碼來源:heartbeat_responder_test.go


注:本文中的github.com/cloudfoundry/dropsonde/events.Envelope類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。