diff options
| author | Paul Buetow <paul@buetow.org> | 2026-03-06 17:32:24 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-03-06 17:32:24 +0200 |
| commit | 1561987330cb898f5ff64383a9c78e7e6559f118 (patch) | |
| tree | 69a823e8f98dce572566c97e6879c11c9d591bda /internal/probemanager | |
| parent | 96225fb6159212a8851043a08d781aba721b4e78 (diff) | |
| parent | 110a193e04b81abb8d8e159abd73f9f6ed1acd7e (diff) | |
Merge branch 'feat/bubbletea-v2-migration'
Diffstat (limited to 'internal/probemanager')
| -rw-r--r-- | internal/probemanager/doc.go | 2 | ||||
| -rw-r--r-- | internal/probemanager/manager.go | 9 |
2 files changed, 11 insertions, 0 deletions
diff --git a/internal/probemanager/doc.go b/internal/probemanager/doc.go new file mode 100644 index 0000000..dd940b4 --- /dev/null +++ b/internal/probemanager/doc.go @@ -0,0 +1,2 @@ +// Package probemanager tracks probe enablement state and runtime toggling operations. +package probemanager diff --git a/internal/probemanager/manager.go b/internal/probemanager/manager.go index b991c7c..7feb407 100644 --- a/internal/probemanager/manager.go +++ b/internal/probemanager/manager.go @@ -50,6 +50,7 @@ type Manager struct { closed bool } +// NewManager creates a new probe manager that resolves programs via attacher. func NewManager(attacher Attacher) *Manager { return &Manager{ attacher: attacher, @@ -57,6 +58,7 @@ func NewManager(attacher Attacher) *Manager { } } +// Register registers the enter/exit tracepoint pair for a syscall key. func (m *Manager) Register(syscall string, pair TracepointPair) { if m == nil || syscall == "" { return @@ -74,6 +76,7 @@ func (m *Manager) Register(syscall string, pair TracepointPair) { entry.exitTP = pair.Exit } +// AttachAll registers and attaches all tracepoint pairs selected by shouldAttach. func (m *Manager) AttachAll(shouldAttach func(string) bool, tpNames []string) error { if m == nil { return errors.New("probe manager is nil") @@ -95,6 +98,7 @@ func (m *Manager) AttachAll(shouldAttach func(string) bool, tpNames []string) er return nil } +// Toggle flips a syscall probe between attached and detached states. func (m *Manager) Toggle(syscall string) error { if m == nil { return errors.New("probe manager is nil") @@ -118,6 +122,7 @@ func (m *Manager) Toggle(syscall string) error { return m.Attach(syscall) } +// Attach attaches enter/exit tracepoints for a registered syscall. func (m *Manager) Attach(syscall string) error { if syscall == "" { return errors.New("syscall is required") @@ -167,6 +172,7 @@ func (m *Manager) Attach(syscall string) error { return nil } +// Detach detaches enter/exit tracepoints for a registered syscall. func (m *Manager) Detach(syscall string) error { if syscall == "" { return errors.New("syscall is required") @@ -220,6 +226,7 @@ func (m *Manager) Detach(syscall string) error { return combined } +// States returns a stable snapshot of all known probe states. func (m *Manager) States() []ProbeState { if m == nil { return nil @@ -243,6 +250,7 @@ func (m *Manager) States() []ProbeState { return out } +// ActiveCount returns the number of active probes and total registered probes. func (m *Manager) ActiveCount() (active, total int) { if m == nil { return 0, 0 @@ -276,6 +284,7 @@ func (m *Manager) IsActive(syscall string) bool { return entry.active } +// Close detaches all registered probes and marks the manager closed. func (m *Manager) Close() error { if m == nil { return nil |
