openDAQ
Open data acquisition platform
IComponent Struct Referenceabstract

Acts as a base interface for components, such as device, function block, channel and signal. More...

+ Inheritance diagram for IComponent:
+ Collaboration diagram for IComponent:

Detailed Description

Acts as a base interface for components, such as device, function block, channel and signal.

The IComponent provides a set of methods that are common to all components: LocalID, GlobalID and Active properties.

Public Member Functions

virtual ErrCode INTERFACE_FUNC getLocalId (IString **localId)=0
 Gets the local ID of the component. More...
 
virtual ErrCode INTERFACE_FUNC getGlobalId (IString **globalId)=0
 Gets the global ID of the component. More...
 
virtual ErrCode INTERFACE_FUNC getActive (Bool *active)=0
 Returns true if the component is active; false otherwise. More...
 
virtual ErrCode INTERFACE_FUNC setActive (Bool active)=0
 Sets the component to be either active or inactive. Also recursively sets the active field of all child components if component is a folder. More...
 
virtual ErrCode INTERFACE_FUNC getContext (IContext **context)=0
 Gets the context object. More...
 
virtual ErrCode INTERFACE_FUNC getParent (IComponent **parent)=0
 Gets the parent of the component. More...
 
virtual ErrCode INTERFACE_FUNC getName (IString **name)=0
 Gets the name of the component. More...
 
virtual ErrCode INTERFACE_FUNC setName (IString *name)=0
 Sets the name of the component. More...
 
virtual ErrCode INTERFACE_FUNC getDescription (IString **description)=0
 Gets the description of the component. More...
 
virtual ErrCode INTERFACE_FUNC setDescription (IString *description)=0
 Sets the description of the component. More...
 
virtual ErrCode INTERFACE_FUNC getTags (ITags **tags)=0
 Gets the tags of the component. More...
 
virtual ErrCode INTERFACE_FUNC getVisible (Bool *visible)=0
 Gets visible metadata state of the component. More...
 
virtual ErrCode INTERFACE_FUNC setVisible (Bool visible)=0
 Sets visible attribute state of the component. More...
 
virtual ErrCode INTERFACE_FUNC getLockedAttributes (IList **attributes)=0
 Gets a list of the component's locked attributes. The locked attributes cannot be modified via their respective setters. More...
 
virtual ErrCode INTERFACE_FUNC getOnComponentCoreEvent (IEvent **event)=0
 Gets the Core Event object that triggers whenever a change to this component happens within the openDAQ core structure. More...
 
virtual ErrCode INTERFACE_FUNC getStatusContainer (IComponentStatusContainer **statusContainer)=0
 Gets the container of Component statuses. More...
 
virtual ErrCode INTERFACE_FUNC findComponent (IString *id, IComponent **outComponent)=0
 Finds the component (signal/device/function block) with the specified (global) id. More...
 
- Public Member Functions inherited from IPropertyObject
virtual ErrCode INTERFACE_FUNC getClassName (IString **className)=0
 Gets the name of the class the Property object was constructed with. More...
 
virtual ErrCode INTERFACE_FUNC setPropertyValue (IString *propertyName, IBaseObject *value)=0
 Sets the value of the Property with the given name. More...
 
virtual ErrCode INTERFACE_FUNC getPropertyValue (IString *propertyName, IBaseObject **value)=0
 Gets the value of the Property with the given name. More...
 
virtual ErrCode INTERFACE_FUNC getPropertySelectionValue (IString *propertyName, IBaseObject **value)=0
 Gets the selected value of the Property, if the Property is a Selection property. More...
 
virtual ErrCode INTERFACE_FUNC clearPropertyValue (IString *propertyName)=0
 Clears the Property value from the Property object. More...
 
virtual ErrCode INTERFACE_FUNC hasProperty (IString *propertyName, Bool *hasProperty)=0
 Checks if the Property object contains a property named propertyName. More...
 
virtual ErrCode INTERFACE_FUNC getProperty (IString *propertyName, IProperty **property)=0
 Gets the Property with the given propertyName. More...
 
virtual ErrCode INTERFACE_FUNC addProperty (IProperty *property)=0
 Adds the property to the Property object. More...
 
virtual ErrCode INTERFACE_FUNC removeProperty (IString *propertyName)=0
 Removes the Property named propertyName from the Property object. More...
 
virtual ErrCode INTERFACE_FUNC getOnPropertyValueWrite (IString *propertyName, IEvent **event)=0
 Gets the Event that is triggered whenever a Property value is written to the Property named propertyName. More...
 
virtual ErrCode INTERFACE_FUNC getOnPropertyValueRead (IString *propertyName, IEvent **event)=0
 Gets the Event that is triggered whenever a Property value of a Property named propertyName is read. More...
 
virtual ErrCode INTERFACE_FUNC getVisibleProperties (IList **properties)=0
 Returns a list of visible properties contained in the Property object. More...
 
virtual ErrCode INTERFACE_FUNC getAllProperties (IList **properties)=0
 Returns a list of all properties contained in the Property object. More...
 
virtual ErrCode INTERFACE_FUNC setPropertyOrder (IList *orderedPropertyNames)=0
 Sets a custom order of properties as defined in the list of property names. More...
 
virtual ErrCode INTERFACE_FUNC beginUpdate ()=0
 Begins batch configuration of the object. More...
 
virtual ErrCode INTERFACE_FUNC endUpdate ()=0
 Ends batch configuration of the object. More...
 
virtual ErrCode INTERFACE_FUNC getUpdating (Bool *updating)=0
 Returns the state of batch configuration. More...
 
virtual ErrCode INTERFACE_FUNC getOnEndUpdate (IEvent **event)=0
 Gets the Event that is triggered whenever the batch configuration is applied. More...
 
virtual ErrCode INTERFACE_FUNC getPermissionManager (IPermissionManager **permissionManager)=0
 Gets the permission manager of property object. More...
 
- Public Member Functions inherited from IBaseObject
virtual ErrCode INTERFACE_FUNC borrowInterface (const IntfID &intfID, void **obj) const =0
 Returns another interface which is supported by the object without incrementing the reference count. More...
 
virtual ErrCode INTERFACE_FUNC dispose ()=0
 Disposes all references held by the object. More...
 
virtual ErrCode INTERFACE_FUNC getHashCode (SizeT *hashCode)=0
 Returns hash code of the object. More...
 
virtual ErrCode INTERFACE_FUNC equals (IBaseObject *other, Bool *equal) const =0
 Compares object to another object for equality. More...
 
virtual ErrCode INTERFACE_FUNC toString (CharPtr *str)=0
 Returns a string representation of the object. More...
 
- Public Member Functions inherited from IUnknown
virtual ErrCode INTERFACE_FUNC queryInterface (const IntfID &intfID, void **obj)=0
 Returns another interface which is supported by the object and increments the reference count. More...
 
virtual int INTERFACE_FUNC addRef ()=0
 Increments the reference count for an interface on an object. More...
 
virtual int INTERFACE_FUNC releaseRef ()=0
 Decrements the reference count for an interface on an object. More...
 

Member Function Documentation

◆ findComponent()

virtual ErrCode INTERFACE_FUNC findComponent ( IString id,
IComponent **  outComponent 
)
pure virtual

Finds the component (signal/device/function block) with the specified (global) id.

Parameters
idThe id of the component to search for.
[out]outComponentThe resulting component.

If the component parameter is true, the starting component is the root device.

The id provided should be in relative form from the starting component. E.g., to find a signal in the starting component, the id should be in the form of "Dev/dev_id/Ch/ch_id/Sig/sig_id.

◆ getActive()

virtual ErrCode INTERFACE_FUNC getActive ( Bool *  active)
pure virtual

Returns true if the component is active; false otherwise.

Parameters
[out]activeTrue if the component is active; false otherwise.

An active component acquires data, performs calculations and send packets on the signal path.

◆ getContext()

virtual ErrCode INTERFACE_FUNC getContext ( IContext **  context)
pure virtual

Gets the context object.

Parameters
[out]contextThe context object.

◆ getDescription()

virtual ErrCode INTERFACE_FUNC getDescription ( IString **  description)
pure virtual

Gets the description of the component.

Parameters
[out]descriptionThe description of the component. Empty if not configured.

The object that implements this interface defines how the description is specified.

◆ getGlobalId()

virtual ErrCode INTERFACE_FUNC getGlobalId ( IString **  globalId)
pure virtual

Gets the global ID of the component.

Parameters
[out]globalIdThe global ID of the component.

Represents the identifier that is globally unique. Globally unique identifier is composed from local identifiers from the parent components separated by '/' character. Device component must make sure that its ID is globally unique.

◆ getLocalId()

virtual ErrCode INTERFACE_FUNC getLocalId ( IString **  localId)
pure virtual

Gets the local ID of the component.

Parameters
[out]localIdThe local ID of the component.

Represents the identifier that is unique in a relation to the parent component. There is no predefined format for local ID. It is a string defined by its parent component.

◆ getLockedAttributes()

virtual ErrCode INTERFACE_FUNC getLockedAttributes ( IList **  attributes)
pure virtual

Gets a list of the component's locked attributes. The locked attributes cannot be modified via their respective setters.

Parameters
[out]attributesA list of strings containing the names of locked attributes in capital case (eg. "Name", "Description").

◆ getName()

virtual ErrCode INTERFACE_FUNC getName ( IString **  name)
pure virtual

Gets the name of the component.

Parameters
[out]nameThe name of the component. Local ID if name is not configured.

The object that implements this interface defines how the name is specified.

◆ getOnComponentCoreEvent()

virtual ErrCode INTERFACE_FUNC getOnComponentCoreEvent ( IEvent **  event)
pure virtual

Gets the Core Event object that triggers whenever a change to this component happens within the openDAQ core structure.

Parameters
[out]eventThe Core Event object. The event triggers with a Component reference and a CoreEventArgs object as arguments.

The Core Event is triggered on various changes to the openDAQ Components. This includes changes to property values, addition/removal of child components, connecting signals to input ports and others. The event type can be identified via the event ID available within the CoreEventArgs object. Each event type has a set of predetermined parameters available in the parameters field of the arguments. These can be used by any openDAQ server, or other listener to react to changes within the core structure.

◆ getParent()

virtual ErrCode INTERFACE_FUNC getParent ( IComponent **  parent)
pure virtual

Gets the parent of the component.

Parameters
[out]parentThe parent of the component.

Every openDAQ component has a parent, except for instance. Parent should be passed as a parameter to the constructor/factory. Once the component is created, the parent cannot be changed.

◆ getStatusContainer()

virtual ErrCode INTERFACE_FUNC getStatusContainer ( IComponentStatusContainer **  statusContainer)
pure virtual

Gets the container of Component statuses.

Parameters
[out]statusContainerThe container of Component statuses.

◆ getTags()

virtual ErrCode INTERFACE_FUNC getTags ( ITags **  tags)
pure virtual

Gets the tags of the component.

Parameters
[out]tagsThe tags of the component.

Tags are user definable labels that can be attached to the component.

◆ getVisible()

virtual ErrCode INTERFACE_FUNC getVisible ( Bool *  visible)
pure virtual

Gets visible metadata state of the component.

Parameters
[out]visibleTrue if the component is visible; False otherwise.

Visible determines whether search/getter methods return find the component by default.

◆ setActive()

virtual ErrCode INTERFACE_FUNC setActive ( Bool  active)
pure virtual

Sets the component to be either active or inactive. Also recursively sets the active field of all child components if component is a folder.

Parameters
activeThe new active state of the component.
Return values
OPENDAQ_IGNOREDif "Active" is part of the component's list of locked attributes, or if the new active value is equal to the previous.

An active component acquires data, performs calculations and send packets on the signal path.

◆ setDescription()

virtual ErrCode INTERFACE_FUNC setDescription ( IString description)
pure virtual

Sets the description of the component.

Parameters
descriptionThe description of the component.
Return values
OPENDAQ_IGNOREDif "Description" is part of the component's list of locked attributes, or if the new description value is equal to the previous.

The object that implements this interface defines how the description is specified.

◆ setName()

virtual ErrCode INTERFACE_FUNC setName ( IString name)
pure virtual

Sets the name of the component.

Parameters
nameThe name of the component.
Return values
OPENDAQ_IGNOREDif "Name" is part of the component's list of locked attributes, or if the new name value is equal to the previous.

The object that implements this interface defines how the name is specified.

◆ setVisible()

virtual ErrCode INTERFACE_FUNC setVisible ( Bool  visible)
pure virtual

Sets visible attribute state of the component.

Parameters
visibleTrue if the component is visible; False otherwise.
Return values
OPENDAQ_IGNOREDif "Visible" is part of the component's list of locked attributes.

Visible determines whether search/getter methods return find the component by default.