Skip to content

PhysicalName::AncestorIndex

Returns the 0-based index of any parent or ancestor component of a physical name.

template <typename TAncestor>
int AncestorIndex(ViSession Vi) const;

Vi

[in] ViSession handle for the driver session.

The 0-based index of an ancestor repeated capability instance. If the physical name is not defined for the repeated capability associated with the PhysicalName object, then this function returns -1.

The following example demonstrates use of the AncestorIndex function.

ViStatus _VI_FUNC acme4321_ConfigureArmCount(ViSession Vi, ViConstString RepCapIdentifier, ViInt32 ArmCount)
{
// The Trace repeated capability is a child repeated capability of a Channel repeated capability
// that defines a "C1" physical name. The "trace" variable below represents the "T1" Trace instance
// within the C1 instance of the parent repeated capability.
//
// Assume the following repeated capability physical names are defined in the following order for the Trace repeated capability:
//
// "C1:T1"
// "C1:T2"
// "C1:T3"
// "C2:T1"
// "C2:T2"
// "C2:T3"
// "C3:T1"
// "C3:T2"
// "C3:T3"
//
PhysicalName<Trace> trace1("C2:T3");
cout << trace1.AncestorIndex<Channel>(Vi); // prints "1" (not "5")
PhysicalName<Trace> trace2("C2:T1");
cout << trace2.AncestorIndex<Channel>(Vi); // still prints "1" (not "3")
PhysicalName<Trace> trace3("C1:T3");
cout << trace3.AncestorIndex<Channel>(Vi); // prints "0" (not "2")
}