Completing SMGenericV1.Call generic method for internal rpc

This commit is contained in:
DanB
2015-11-14 12:59:07 +01:00
parent b160557d63
commit 2be5e726ee

View File

@@ -82,6 +82,16 @@ func (self *SMGenericV1) ProcessCdr(ev sessionmanager.SMGenericEvent, reply *str
// rpcclient.RpcClientConnection interface
func (self *SMGenericV1) Call(serviceMethod string, args interface{}, reply interface{}) error {
switch serviceMethod {
case "SMGenericV1.GetMaxUsage":
argsConverted, canConvert := args.(sessionmanager.SMGenericEvent)
if !canConvert {
return rpcclient.ErrWrongArgsType
}
replyConverted, canConvert := args.(*float64)
if !canConvert {
return rpcclient.ErrWrongReplyType
}
self.GetMaxUsage(argsConverted, replyConverted)
case "SMGenericV1.GetLcrSuppliers":
argsConverted, canConvert := args.(sessionmanager.SMGenericEvent)
if !canConvert {
@@ -92,12 +102,46 @@ func (self *SMGenericV1) Call(serviceMethod string, args interface{}, reply inte
return rpcclient.ErrWrongReplyType
}
return self.GetLcrSuppliers(argsConverted, replyConverted)
/*smg.handlers["SMGenericV1.GetLcrSuppliers"] = smg.GetLcrSuppliers
smg.handlers["SMGenericV1.SessionStart"] = smg.SessionStart
smg.handlers["SMGenericV1.SessionUpdate"] = smg.SessionUpdate
smg.handlers["SMGenericV1.SessionEnd"] = smg.SessionEnd
smg.handlers["SMGenericV1.ProcessCdr"] = smg.ProcessCdr
*/
case "SMGenericV1.SessionStart":
argsConverted, canConvert := args.(sessionmanager.SMGenericEvent)
if !canConvert {
return rpcclient.ErrWrongArgsType
}
replyConverted, canConvert := args.(*float64)
if !canConvert {
return rpcclient.ErrWrongReplyType
}
return self.SessionStart(argsConverted, replyConverted)
case "SMGenericV1.SessionUpdate":
argsConverted, canConvert := args.(sessionmanager.SMGenericEvent)
if !canConvert {
return rpcclient.ErrWrongArgsType
}
replyConverted, canConvert := args.(*float64)
if !canConvert {
return rpcclient.ErrWrongReplyType
}
return self.SessionUpdate(argsConverted, replyConverted)
case "SMGenericV1.SessionEnd":
argsConverted, canConvert := args.(sessionmanager.SMGenericEvent)
if !canConvert {
return rpcclient.ErrWrongArgsType
}
replyConverted, canConvert := args.(*string)
if !canConvert {
return rpcclient.ErrWrongReplyType
}
return self.SessionEnd(argsConverted, replyConverted)
case "SMGenericV1.ProcessCdr":
argsConverted, canConvert := args.(sessionmanager.SMGenericEvent)
if !canConvert {
return rpcclient.ErrWrongArgsType
}
replyConverted, canConvert := args.(*string)
if !canConvert {
return rpcclient.ErrWrongReplyType
}
return self.SessionEnd(argsConverted, replyConverted)
}
return rpcclient.ErrUnsupporteServiceMethod
}