分析下面代码的作用VOID CreateEthToEthConnectionProc(xmlNodePtr node) { if (node == NULL) { ERROR("CreateEthToEthConnectionProc node is NULL"); return; } CreateEthToEthConnection *ethToEthConnection = GetEthToEthConnection(); InitCreateEthToEthConnection(ethToEthConnection); Connection *outputConnection = GetOutputConnection(); InitOutputConnection(outputConnection); EthCtp *outputEthCtp = GetOutputEthCtp(); InitOutputEthCtp(outputEthCtp); GetCreateEthToEthConnectionInputParam(node, ethToEthConnection); UINT32 ret = ncEthToEthConnectionCopyToOutputConnection(ethToEthConnection, outputConnection, outputEthCtp); if (ret != 0) { ERROR("CreateEthToEthConnectionProc error ret:%u, errorMsg:%s.", ret, outputConnection->errorMsg); struct nc_err* errorBuf = nc_err_new(NC_ERR_OP_FAILED); nc_err_set(errorBuf, NC_ERR_PARAM_MSG, outputConnection->errorMsg); return; } ReplyConnectionOutputParam(outputConnection); InitConnectionDBProc(outputConnection); ReplyConnectionNotification(outputConnection->name, TRUE); InitEthCtpDBProc(outputEthCtp); g_DeviceMode = NORMAL_MODE; return; }
时间: 2024-04-19 18:24:58 浏览: 93
libxml教程(图文详解)
这段代码是一个名为CreateEthToEthConnectionProc的函数,它接受一个xmlNodePtr类型的参数node,没有返回值(返回类型为VOID)。
首先,函数对传入的参数进行判断,如果node为NULL,则打印错误信息并返回。
然后,函数通过调用GetEthToEthConnection函数获取一个CreateEthToEthConnection类型的结构体指针ethToEthConnection,并通过调用InitCreateEthToEthConnection函数对其进行初始化。
接下来,函数通过调用GetOutputConnection函数获取一个Connection类型的结构体指针outputConnection,并通过调用InitOutputConnection对其进行初始化。
然后,函数通过调用GetOutputEthCtp函数获取一个EthCtp类型的结构体指针outputEthCtp,并通过调用InitOutputEthCtp对其进行初始化。
接下来,函数调用GetCreateEthToEthConnectionInputParam函数,从传入的node参数中获取输入参数,并将其赋值给ethToEthConnection。
然后,函数调用ncEthToEthConnectionCopyToOutputConnection函数,将ethToEthConnection的内容复制到outputConnection和outputEthCtp中。并将返回值赋给ret。
接下来,函数判断ret是否为0,如果不为0,则打印错误信息,并创建一个nc_err结构体errorBuf,设置其错误类型为NC_ERR_OP_FAILED,并设置错误消息为outputConnection->errorMsg。然后返回。
如果ret为0,则调用ReplyConnectionOutputParam函数,处理outputConnection的输出参数。
然后,函数依次调用InitConnectionDBProc、ReplyConnectionNotification、InitEthCtpDBProc,并将g_DeviceMode设置为NORMAL_MODE。
最后,函数返回。
阅读全文