| /* |
| Copyright 2017 the original author or authors. |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| */ |
| |
| package physical |
| |
| import "net" |
| |
| /* |
| Represents an arbitrary OLT linecard |
| */ |
| type OLT interface { |
| GetCLLI() string |
| GetHostname() string |
| GetAddress() net.TCPAddr |
| GetNumber() int |
| GetPorts() []PONPort |
| GetParent() *Chassis |
| GetDataSwitchPort() int |
| SetNumber(int) |
| activate() error |
| Output() |
| } |
| |
| /* |
| A basic representation of an OLT which fulfills the above interface, |
| and can be used in other OLT implementations |
| */ |
| type SimpleOLT struct { |
| CLLI string |
| Hostname string |
| Address net.TCPAddr |
| Number int |
| Ports []PONPort |
| Active bool |
| Parent *Chassis `json:"-" bson:"-"` |
| DataSwitchPort int |
| } |
| |
| func (s SimpleOLT) GetCLLI() string { |
| return s.CLLI |
| } |
| |
| func (s SimpleOLT) GetHostname() string { |
| return s.Hostname |
| } |
| |
| func (s SimpleOLT) GetAddress() net.TCPAddr { |
| return s.Address |
| } |
| |
| func (s SimpleOLT) GetNumber() int { |
| return s.Number |
| } |
| func (s SimpleOLT) SetNumber(num int) { |
| s.Number = num |
| } |
| |
| func (s SimpleOLT) GetPorts() []PONPort { |
| return s.Ports |
| } |
| |
| func (s SimpleOLT) GetParent() *Chassis { |
| return s.Parent |
| } |
| |
| func (s SimpleOLT) GetDataSwitchPort() int { |
| return s.DataSwitchPort |
| } |
| func (s SimpleOLT) activate() error { |
| s.Active = true |
| //TODO make call to XOS to activate phyiscal OLT |
| return nil |
| } |
| func (s SimpleOLT) Output() error { |
| //TODO make call to XOS to activate phyiscal OLT |
| return nil |
| } |