How to link one node to another using the pSelector on GEV server

I have created a GevServer and would now like to add a pSelector to a node, so that this node is available as with the Linea camera. However, I am not quite clear what a pSelector does exactly, or what its function is.
But important for me is how I can map this in the nodemap.
Example:

<Integer Name="userSetSelector_val">
    <pIsLocked>TLParamsLocked</pIsLocked>
    <Value>6</Value>
 </Integer>
 <Enumeration Name="UserSetSelector" NameSpace="Standard">
    <ToolTip>Selects the camera configuration set</ToolTip>
    <Description>Selects the camera configuration set to load feature settings from or save current feature settings to. The Factory set contains default camera feature settings. User camera configuration sets contain feature settings previously saved by the user.</Description>
    <DisplayName>User Set Selector</DisplayName>
    <Visibility>Beginner</Visibility>
    <pIsLocked>UseSet_IsBussy</pIsLocked>
    <EnumEntry Name="Default" NameSpace="Standard">
       <ToolTip>Factory Setting</ToolTip>
       <Description>Select the default camera feature settings saved by the Factory.</Description>
       <DisplayName>Factory Setting</DisplayName>
       <Visibility>Beginner</Visibility>
       <Value>6</Value>
    </EnumEntry>
    <EnumEntry Name="UserSet1" NameSpace="Standard">
       <ToolTip>User camera configuration set 1</ToolTip>
       <Description>Select the User defined Configuration space UserSet1 to save to or load from features settings previously saved by the user.</Description>
       <DisplayName>UserSet 1</DisplayName>
       <Visibility>Beginner</Visibility>
       <Value>4</Value>
    </EnumEntry>
    <pValue>userSetSelector_val</pValue>
    <pSelected>UserSetSave</pSelected>
</Enumeration>
 <Command Name="UserSetSave" NameSpace="Standard">
    <ToolTip>Saves the current camera configuration</ToolTip>
    <Description>Saves the current camera configuration to the user set specified by the User Set Selector feature. The user sets are located on the camera in non volatile memory.</Description>
    <DisplayName>Save Configuration</DisplayName>
    <Visibility>Beginner</Visibility>
    <pIsAvailable>isUserSetSaveAvailable</pIsAvailable>
    <pIsLocked>TLParamsLocked</pIsLocked>
    <pError>userSetError</pError>
    <pValue>pUserSetSaveReg</pValue>
    <pCommandValue>userSetSelector_val</pCommandValue>
 </Command>
 <IntReg Name="pUserSetSaveReg">
    <ToolTip>User set save register</ToolTip>
    <Address>0x08000010</Address>
    <Length>4</Length>
    <AccessMode>RW</AccessMode>
    <pPort>Device</pPort>
    <pInvalidator>userSetSelector_val</pInvalidator>
    <Sign>Unsigned</Sign>
    <Endianess>LittleEndian</Endianess>
 </IntReg>

This is what I got so far:

    //---> Setup a "deviceInformation"
    auto catDeviceInformationNode =
        Cvb::GevServer::CategoryNode::Create(CVB_LIT("Cust::deviceInformation"));
    global_server->NodeMap()->AddNode(catDeviceInformationNode);
    catDeviceInformationNode->SetToolTip(
        CVB_LIT("Description of the camera"));
    catDeviceInformationNode->SetDisplayName(CVB_LIT("Camera Information"));
    rootNode->Add(catDeviceInformationNode, Cvb::GevServer::NodeList::Child);
    
    // setup userSetSelector_val intNode
    auto intNodeSelector_val = Cvb::GevServer::IntegerNode::Create(CVB_LIT("Std::userSetSelector_val"));
    global_server->NodeMap()->AddNode(intNodeSelector_val);
    intNodeSelector_val->SetValue(6);

    // setup UserSetSelector enumNode with entry nodes 
    auto enumNode = Cvb::GevServer::EnumerationNode::Create(CVB_LIT("Std::UserSetSelector"));
    global_server->NodeMap()->AddNode(enumNode);
    enumNode->SetDisplayName(CVB_LIT("User Set Selector"));
    enumNode->SetToolTip(CVB_LIT("Selects the camera configuration set"));
    enumNode->SetDescription(CVB_LIT(
        "Selects the camera configuration set to load feature settings from or save current "
        "feature settings to. The Factory set contains default camera feature settings. User "
        "camera configuration sets contain feature settings previously saved by the user."));
    enumNode->SetVisibility(Cvb::GenApi::Visibility::Beginner);
    enumNode->SetIsStreamable(1);
    // Here the pValue is set to the userSelector_val node
    enumNode->SetValueConfig<Cvb::GevServer::IntegerBaseNodePtr>(intNodeSelector_val);

    auto enumEntNode1 = Cvb::GevServer::EnumEntryNode::Create(CVB_LIT("std::Default"));
    enumEntNode1->SetToolTip(CVB_LIT("Factory Setting"));
    enumEntNode1->SetDescription(CVB_LIT("Select the default camera feature settings saved by the Factory."));
    enumEntNode1->SetDisplayName(CVB_LIT("Factory Setting"));
    enumEntNode1->SetVisibility(Cvb::GenApi::Visibility::Beginner);
    enumEntNode1->SetNumericValue(6);
    enumNode->Add(enumEntNode1, Cvb::GevServer::NodeList::Child);

    auto enumEntNode2 = Cvb::GevServer::EnumEntryNode::Create(CVB_LIT("std::UserSet1"));
    enumEntNode2->SetToolTip(CVB_LIT("User camera configuration set 1"));
    enumEntNode2->SetDescription(CVB_LIT("Select the User defined Configuration space UserSet1 to save to or load from features settings previously saved by the user."));
    enumEntNode2->SetDisplayName(CVB_LIT("UserSet 1"));
    enumEntNode2->SetVisibility(Cvb::GenApi::Visibility::Beginner);
    enumEntNode2->SetNumericValue(4);
    enumNode->Add(enumEntNode2, Cvb::GevServer::NodeList::Child);

    // setup UserSetSave nodes. Dont know how to create a command Node with the Gev server class, so choose IntegerNode insteed
    auto intNodeUserSetSave = Cvb::GevServer::IntegerNode::Create(CVB_LIT("Std::UserSetSave"));
    global_server->NodeMap()->AddNode(intRegNode1);
    intNodeUserSetSave->SetToolTip(CVB_LIT("Saves the current camera configuration"));
    intNodeUserSetSave->SetDescription(
        CVB_LIT("Saves the current camera configuration to the user set specified by the User Set Selector feature. The user sets are located on the camera in non volatile memory."));
    intNodeUserSetSave->SetDisplayName(CVB_LIT("Save Configuration"));
    intNodeUserSetSave->SetVisibility(Cvb::GenApi::Visibility::Beginner);
    intNodeUserSetSave->SetValueConfig<Cvb::GevServer::IntegerBaseNodePtr>(intRegNodepUserSetSave);

    auto intRegNodepUserSetSave = Cvb::GevServer::Int32RegNode::Create(CVB_LIT("Std::pUserSetSaveReg"));
    global_server->NodeMap()->AddNode(intRegNodepUserSetSave);
    intRegNodepUserSetSave->SetToolTip("User set save register");
    intRegNodepUserSetSave->SetAccessMode(Cvb::GenApi::AccessMode::ReadWrite);
    intRegNodepUserSetSave->SetIsSigned(false);

    catDeviceInformationNode->Add(intNodeSelector_val, Cvb::GevServer::NodeList::Child);
    catDeviceInformationNode->Add(intRegNodepUserSetSave, Cvb::GevServer::NodeList::Child);
    catDeviceInformationNode->Add(intNodeUserSetSave, Cvb::GevServer::NodeList::Child);
    catDeviceInformationNode->Add(enumNode, Cvb::GevServer::NodeList::Child);