Update Principal Network Domain authored by Malte Bauch's avatar Malte Bauch
The `pndImplementation` implements the `PrincipalNetworkDomain` interface. A `Principal Network Domain (PND)` is the main data structure within the `Nucleus`. It holds the Orchestrated Network Devices, as well as the supported Southbound Interfaces in its domain.
```plantuml ```plantuml
interface PrincipalNetworkDomain { interface PrincipalNetworkDomain {
+ Destroy() error + Destroy() error
+ AddSbi() error + AddSbi( <font color=blue>interface</font>{}) error
+ RemoveSbi() error + RemoveSbi( uuid.UUID) error
+ AddDevice() error + AddDevice( <font color=blue>interface</font>{}) error
+ RemoveDevice() error + RemoveDevice( uuid.UUID) error
+ Request( uuid.UUID, string) error
+ RequestAll( string) error
+ GetName() string
+ GetDescription() string
+ MarshalDevice( uuid.UUID) (string, error)
+ ContainsDevice( uuid.UUID) bool
+ GetSBIs() <font color=blue>interface</font>{}
+ ID() uuid.UUID
} }
```
```plantuml class pndImplementation << (S,Aquamarine) >> {
class pndImplementation << (S,Aquamarine) >> {
- name string - name string
- sbiContainer map[string]nucleus.SouthboundInterface - description string
- devices map[uuid]Device - sbic sbiStore
- devices deviceStore
- id uuid.UUID
+ Destroy() error - addSbi(sbi SouthboundInterface) error
+ AddSbi() error - removeSbi(id uuid.UUID) error
+ RemoveSbi() error - addDevice(device *Device) error
- getDevice(id uuid.UUID) (*Device, error)
- removeDevice(id uuid.UUID) error
+ ID() uuid.UUID
+ GetName() string
+ ContainsDevice(id uuid.UUID) bool
+ GetDescription() string
+ GetSBIs() <font color=blue>interface</font>{}
+ Destroy() error
+ AddSbi(sbi <font color=blue>interface</font>{}) error
+ RemoveSbi(id uuid.UUID) error
+ AddDevice(device <font color=blue>interface</font>{}) error
+ RemoveDevice(uuid uuid.UUID) error
+ MarshalDevice(uuid uuid.UUID) (string, error)
+ Request(uuid uuid.UUID, path string) error
+ RequestAll(path string) error
+ Set(uuid uuid.UUID, path string, value string) (<font color=blue>interface</font>{}, error)
} }
"PrincipalNetworkDomain" <|-- "pndImplementation"
``` ```
\ No newline at end of file