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


		/// <summary>
		/// Adds a subcondition to a condition in the AeCategory.
		/// </summary>
		/// <param name="aConditionName">The existing condition.</param>
		/// <param name="aSubconditionName">New subcondition name.</param>
		/// <returns>
		/// S_OK - if succeeded
		/// E_FAIL - if failure
		/// </returns>
		/// <include
		///		file='TBNS.doc.xml'
		///			path='//class[@name="AeCategory"]/
		///			method[@name="AddSubConditionDefinition"]/doc/*'
		///	/>
		public virtual int AddSubConditionDefinition(
			string aConditionName,
			string aSubconditionName)
		{
			try
			{
				if (aConditionName.Length == 0 || aSubconditionName.Length == 0)
				{
					return (int) EnumResultCode.E_FAIL;
				} //	end if

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

				System.Diagnostics.Debug.Assert(Handle != 0, "Called for Null handle");

				Hashtable syncConditions = Hashtable.Synchronized(this.m_conditions);

				int result = (int) EnumResultCode.S_OK;

				AeConditionDefinition condition = syncConditions[aConditionName] as AeConditionDefinition;
				if (condition == null)
				{
					result = AddConditionDefinition(aConditionName);
					syncConditions = Hashtable.Synchronized(this.m_conditions);
					condition = syncConditions[aConditionName] as AeConditionDefinition;
				} //	end if

				if (ResultCode.SUCCEEDED(result))
				{
					//	at this time the condition should have been be registered
					result = OTBFunctions.OTSAddSubCondition(this.Handle, aConditionName, aSubconditionName);
					if (ResultCode.SUCCEEDED(result))
					{
						result = condition.AddSubConditonData(aSubconditionName);
					} //	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;
			} //	end try ... catch
		} //	end AddSubConditionDefinition
コード例 #2
0
		} //	end AddSubConditionDefinition


		/// <summary>
		/// returns the sub condition definition object for a specified condition and subcondition identifier
		/// </summary>
		/// <param name="aConditionName">
		/// The condition identifier where the needed subcondition lays
		/// </param>
		/// <param name="aSubconditionName">
		/// the id of the subcondition needed
		/// </param>
		/// <returns>
		/// the instance of subcondition if found;
		/// null if not found
		/// </returns>
		/// <include
		///		file='TBNS.doc.xml'
		///			path='//class[@name="AeCategory"]/
		///			method[@name="GetSubConditionDefinition"]/doc/*'
		///	/>
		public AeSubConditionDefinition GetSubConditionDefinition(
			string aConditionName,
			string aSubconditionName)
		{
			Hashtable syncConditions = Hashtable.Synchronized(this.m_conditions);
			AeConditionDefinition conditionDefinition = syncConditions[aConditionName] as AeConditionDefinition;

			if (conditionDefinition != null)
			{
				return conditionDefinition.GetSubConditionDefinition(aSubconditionName);
			} //	end if

			return null;
		} //	end GetConditionDefinition
コード例 #3
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