Skip to content
Snippets Groups Projects
principalNetworkDomain.go 1.22 KiB
Newer Older
  • Learn to ignore specific revisions
  • package nucleus
    
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    import (
    	"code.fbi.h-da.de/cocsn/gosdn/nucleus/interfaces"
    	"github.com/google/uuid"
    )
    
    type pndImplementation struct {
    
    	name         string
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    	sbiContainer map[string]*nucleus.SouthboundInterface
    	devices      map[uuid.UUID]Device
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    //NewPND creates a Principle Network Domain
    func NewPND(name string, sbi *nucleus.SouthboundInterface) nucleus.PrincipalNetworkDomain {
    	sbic := make(map[string]*nucleus.SouthboundInterface)
    	sbic["default"] = sbi
    
    	return &pndImplementation{
    		name:         name,
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    		sbiContainer: sbic,
    
    }
    
    // Interface satisfaction
    func (pnd *pndImplementation) Destroy() error {
    	return destroy()
    }
    
    func (pnd *pndImplementation) AddSbi() error {
    	return addSbi()
    }
    
    func (pnd *pndImplementation) RemoveSbi() error {
    	return removeSbi()
    }
    
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    func (pnd *pndImplementation) AddDevice(device Device) error {
    	return addDevice(device)
    }
    
    func (pnd *pndImplementation) RemoveDevice(uuid uuid.UUID) error {
    	return removeDevice(uuid)
    }
    
    
    // Actual implementation, bind to struct if
    // neccessary
    func destroy() error {
    	return nil
    }
    
    func addSbi() error {
    	return nil
    }
    
    func removeSbi() error {
    	return nil
    }
    
    Manuel Kieweg's avatar
    Manuel Kieweg committed
    
    func addDevice(device Device) error {
    	return nil
    }
    
    func removeDevice(uuid uuid.UUID) error {
    	return nil
    }