} // end GetConditionDefinition //- #endregion #region // Protected Methods //--------------------------- /// <summary> /// Adds an existing attribute object to the category internal hashtable /// </summary> /// <param name="anAttribute"> an already created instance of the attribute</param> /// <returns> /// S_OK - if succeeded /// E_FAIL - if failure /// </returns> /// <include /// file='TBNS.doc.xml' /// path='//class[@name="AeCategory"]/ /// method[@name="AddAttribute.existing"]/doc/*' /// /> protected virtual int AddAttribute(AeAttribute anAttribute) { try { if (anAttribute == null) { return (int) EnumResultCode.E_FAIL; } // end if if (Handle == 0) { return (int) EnumResultCode.E_FAIL; } // end if int result = OTBFunctions.OTSAddEventAttribute( this.Handle, anAttribute.Id, anAttribute.Name, ValueQT.GetVartype(anAttribute.DataType)); if (ResultCode.SUCCEEDED(result)) { Hashtable syncAttributeList = Hashtable.Synchronized(this.m_attributes); syncAttributeList.Add(anAttribute.Id, anAttribute); } // end if return result; } catch (Exception e) { Application.Instance.Trace(EnumTraceLevel.ERR, EnumTraceGroup.OPCSERVER, "Category.AddAttribute", "Exception caught:" + e.ToString()); return (int) EnumResultCode.E_FAIL; } // end try ... catch } // end AddAttribute
} // end Handle //- #endregion #region // Public Methods //------------------------ /// <summary> /// Creates and adds a new attribute to the category hashtable. /// </summary> /// <param name="anId"> new attribute ID</param> /// <param name="aName"> new attribute </param> /// <param name="aDataType"></param> /// <returns> /// S_OK - if succeeded /// E_FAIL - if failure /// </returns> /// <include /// file='TBNS.doc.xml' /// path='//class[@name="AeCategory"]/ /// method[@name="AddAttribute.create"]/doc/*' /// /> public virtual int AddAttribute(uint anId, string aName, Type aDataType) { AeAttribute attribute = new AeAttribute(anId, aName, aDataType); return this.AddAttribute(attribute); } // end AddAttribute