cascading::CascadeManager Interface Reference

JSON-RPC Cascade Manager. More...

`import"CascadeManager.idl";`

## Classes

struct | LinkUnit
| Link Unit Status. More...
struct | Status
| Full Cascading Status. More...

## Public Types

enum | Role { STANDALONE, MASTER, LINK_UNIT }
| JSON-RPC Cascade Role. More...
enum | LinkUnitStatus { UNKNOWN, OK, UNREACHABLE, ACCESS_DENIED, FIRMWARE_UPDATE }
| Link Unit Communication Status. More...

## Public Member Functions

Status | getStatus ()
| Retrieve the full cascading status for this unit. More...
int | addLinkUnit (in int linkId, in string host, in string login, in string password, in string newPassword)
| Put a new link unit under this master's control. More...
int | releaseLinkUnit (in int linkId)
| Release a link unit from this master's control. More...
int | requestLink (in string token)
| Request to make this unit a link unit and put it under the remote master's control. More...
void | finalizeLink (in string token)
| Finalize the link with this link unit. More...
void | unlink ()
| Release this link unit from the remote master's control. More...

## Public Attributes

constant int | NO_ERROR = 0
| Operation successful, no error.
constant int | ERR_INVALID_PARAM = 1
| A parameter was invalid.
constant int | ERR_UNSUPPORTED_ON_MASTER = 2
| Operation not allowed for a master unit.
constant int | ERR_UNSUPPORTED_ON_LINK_UNIT = 3
| Operation not allowed for a link unit.
constant int | ERR_LINK_ID_IN_USE = 4
| The specified link ID is already used.
constant int | ERR_HOST_IN_USE = 5
| The specified host is already in use.
constant int | ERR_LINK_UNIT_UNREACHABLE = 6
| Could not connect to the link device.
constant int | ERR_LINK_UNIT_ACCESS_DENIED = 7
| Login to link device failed.
constant int | ERR_LINK_UNIT_REFUSED = 8
| Remote device refused to become a link unit.
constant int | ERR_UNIT_BUSY = 9
| The unit could not respond because it was busy.
constant int | ERR_NOT_SUPPORTED = 10
| Operation not supported on this device.
constant int | ERR_PASSWORD_CHANGE_REQUIRED = 11
| The unit requires a password change.
constant int | ERR_PASSWORD_POLICY = 12
| The given password did not meet the requirements.
valueobject | RoleChangedEvent: idl::Event { Role oldRole
| Event: This unit's role in the cascade has changed. More...
Role | newRole
| New role after the change.
string | master
| Master IP address (if new role is link unit)
valueobject | LinkUnitAddedEvent: event::UserEvent { int linkId
| Event: A new link unit has been added. More...
string | host
| Host name or IP address.
valueobject | LinkUnitReleasedEvent: event::UserEvent { int linkId
| Event: A link unit has been released. More...
valueobject | LinkUnitStatusChangedEvent: idl::Event { int linkId
| Event: A link unit's communication status has changed. More...
LinkUnitStatus | oldStatus
| Previous communication status.
LinkUnitStatus | newStatus
| New communication status.

## Detailed Description

JSON-RPC Cascade Manager.

## Member Enumeration Documentation

## LinkUnitStatus

enum cascading::CascadeManager::LinkUnitStatus

Link Unit Communication Status.

Enumerator
UNKNOWN | The status of the link unit is unknown.
OK | The link unit operates normally.
UNREACHABLE | The link unit is unreachable.
ACCESS_DENIED | The link unit denies access.
FIRMWARE_UPDATE | Ths link unit is performing a firmware update.

## Role

enum cascading::CascadeManager::Role

JSON-RPC Cascade Role.

Enumerator
STANDALONE | Standalone unit, not in cascade.
MASTER | Master unit controlling other devices.
LINK_UNIT | link unit under master control

## Member Function Documentation

## addLinkUnit()

int cascading::CascadeManager::addLinkUnit | ( | in int | linkId,
|  | in string | host,
|  | in string | login,
|  | in string | password,
|  | in string | newPassword
| ) |  |

Put a new link unit under this master's control.

The login credentials must have administrator privileges on the link unit. They are only used to establish a trust relationship between master and link unit and not stored.

This method can also be used to re-authenticate a link unit that denies access. In that case the linkId and host parameter must exactly match the existing values.

Parameters

  linkId | The ID for the new link unit
  host | The link unit's host name or IP address
  login | The administrator login for the link unit
  password | The administrator password for the link unit
  newPassword | The new administrator password for the unit. This is needed for adding a link unit that still has default settings and requires a password change. Otherwise it can be left empty.

Returns
  NO_ERROR The operation was successful
  ERR_INVALID_PARAM One of the parameters had an invalid value
  ERR_UNSUPPORTED_ON_LINK_UNIT This unit is currently a link unit and can't have link units of its own
  ERR_LINK_ID_IN_USE The specified link ID is already in use
  ERR_HOST_IN_USE The specified host is already in use
  ERR_LINK_UNIT_UNREACHABLE Connection to the link unit failed
  ERR_LINK_UNIT_ACCESS_DENIED The credentials for the link unit were invalid
  ERR_LINK_UNIT_REFUSED The remote unit refused to become our link unit, e.g. because it's a master itself
  ERR_UNIT_BUSY This unit is currently busy with handling another request
  ERR_NOT_SUPPORTED This device does not support PDU linking
  ERR_PASSWORD_CHANGE_REQUIRED The specified link unit requires a password change
  ERR_PASSWORD_POLICY The new password did not meet the requirements

## finalizeLink()

void cascading::CascadeManager::finalizeLink | ( | in string | token | ) |

Finalize the link with this link unit.

Parameters

  token | same authorization token as used for requestLink()

This method should only be called by the master unit in order to acknowledge the establishment of the link to the link unit and finalize the link build-up. The linking will only take effect once the link unit received this acknowledgement.

If this method fails, you will get the ACCESS_DENIED status for this link unit and you will have to re-authenticate it.

## getStatus()

Status cascading::CascadeManager::getStatus | ( |  | ) |

Retrieve the full cascading status for this unit.

Returns
  Full cascading status

## releaseLinkUnit()

int cascading::CascadeManager::releaseLinkUnit | ( | in int | linkId | ) |

Release a link unit from this master's control.

Parameters

  linkId | The ID of the link unit

Returns
  NO_ERROR The operation was successful
  ERR_INVALID_PARAM The specified link ID is invalid

## requestLink()

int cascading::CascadeManager::requestLink | ( | in string | token | ) |

Request to make this unit a link unit and put it under the remote master's control.

This method is usually called by the master unit when adding a new link unit. The link will only be established once finalizeLink() is successfully called.

Parameters

  token | Authorization token for future requests

Returns
  NO_ERROR The operation was successful
  ERR_UNSUPPORTED_ON_MASTER This unit is a master and can't become a link unit
  ERR_NOT_SUPPORTED This device does not support PDU linking

## unlink()

void cascading::CascadeManager::unlink | ( |  | ) |

Release this link unit from the remote master's control.

This method is usually called by the master unit when releasing a link unit. This unit will become a standalone unit.

## Member Data Documentation

## LinkUnitAddedEvent

valueobject cascading::CascadeManager::LinkUnitAddedEvent

Event: A new link unit has been added.

Link ID

## LinkUnitReleasedEvent

valueobject cascading::CascadeManager::LinkUnitReleasedEvent

Event: A link unit has been released.

Link ID

## LinkUnitStatusChangedEvent

valueobject cascading::CascadeManager::LinkUnitStatusChangedEvent

Event: A link unit's communication status has changed.

Link ID

## RoleChangedEvent

valueobject cascading::CascadeManager::RoleChangedEvent

Event: This unit's role in the cascade has changed.

Previous role before the change

The documentation for this interface was generated from the following file:

- pdu-json-rpc-api/idl/CascadeManager.idl