private void SIP_CallBackThreadMethod(object oPara)
{
NLogEx.LoggerEx logEx = new NLogEx.LoggerEx(log);
//logEx.Trace("Enter: SipStackAdapter.SIP_CallBackThreadMethod.pPara = {0}", oPara);
try
{
string strBody = oPara as string;
if (strBody == null)
{
return;
}
if (strBody.IndexOf("Catalog") > -1)
{
//logEx.Info("SipStackAdapter.SIP_CallBackThreadMethod strBody ={0}", strBody);
try
{
if (deviceItemOperateLock.TryEnterWriteLock(CgwConst.ENTER_LOCK_WAIT_TIME))
{
//首次返回需要获取设备总数
if (deviceNum == 0)
{
deviceNum = GetAllDeviceNum(strBody);
if (deviceNum == 0)
{
logEx.Trace("SipStackAdapter.GetDeviceItem Start ReceivedAllDevice");
// 接收完所有设备,通知上层处理单元
ReceivedAllDevice(null, null);
return;
}
}
if (deviceNum <= deviceList.Count)
{
return;
}
//获取返回的数据
GetDeviceItem(strBody);
}
}
finally
{
if (deviceItemOperateLock.IsWriteLockHeld)
{
deviceItemOperateLock.ExitWriteLock();
}
}
}
}
catch (System.Exception ex)
{
logEx.Error("SipStackAdapter.SIP_CallBackThreadMethod ,Exception:{0}", ex.ToString());
}
}