func()

in plugins/forwarder/grpc/nativeebpfprofiling/forwarder.go [112:134]


func (f *Forwarder) SyncForward(e *v1.SniffData) (*v1.SniffData, error) {
	switch data := e.GetData().(type) {
	case *v1.SniffData_EBPFProfilingTaskQuery:
		commands, err := f.profilingClient.QueryTasks(context.Background(), data.EBPFProfilingTaskQuery)
		if err != nil {
			return nil, err
		}
		return &v1.SniffData{Data: &v1.SniffData_Commands{Commands: commands}}, nil
	case *v1.SniffData_ContinuousProfilingPolicyQuery:
		commands, err := f.continuousClient.QueryPolicies(context.Background(), data.ContinuousProfilingPolicyQuery)
		if err != nil {
			return nil, err
		}
		return &v1.SniffData{Data: &v1.SniffData_Commands{Commands: commands}}, nil
	case *v1.SniffData_ContinuousProfilingReport:
		commands, err := f.continuousClient.ReportProfilingTask(context.Background(), data.ContinuousProfilingReport)
		if err != nil {
			return nil, err
		}
		return &v1.SniffData{Data: &v1.SniffData_Commands{Commands: commands}}, nil
	}
	return nil, fmt.Errorf("unsupported data type %T", e.GetData())
}