本文整理汇总了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;未经允许,请勿转载。 |
请发表评论