For providers only using the OpcUa_BaseNodes of the SDK there is no need to use any of the functions described in this module. All necessary work is done by the SDK, the provider only needs to call UaServer_BrowseInternal in its BrowseAsync implementation.
For providers implementing BrowseAsync themselves without using the SDK's UaServer_BrowseInternal helper function, it will get necessary to create ContinuationPoints. Following code example describes how to create ContinuationPoints inside a provider:
UaServer_ContinuationPointInfo *pCPInfo = OpcUa_Null;
if (a_pBrowseCtx->pContinuationPointInfo == OpcUa_Null)
{
OpcUa_BrowseDescription_CopyTo(&pRequest->NodesToBrowse[a_iNodeIndex], (
OpcUa_BrowseDescription*)pCPInfo->pDescription);
pCPInfo->RequestedMaxReferencesPerNode = pRequest->RequestedMaxReferencesPerNode;
if (OpcUa_IsBad(uStatusTemp))
{
pCPInfo = OpcUa_Null;
}
}
else
{
pCPInfo = a_pBrowseCtx->pContinuationPointInfo;
}
if (pCPInfo != OpcUa_Null)
{
a_pBrowseCtx->pContinuationPointInfo->NextTargetIndex = nextTargetIndex;
OpcUa_ByteString_CopyTo(a_pBrowseCtx->pContinuationPointInfo->pContinuationPoint,
&pResponse->
Results[a_iNodeIndex].ContinuationPoint);
}
else
{
}
Add the ContinuationPointInfo to the session's list.
- Note
- This function is thread-safe.
- Parameters
-
a_pContinuationPointInfo | pointer to the ContinuationPointInfo. |
a_pSession | pointer to the Session to add the ContinuationPointInfo to. |
UaServer_ContinuationPointInfo* UaServer_ContinuationPointInfo_Create |
( |
UaServer_ContinuationPointType |
a_Type | ) |
|
Create new ContinuationPointInfo.
- Parameters
-
a_Type | the type of the new ContinuationPointInfo. |
- Returns
- the new ContinuationPointInfo
OpcUa_StatusCode UaServer_ContinuationPointInfo_Delete |
( |
UaServer_ContinuationPointInfo * |
a_pContinuationPointInfo | ) |
|
Delete the ContinuationPointInfo.
- Parameters
-
a_pContinuationPointInfo | pointer to the ContinuationPointInfo. |
OpcUa_StatusCode UaServer_ContinuationPointInfo_InitCPData |
( |
UaServer_ContinuationPointInfo * |
a_pContinuationPointInfo | ) |
|
Set the ContinuationPoint data of the ContinuationPointInfo.
- Parameters
-
a_pContinuationPointInfo | pointer to the ContinuationPointInfo. |
Remove the ContinuationPointInfo from the session's list.
- Note
- This function is thread-safe.
- Parameters
-
a_pContinuationPointInfo | pointer to the ContinuationPointInfo. |
a_pSession | pointer to the Session from which to remove the ContinuationPointInfo. |