예제 #1
0
파일: agent.go 프로젝트: prydeep/tegu
/*
	Send the message to the designated 'long running' agent (lra); the
	agent that has been designated to handle all long running tasks
	that are not time sensitive (such as intermediate queue setup/checking).
*/
func (ad *agent_data) sendbytes2lra(smgr *connman.Cmgr, msg []byte) {
	l := len(ad.agents)
	if l <= 0 {
		return
	}

	smgr.Write(ad.agent_list[0].id, msg)
}
예제 #2
0
파일: agent.go 프로젝트: prydeep/tegu
/*
	Send the message to the designated 'long running' agent (lra); the
	agent that has been designated to handle all long running tasks
	that are not time sensitive (such as intermediate queue setup/checking).
*/
func (ad *agent_data) send2lra(smgr *connman.Cmgr, msg string) {
	l := len(ad.agents)
	if l <= 0 {
		return
	}

	smgr.Write(ad.agent_list[0].id, []byte(msg))
}
예제 #3
0
파일: agent.go 프로젝트: prydeep/tegu
/*
	Send the message to one agent. The agent is selected using the current
	index in the agent_data so that it effectively does a round robin.
*/
func (ad *agent_data) sendbytes2one(smgr *connman.Cmgr, msg []byte) {
	l := len(ad.agents)
	if l <= 0 {
		return
	}

	smgr.Write(ad.agent_list[ad.aidx].id, msg)
	ad.aidx++
	if ad.aidx >= l {
		if l > 1 {
			ad.aidx = 1 // skip the long running agent if more than one agent connected
		} else {
			ad.aidx = 0
		}
	}
}
예제 #4
0
파일: agent.go 프로젝트: prydeep/tegu
/*
	Send the message to all agents.
*/
func (ad *agent_data) send2all(smgr *connman.Cmgr, msg string) {
	am_sheep.Baa(2, "sending %d bytes", len(msg))
	for id := range ad.agents {
		smgr.Write(id, []byte(msg))
	}
}