当前位置: 首页>>代码示例>>Golang>>正文


Golang Process.SetTTY方法代码示例

本文整理汇总了Golang中github.com/cloudfoundry-incubator/garden.Process.SetTTY方法的典型用法代码示例。如果您正苦于以下问题:Golang Process.SetTTY方法的具体用法?Golang Process.SetTTY怎么用?Golang Process.SetTTY使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在github.com/cloudfoundry-incubator/garden.Process的用法示例。


在下文中一共展示了Process.SetTTY方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: streamInput

func (s *GardenServer) streamInput(decoder *json.Decoder, in *io.PipeWriter, process garden.Process, connCloseCh chan struct{}) {
	for {
		var payload transport.ProcessPayload
		err := decoder.Decode(&payload)
		if err != nil {
			close(connCloseCh)
			in.CloseWithError(errors.New("Connection closed"))
			return
		}

		switch {
		case payload.TTY != nil:
			process.SetTTY(*payload.TTY)

		case payload.Source != nil:
			if payload.Data == nil {
				in.Close()
				return
			} else {
				_, err := in.Write([]byte(*payload.Data))
				if err != nil {
					return
				}
			}

		case payload.Signal != nil:
			s.logger.Info("stream-input-process-signal", lager.Data{"payload": payload})

			switch *payload.Signal {
			case garden.SignalKill:
				err = process.Signal(garden.SignalKill)
				if err != nil {
					s.logger.Error("stream-input-process-signal-kill-failed", err, lager.Data{"payload": payload})
				}
			case garden.SignalTerminate:
				err = process.Signal(garden.SignalTerminate)
				if err != nil {
					s.logger.Error("stream-input-process-signal-terminate-failed", err, lager.Data{"payload": payload})
				}
			default:
				s.logger.Error("stream-input-unknown-process-payload-signal", nil, lager.Data{"payload": payload})
				in.Close()
				return
			}

		default:
			s.logger.Error("stream-input-unknown-process-payload", nil, lager.Data{"payload": payload})
			in.Close()
			return
		}
	}
}
开发者ID:nagyistoce,项目名称:garden,代码行数:52,代码来源:request_handling.go

示例2:

					BeforeEach(func() {
						errs := make(chan error, 1)
						errs <- io.EOF
						close(errs)

						fakeProcess.SetTTYStub = func(garden.TTYSpec) error {
							return <-errs
						}
					})

					It("reattaches on use of closed connection", func() {
						ttySpec := garden.TTYSpec{
							WindowSize: &garden.WindowSize{Columns: 345678, Rows: 45689},
						}

						Ω(process.SetTTY(ttySpec)).Should(Succeed())
						Ω(fakeProcess.SetTTYArgsForCall(0)).Should(Equal(ttySpec))

						Ω(innerConnection.AttachCallCount()).Should(Equal(2))
						handle, processID, calledProcessIO := innerConnection.AttachArgsForCall(1)
						Ω(handle).Should(Equal("la-contineur"))
						Ω(processID).Should(Equal(uint32(6)))
						Ω(calledProcessIO).Should(Equal(processIO))
					})
				})
			})
		})
	})

	Describe("Run", func() {
		var (
开发者ID:utako,项目名称:atc,代码行数:31,代码来源:retryable_garden_connection_test.go

示例3:

					BeforeEach(func() {
						errs := make(chan error, 1)
						errs <- io.EOF
						close(errs)

						fakeProcess.SetTTYStub = func(garden.TTYSpec) error {
							return <-errs
						}
					})

					It("reattaches on use of closed connection", func() {
						ttySpec := garden.TTYSpec{
							WindowSize: &garden.WindowSize{Columns: 345678, Rows: 45689},
						}

						Expect(process.SetTTY(ttySpec)).To(Succeed())
						Expect(fakeProcess.SetTTYArgsForCall(0)).To(Equal(ttySpec))

						Expect(innerConnection.AttachCallCount()).To(Equal(2))
						handle, processID, calledProcessIO := innerConnection.AttachArgsForCall(1)
						Expect(handle).To(Equal("la-contineur"))
						Expect(processID).To(Equal("process-id"))
						Expect(calledProcessIO).To(Equal(processIO))
					})
				})
			})
		})
	})

	Describe("Run", func() {
		var (
开发者ID:pcfdev-forks,项目名称:atc,代码行数:31,代码来源:retryable_garden_connection_test.go


注:本文中的github.com/cloudfoundry-incubator/garden.Process.SetTTY方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。