コード例 #1
0
		} //	end AddAttribute


		/// <summary>
		/// adds a new condition definition object with the name provided as aConditionDefinition
		/// </summary>
		/// <param name="aConditionName">the condition name</param>
		/// <returns>
		/// S_OK - if succeeded
		/// E_FAIL - if failure
		/// </returns>
		/// <include
		///		file='TBNS.doc.xml'
		///			path='//class[@name="AeCategory"]/
		///			method[@name="AddConditionDefinition"]/doc/*'
		///	/>
		public virtual int AddConditionDefinition(string aConditionName)
		{
			try
			{
				if (aConditionName.Length == 0)
				{
					return (int) EnumResultCode.E_FAIL;
				} //	end if

				if (Handle == 0)
				{
					return (int) EnumResultCode.E_FAIL;
				} //	end if

				int result = OTBFunctions.OTSAddCondition(this.Handle, aConditionName);

				if (ResultCode.SUCCEEDED(result))
				{
					Hashtable syncConditions = Hashtable.Synchronized(this.m_conditions);

					//	Check for a duplicate condition
					AeConditionDefinition condition = syncConditions[aConditionName] as AeConditionDefinition;
					if (condition == null)
					{
						condition = new AeConditionDefinition(aConditionName);
						syncConditions.Add(aConditionName, condition);
					} //	end if
				} //	end if

				return result;
			}
			catch (Exception e)
			{
				Application.Instance.Trace(EnumTraceLevel.ERR,
				                           EnumTraceGroup.OPCSERVER,
				                           "Category.AddCondition",
				                           "Exception caught:" + e.ToString());
				return (int) EnumResultCode.E_FAIL;
			} //	enc try ... catch
		} //	end AddConditionDefinition