MCPcopy Create free account
hub / github.com/OpenNI/OpenNI / xnCreateMockNodeBasedOn

Function xnCreateMockNodeBasedOn

Source/OpenNI/XnOpenNI.cpp:2130–2176  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2128}
2129
2130XN_C_API XnStatus xnCreateMockNodeBasedOn(XnContext* pContext,
2131 XnNodeHandle hOriginalNode,
2132 const XnChar* strName,
2133 XnNodeHandle* phMockNode)
2134{
2135 XN_VALIDATE_INPUT_PTR(pContext);
2136 XN_VALIDATE_INPUT_PTR(hOriginalNode);
2137 //strName may be NULL
2138 XN_VALIDATE_OUTPUT_PTR(phMockNode);
2139 XnChar strMockNodeName[XN_MAX_NAME_LENGTH];
2140 XnStatus nRetVal = XN_STATUS_OK;
2141
2142 if (strName == NULL)
2143 {
2144 XnUInt32 nCharsWritten = 0;
2145 nRetVal = xnOSStrFormat(strMockNodeName, sizeof(strMockNodeName), &nCharsWritten, "%s_%s", xnGetNodeName(hOriginalNode), XN_MOCK_NODE_NAME);
2146 XN_IS_STATUS_OK_ASSERT(nRetVal);
2147 strName = strMockNodeName;
2148 }
2149
2150 XnNodeHandle hMockNode = NULL;
2151 XnProductionNodeType type = hOriginalNode->pNodeInfo->Description.Type;
2152 nRetVal = xnCreateMockNodeImpl(pContext, type, strName, &hMockNode);
2153 XN_IS_STATUS_OK(nRetVal);
2154
2155 //Copy state from original node to mock node
2156 xn::NodeWatcher* pNodeWatcher = NULL;
2157 xn::ProductionNode originalNode(hOriginalNode);
2158 nRetVal = xn::CreateNodeWatcher(originalNode, type, hMockNode, xn::MockNotifier::GetInstance(), pNodeWatcher);
2159 if (nRetVal != XN_STATUS_OK)
2160 {
2161 xnProductionNodeRelease(hMockNode);
2162 return nRetVal;
2163 }
2164
2165 nRetVal = pNodeWatcher->NotifyState();
2166 XN_DELETE(pNodeWatcher);
2167 if (nRetVal != XN_STATUS_OK)
2168 {
2169 xnProductionNodeRelease(hMockNode);
2170 return nRetVal;
2171 }
2172
2173 *phMockNode = hMockNode;
2174
2175 return XN_STATUS_OK;
2176}
2177
2178XN_C_API XnNodeInfo* xnGetNodeInfo(XnNodeHandle hNode)
2179{

Callers 2

CreateMockNodeBasedOnFunction · 0.85
CreateBasedOnMethod · 0.85

Calls 6

xnOSStrFormatFunction · 0.85
xnGetNodeNameFunction · 0.85
xnCreateMockNodeImplFunction · 0.85
CreateNodeWatcherFunction · 0.85
xnProductionNodeReleaseFunction · 0.85
NotifyStateMethod · 0.80

Tested by

no test coverage detected