public ComDaGroup Clone(string groupName)
{
TraceState("Clone", this.m_name, groupName);
ThrowIfDisposed();
// create the new group.
ComDaGroup group = m_manager.AddGroup(
groupName,
false,
m_actualUpdateRate,
m_clientHandle,
m_timeBias,
m_deadband,
m_lcid);
lock (m_lock)
{
// add the items.
for (int ii = 0; ii < m_items.Count; ii++)
{
ComDaGroupItem item = m_items[ii].CloneItem(group);
group.m_itemsByHandle.Add(item.ServerHandle, item);
group.m_items.Add(item);
}
}
// re-create the items.
group.RecreateItems();
// return clone.
return group;
}