openDAQ
Open data acquisition platform
IServerCapability Struct Referenceabstract

Represents standard information about a server's capability to support various protocols. The Server Capability object functions as a Property Object, facilitating the inclusion of custom properties of String, Int, Bool, or Float types. This interface serves to store essential details regarding the supported protocol by a device. It adheres to a standardized set of properties, including methods to retrieve information such as the connection string, protocol name, protocol type, connection type, and core events enabled. More...

+ Inheritance diagram for IServerCapability:
+ Collaboration diagram for IServerCapability:

Detailed Description

Represents standard information about a server's capability to support various protocols. The Server Capability object functions as a Property Object, facilitating the inclusion of custom properties of String, Int, Bool, or Float types. This interface serves to store essential details regarding the supported protocol by a device. It adheres to a standardized set of properties, including methods to retrieve information such as the connection string, protocol name, protocol type, connection type, and core events enabled.

Additional String, Int, Bool, or Float-type properties can be added using the appropriate Property Object "add property" method. However, other property types are considered invalid for this interface.

The Server Capability object conforms to a standardized format, ensuring compatibility with communication standards. For instance, it provides methods to retrieve details like

  • the connection string (URL),
  • protocol name (e.g., "OpenDAQNativeStreaming", "OpenDAQOPCUA"),
  • protocol type (e.g., "Configuration&Streaming", "Streaming"),
  • connection type (e.g., IPv4, IPv6),
  • core events enabled (indicating communication mode).

Public Member Functions

virtual ErrCode INTERFACE_FUNC getConnectionString (IString **connectionString)=0
 Gets the connection string of the device with the current protocol. More...
 
virtual ErrCode INTERFACE_FUNC getConnectionStrings (IList **connectionStrings)=0
 Gets the connection string of the device with the current protocol. More...
 
virtual ErrCode INTERFACE_FUNC getProtocolName (IString **protocolName)=0
 Gets the name of the protocol supported by the device. More...
 
virtual ErrCode INTERFACE_FUNC getProtocolId (IString **protocolId)=0
 Gets the id of the protocol supported by the device. Should not contain spaces or special characters except for '_' and '-'. More...
 
virtual ErrCode INTERFACE_FUNC getProtocolType (ProtocolType *type)=0
 Gets the type of protocol supported by the device. More...
 
virtual ErrCode INTERFACE_FUNC getPrefix (IString **prefix)=0
 Gets the prefix of the connection string (eg. "daq.nd" or "daq.opcua") More...
 
virtual ErrCode INTERFACE_FUNC getConnectionType (IString **type)=0
 Gets the type of connection supported by the device. More...
 
virtual ErrCode INTERFACE_FUNC getCoreEventsEnabled (Bool *enabled)=0
 Gets the client update method supported by the device. More...
 
virtual ErrCode INTERFACE_FUNC getAddresses (IList **addresses)=0
 Gets the device's list of addresses with the current protocol. More...
 
virtual ErrCode INTERFACE_FUNC getPort (IInteger **port)=0
 Gets the port of the device with the current protocol. More...
 
virtual ErrCode INTERFACE_FUNC getAddressInfo (IList **addressInfo)=0
 Gets the list of address information objects. More...
 
virtual ErrCode INTERFACE_FUNC getProtocolVersion (IString **version)=0
 Gets the protocol version supported by the device's protocol. 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

◆ getAddresses()

virtual ErrCode INTERFACE_FUNC getAddresses ( IList **  addresses)
pure virtual

Gets the device's list of addresses with the current protocol.

Parameters
[out]addressesThe device's list of addresses (hosts)

◆ getAddressInfo()

virtual ErrCode INTERFACE_FUNC getAddressInfo ( IList **  addressInfo)
pure virtual

Gets the list of address information objects.

Parameters
[out]addressInfoThe list of address information objects.

Address information duplicates the connection string and address as available on the Server Capability object. Additionally, it provides information on what type of address it is (e.g., IPv4, IPv6), as well as whether the address is reachable.

◆ getConnectionString()

virtual ErrCode INTERFACE_FUNC getConnectionString ( IString **  connectionString)
pure virtual

Gets the connection string of the device with the current protocol.

Parameters
[out]connectionStringThe connection string of the device (URL to connect).

◆ getConnectionStrings()

virtual ErrCode INTERFACE_FUNC getConnectionStrings ( IList **  connectionStrings)
pure virtual

Gets the connection string of the device with the current protocol.

Parameters
[out]connectionStringsThe connection string of the device (URL to connect).

◆ getConnectionType()

virtual ErrCode INTERFACE_FUNC getConnectionType ( IString **  type)
pure virtual

Gets the type of connection supported by the device.

Parameters
[out]typeThe type of connection (e.g., "TCP/IP").

◆ getCoreEventsEnabled()

virtual ErrCode INTERFACE_FUNC getCoreEventsEnabled ( Bool *  enabled)
pure virtual

Gets the client update method supported by the device.

Parameters
[out]enabledThe client update method (Boolean value indicating if core events are enabled for communication between server and client device).

◆ getPort()

virtual ErrCode INTERFACE_FUNC getPort ( IInteger **  port)
pure virtual

Gets the port of the device with the current protocol.

Parameters
[out]portThe port of the device.

◆ getPrefix()

virtual ErrCode INTERFACE_FUNC getPrefix ( IString **  prefix)
pure virtual

Gets the prefix of the connection string (eg. "daq.nd" or "daq.opcua")

Parameters
prefixThe connection string prefix

◆ getProtocolId()

virtual ErrCode INTERFACE_FUNC getProtocolId ( IString **  protocolId)
pure virtual

Gets the id of the protocol supported by the device. Should not contain spaces or special characters except for '_' and '-'.

Parameters
[out]protocolIdThe id of the protocol.

◆ getProtocolName()

virtual ErrCode INTERFACE_FUNC getProtocolName ( IString **  protocolName)
pure virtual

Gets the name of the protocol supported by the device.

Parameters
[out]protocolNameThe name of the protocol (e.g., "OpenDAQNativeStreaming", "OpenDAQOPCUA", "OpenDAQLTStreaming").

◆ getProtocolType()

virtual ErrCode INTERFACE_FUNC getProtocolType ( ProtocolType *  type)
pure virtual

Gets the type of protocol supported by the device.

Parameters
[out]typeThe type of protocol (Enumeration value reflecting protocol type: "ConfigurationAndStreaming", "Configuration", "Streaming", "ServerStreaming", "Unknown").

◆ getProtocolVersion()

virtual ErrCode INTERFACE_FUNC getProtocolVersion ( IString **  version)
pure virtual

Gets the protocol version supported by the device's protocol.

Parameters
[out]versionThe protocol version.