Documentation
¶
Overview ¶
Package list implements a doubly linked list.
To iterate over a list (where l is a *List):
for e := l.Front(); e != nil; e = e.Next() { // do something with e.Value }
Index ¶
- type ConnInterface
- type Element
- type List
- func (l *List) Back() *Element
- func (l *List) Front() *Element
- func (l *List) Init() *List
- func (l *List) InsertAfter(v *rtnetlink.Conn, mark *Element) *Element
- func (l *List) InsertBefore(v *rtnetlink.Conn, mark *Element) *Element
- func (l *List) Len() int
- func (l *List) MoveAfter(e, mark *Element)
- func (l *List) MoveBefore(e, mark *Element)
- func (l *List) MoveToBack(e *Element)
- func (l *List) MoveToFront(e *Element)
- func (l *List) PushBack(v *rtnetlink.Conn) *Element
- func (l *List) PushBackList(other *List)
- func (l *List) PushFront(v *rtnetlink.Conn) *Element
- func (l *List) PushFrontList(other *List)
- func (l *List) Remove(e *Element) *rtnetlink.Conn
- type NetLinkConnectionPool
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ConnInterface ¶
type ConnInterface interface { }
type Element ¶
type Element struct { // The value stored with this element. Value *rtnetlink.Conn // contains filtered or unexported fields }
Element is an element of a linked list.
type List ¶
type List struct {
// contains filtered or unexported fields
}
List represents a doubly linked list. The zero value for List is an empty list ready to use.
func (*List) InsertAfter ¶
InsertAfter inserts a new element e with value v immediately after mark and returns e. If mark is not an element of l, the list is not modified. The mark must not be nil.
func (*List) InsertBefore ¶
InsertBefore inserts a new element e with value v immediately before mark and returns e. If mark is not an element of l, the list is not modified. The mark must not be nil.
func (*List) MoveAfter ¶
MoveAfter moves element e to its new position after mark. If e or mark is not an element of l, or e == mark, the list is not modified. The element and mark must not be nil.
func (*List) MoveBefore ¶
MoveBefore moves element e to its new position before mark. If e or mark is not an element of l, or e == mark, the list is not modified. The element and mark must not be nil.
func (*List) MoveToBack ¶
MoveToBack moves element e to the back of list l. If e is not an element of l, the list is not modified. The element must not be nil.
func (*List) MoveToFront ¶
MoveToFront moves element e to the front of list l. If e is not an element of l, the list is not modified. The element must not be nil.
func (*List) PushBack ¶
PushBack inserts a new element e with value v at the back of list l and returns e.
func (*List) PushBackList ¶
PushBackList inserts a copy of another list at the back of list l. The lists l and other may be the same. They must not be nil.
func (*List) PushFront ¶
PushFront inserts a new element e with value v at the front of list l and returns e.
func (*List) PushFrontList ¶
PushFrontList inserts a copy of another list at the front of list l. The lists l and other may be the same. They must not be nil.
type NetLinkConnectionPool ¶
type NetLinkConnectionPool struct {
// contains filtered or unexported fields
}
Internal management interface to cache/queue netlink connections to the kernel asynchronously, for better performance on the API side. The interface asynchronously builds up a few queued connections at any one time, and then
var (
NetlinkPool *NetLinkConnectionPool
)
func NewConnPool ¶
func NewConnPool(n int) *NetLinkConnectionPool
func (*NetLinkConnectionPool) GetConn ¶
func (conn *NetLinkConnectionPool) GetConn() (*rtnetlink.Conn, error)
Callers should use method to acquire a new connection fd to use for their operations.
func (*NetLinkConnectionPool) ReturnConn ¶
func (conn *NetLinkConnectionPool) ReturnConn(in *rtnetlink.Conn)
Callers should "return" file descriptor to pool after being completing tasks with connection. Connections can be recycled internally or thrown out if the number of connections is bigger than the number of static connections that are requested for this pool.
func (*NetLinkConnectionPool) StartManager ¶
func (conn *NetLinkConnectionPool) StartManager()
Manager thread will spin up connections asynchronously.
func (*NetLinkConnectionPool) UpdateQueueSize ¶
func (conn *NetLinkConnectionPool) UpdateQueueSize(n int) error