-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinterfaces.go
99 lines (71 loc) · 5.14 KB
/
interfaces.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
package transport
import (
"crypto/tls"
"net/http"
"time"
"github.com/webnice/transport/v4/request"
)
// Interface is an interface of object
type Interface interface {
// RequestPoolSize Назначение количества процессов в бассейне выполнения запросов.
RequestPoolSize(n uint16) Interface
// ProxyFunc Назначение функции настроек прокси для выполнения запросов.
ProxyFunc(f ProxyFunc) Interface
// ProxyConnectHeader Назначение заголовков запроса установки соединения с прокси сервером.
ProxyConnectHeader(v http.Header) Interface
// DialContextTimeout Назначение максимального вреени ожидания на загрузку контента. 0-не ограничено.
DialContextTimeout(t time.Duration) Interface
// DialContextKeepAlive Назначение времени поддержания не активного соединения до его разрыва. 0-без ограничений.
DialContextKeepAlive(t time.Duration) Interface
// MaximumIdleConnections Назначение максимального количества открытых не активных соединений. 0-без ограничений.
MaximumIdleConnections(v uint) Interface
// MaximumIdleConnectionsPerHost Назначение максимального количества открытых не активных соединений для
// каждого хоста. 0-без ограничений.
MaximumIdleConnectionsPerHost(v uint) Interface
// IdleConnectionTimeout Назначение максимального количества открытых не активных соединений для всех
// хостов. 0-без ограничений.
IdleConnectionTimeout(t time.Duration) Interface
// TLSHandshakeTimeout Назначение максимального времени ожидания обмена рукопожатиями по протоколу
// TLS. 0-без ограничений.
TLSHandshakeTimeout(t time.Duration) Interface
// TLSSkipVerify Установка режима отключения проверки TLS сертификатов.
TLSSkipVerify(v bool) Interface
// TLSClientConfig Настройки клиента TLS соединения.
// Если =nil-используются настройки по умолчанию из стандартной библиотеки.
TLSClientConfig(v *tls.Config) Interface
// DialTLS Назначение функции установки TLS соединения для запросов к HTTPS хостам.
DialTLS(fn DialTLSFunc) Interface
// DialContextCustomFunc Назначение функции установки не шифрованного соединения с хостами.
DialContextCustomFunc(fn DialContextFunc) Interface
// DualStack Включение или отключения функции "Happy Eyeballs" RFC 6555.
DualStack(v bool) Interface
// TotalTimeout Установка ограничения времени на выполнение запроса и загрузку всех данных
// ответа. 0-без ограничений.
TotalTimeout(t time.Duration) Interface
// Transport Объект http транспорта.
Transport(tr *http.Transport) Interface
// CookieJar Интерфейс объекта печенек.
CookieJar(v http.CookieJar) Interface
// RequestGet Получение из бассейна объекта request.Interface.
// Полученный объект обязательно необходимо вернуть в бассейн методом RequestPut для избежания утечки памяти.
RequestGet() request.Interface
// RequestPut Возвращение в бассейн объекта request.Interface.
RequestPut(req request.Interface)
// Client Получение клиента http.Client.
// В пределах одного экземпляра transport.impl, http.Client создаётся только один раз
// при первом вызове данной функции. Эта функция так же вызывается при первом вызове функции Do().
Client() *http.Client
// Do Выполнение запроса в асинхронном режиме.
Do(req request.Interface) Interface
// Done Остановка процессов работников, завершение соединений.
Done()
// DebugFunc Включение или отключение режима отладки.
// Если передана функция отладки не равная nil, режим отладки включается.
// Передача функции отладки равной nil отключает режим отладки.
DebugFunc(fn DebugFunc) Interface
// ОШИБКИ
// Error Последняя ошибка.
Error() error
// ErrorFunc Регистрация функции получения ошибок транспорта.
ErrorFunc(fn ErrorFunc) Interface
}