openai/openai-dotnet

Public

mirrored from https://github.com/openai/openai-dotnetAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
OpenAI_2.0.0-beta.1

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

src/Utility/GenericActionPipelinePolicy.cs

34lines · modecode

1using System;
2using System.ClientModel.Primitives;
3using System.Collections.Generic;
4using System.Threading.Tasks;
5
6namespace OpenAI;
7
8internal partial class GenericActionPipelinePolicy : PipelinePolicy
9{
10 private Action<PipelineMessage> _processMessageAction;
11
12 public GenericActionPipelinePolicy(Action<PipelineMessage> processMessageAction)
13 {
14 _processMessageAction = processMessageAction;
15 }
16
17 public override void Process(PipelineMessage message, IReadOnlyList<PipelinePolicy> pipeline, int currentIndex)
18 {
19 _processMessageAction(message);
20 if (currentIndex < pipeline.Count - 1)
21 {
22 pipeline[currentIndex + 1].Process(message, pipeline, currentIndex + 1);
23 }
24 }
25
26 public override async ValueTask ProcessAsync(PipelineMessage message, IReadOnlyList<PipelinePolicy> pipeline, int currentIndex)
27 {
28 _processMessageAction(message);
29 if (currentIndex < pipeline.Count - 1)
30 {
31 await pipeline[currentIndex + 1].ProcessAsync(message, pipeline, currentIndex + 1);
32 }
33 }
34}