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


Golang Action.GetRequestCode方法代码示例

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


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

示例1: OneSub

func (state *ComputePeerState) OneSub(action *sproto.Action) *sproto.Response {
	//fmt.Println("Subtraction one from value")
	result := *action.Result
	share0 := *action.Share0
	share0val, hasShare0val := state.SharesGet(share0)
	if hasShare0val {
		val := core.Sub(1, share0val)
		state.SharesSet(result, val)
	}
	return state.failResponse(action.GetRequestCode())

}
开发者ID:apanda,项目名称:smpc,代码行数:12,代码来源:operations.go

示例2: Add

// Add two shares
func (state *ComputePeerState) Add(action *sproto.Action) *sproto.Response {
	//fmt.Println("Adding two values")
	result := *action.Result
	share0 := *action.Share0
	share1 := *action.Share1
	share0val, hasShare0val := state.SharesGet(share0)
	share1val, hasShare1val := state.SharesGet(share1)
	if hasShare0val && hasShare1val {
		state.SharesSet(result, core.Add(share0val, share1val))
		//fmt.Println("Done Adding")
		return state.okResponse(action.GetRequestCode())
	}
	//fmt.Printf("Failed additions, response would have been %s (%s, %v, %s, %v)\n", result, share0, hasShare0val, share1, hasShare1val)
	return state.failResponse(action.GetRequestCode())
}
开发者ID:apanda,项目名称:smpc,代码行数:16,代码来源:operations.go

示例3: Neqz

// Test inequality to zero
func (state *ComputePeerState) Neqz(action *sproto.Action) *sproto.Response {
	//fmt.Println("Comparing values")
	result := *action.Result
	share0 := *action.Share0
	share0val, hasShare0Val := state.SharesGet(share0)
	rcode := *action.RequestCode
	if !hasShare0Val {
		//fmt.Printf("Failing, variable %s not found\n", share0)
		return state.failResponse(action.GetRequestCode())
	}
	res := state.neqz(share0val, rcode)
	state.SharesSet(result, res)
	//fmt.Printf("Done testing value for not zero\n")
	return state.okResponse(action.GetRequestCode())
}
开发者ID:apanda,项目名称:smpc,代码行数:16,代码来源:operations.go

示例4: GetValue

// Retrieve the value of a share
func (state *ComputePeerState) GetValue(action *sproto.Action) *sproto.Response {
	result := *action.Result
	val, hasVal := state.SharesGet(result)
	if hasVal {
		resp := &sproto.Response{}
		rcode := action.GetRequestCode()
		resp.RequestCode = &rcode
		resp.Share = &val
		status := sproto.Response_Val
		resp.Status = &status
		client := int32(state.Client)
		resp.Client = &client
		return resp
	}
	return state.failResponse(action.GetRequestCode())
}
开发者ID:apanda,项目名称:smpc,代码行数:17,代码来源:operations.go

示例5: MulConst

// Multiply const
func (state *ComputePeerState) MulConst(action *sproto.Action) *sproto.Response {
	//fmt.Println("Multiplying with constants")
	result := *action.Result
	share0 := *action.Share0
	val := *action.Value
	share0val, hasShare0Val := state.SharesGet(share0)
	rcode := *action.RequestCode
	if !hasShare0Val {
		//fmt.Printf("Failing, variable %s not found\n", share0)
		return state.failResponse(action.GetRequestCode())
	}
	res := core.MultUnderMod(val, share0val)
	state.SharesSet(result, res)
	//fmt.Println("Done multiplying constants")
	return state.okResponse(rcode)
}
开发者ID:apanda,项目名称:smpc,代码行数:17,代码来源:operations.go

示例6: Eqz

// Test equality to zero
func (state *ComputePeerState) Eqz(action *sproto.Action) *sproto.Response {
	//fmt.Println("Comparing values")
	result := *action.Result
	share0 := *action.Share0
	share0val, hasShare0Val := state.SharesGet(share0)
	rcode := *action.RequestCode
	if !hasShare0Val {
		return state.failResponse(action.GetRequestCode())
	}
	res := state.neqz(share0val, rcode)
	one := int64(1)
	res = core.Sub(one, res)
	state.SharesSet(result, res)
	//fmt.Printf("Done testing value for zero\n")
	return state.okResponse(action.GetRequestCode())
}
开发者ID:apanda,项目名称:smpc,代码行数:17,代码来源:operations.go

示例7: Neq

// Inequality
func (state *ComputePeerState) Neq(action *sproto.Action) *sproto.Response {
	//fmt.Println("Comparing values")
	result := *action.Result
	share0 := *action.Share0
	share1 := *action.Share1
	share0val, hasShare0Val := state.SharesGet(share0)
	share1val, hasShare1Val := state.SharesGet(share1)
	rcode := *action.RequestCode
	if !hasShare0Val || !hasShare1Val {
		return state.failResponse(action.GetRequestCode())
	}
	res := state.ncmp(share0val, share1val, rcode)
	state.SharesSet(result, res)
	//fmt.Printf("Done comparing values\n")
	return state.okResponse(action.GetRequestCode())
}
开发者ID:apanda,项目名称:smpc,代码行数:17,代码来源:operations.go

示例8: SetValue

// Set the value of a share
func (state *ComputePeerState) SetValue(action *sproto.Action) *sproto.Response {
	//fmt.Println("Setting value ", *action.Result, *action.Value)
	result := *action.Result
	val := *action.Value
	state.SharesSet(result, int64(val))
	//fmt.Println("Returned from sharesset")
	resp := &sproto.Response{}
	rcode := action.GetRequestCode()
	resp.RequestCode = &rcode
	status := sproto.Response_OK
	resp.Status = &status
	client := int32(state.Client)
	resp.Client = &client
	//fmt.Println("Done setting value")
	return resp
}
开发者ID:apanda,项目名称:smpc,代码行数:17,代码来源:operations.go

示例9: NeqConst

// Compare to const
func (state *ComputePeerState) NeqConst(action *sproto.Action) *sproto.Response {
	//fmt.Println("Comparing to constant")
	result := *action.Result
	share0 := *action.Share0
	val := *action.Value
	share0val, hasShare0Val := state.SharesGet(share0)
	rcode := *action.RequestCode
	if !hasShare0Val {
		//fmt.Printf("Failing, variable %s not found\n", share0)
		return state.failResponse(action.GetRequestCode())
	}
	res := core.Sub(val, share0val)
	//fmt.Printf("Subtractiong const %d", val)
	res = state.neqz(res, rcode)
	state.SharesSet(result, res)
	//fmt.Printf("Done comparing to const\n")
	return state.okResponse(action.GetRequestCode())
}
开发者ID:apanda,项目名称:smpc,代码行数:19,代码来源:operations.go

示例10: RemoveValue

// Remove the value for a share
func (state *ComputePeerState) RemoveValue(action *sproto.Action) *sproto.Response {
	result := *action.Result
	_, hasVal := state.SharesGet(result)
	if hasVal {
		//fmt.Println("Deleting value ", *action.Result)
		result := *action.Result
		state.SharesDelete(result)
		//fmt.Println("Returned from sharesdelete")
		resp := &sproto.Response{}
		rcode := action.GetRequestCode()
		resp.RequestCode = &rcode
		status := sproto.Response_OK
		resp.Status = &status
		client := int32(state.Client)
		resp.Client = &client
		//fmt.Println("Done setting value")
		return resp
	}
	return state.failResponse(action.GetRequestCode())
}
开发者ID:apanda,项目名称:smpc,代码行数:21,代码来源:operations.go

示例11: Mul

// Multiply two shares
func (state *ComputePeerState) Mul(action *sproto.Action) *sproto.Response {
	//fmt.Println("Multiplying two values")
	result := *action.Result
	share0 := *action.Share0
	share1 := *action.Share1
	share0val, hasShare0val := state.SharesGet(share0)
	share1val, hasShare1val := state.SharesGet(share1)
	//fmt.Printf("Multiplying, will set %s\n", result)
	rcode := *action.RequestCode
	if hasShare0val && hasShare1val {
		share := state.mul(share0val, share1val, rcode, 1)
		//fmt.Printf("Done multiplying, setting %s\n", result)
		state.SharesSet(result, share)
		//fmt.Printf("Done multiplying, done setting %s\n", result)
		//fmt.Printf("Done multiplying\n")
		state.UnregisterChannelForRequest(*MakeRequestStep(rcode, 1))
		return state.okResponse(action.GetRequestCode())
	} else {
		//fmt.Printf("Not setting %s, could not find operands %s %v %s %v\n", result, share0, hasShare0val, share1, hasShare1val)
	}
	return state.failResponse(action.GetRequestCode())
}
开发者ID:apanda,项目名称:smpc,代码行数:23,代码来源:operations.go

示例12: CmpConst

// Compare to const
func (state *ComputePeerState) CmpConst(action *sproto.Action) *sproto.Response {
	//fmt.Println("Comparing to constant")
	result := *action.Result
	share0 := *action.Share0
	val := *action.Value
	share0val, hasShare0Val := state.SharesGet(share0)
	rcode := *action.RequestCode
	if !hasShare0Val {
		return state.failResponse(action.GetRequestCode())
	}
	//fmt.Printf("For rcode %d (CMPCONST) subtracting\n", rcode)
	res := core.Sub(val, share0val)
	//fmt.Printf("For rcode %d (CMPCONST) neqz\n", rcode)
	res = state.neqz(res, rcode)
	//fmt.Printf("For rcode %d (CMPCONST) done with neqz\n", rcode)
	one := int64(1)
	//fmt.Printf("For rcode %d (CMPCONST) subtracting\n", rcode)
	res = core.Sub(one, res)
	//fmt.Printf("For rcode %d (CMPCONST) setting share\n", rcode)
	state.SharesSet(result, res)
	//fmt.Printf("Done comparing to const\n")
	return state.okResponse(action.GetRequestCode())
}
开发者ID:apanda,项目名称:smpc,代码行数:24,代码来源:operations.go

示例13: DefaultAction

func (state *ComputePeerState) DefaultAction(action *sproto.Action) *sproto.Response {
	//fmt.Println("Illegal action")
	return state.failResponse(action.GetRequestCode())
}
开发者ID:apanda,项目名称:smpc,代码行数:4,代码来源:operations.go


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