-
Notifications
You must be signed in to change notification settings - Fork 9
/
ServiceDefinition.go
37 lines (32 loc) · 1.18 KB
/
ServiceDefinition.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
package tmallsc
import (
"sync"
)
// ServiceDefinition 结构体
type ServiceDefinition struct {
// 服务内容list
ServiceContents []ServiceContent `json:"service_contents,omitempty" xml:"service_contents>service_content,omitempty"`
// 服务属性
ServiceProperties []ServiceProperty `json:"service_properties,omitempty" xml:"service_properties>service_property,omitempty"`
// 服务对象类型
ServiceObjectType string `json:"service_object_type,omitempty" xml:"service_object_type,omitempty"`
// 服务对象类型名称
ServiceObjectTypeName string `json:"service_object_type_name,omitempty" xml:"service_object_type_name,omitempty"`
}
var poolServiceDefinition = sync.Pool{
New: func() any {
return new(ServiceDefinition)
},
}
// GetServiceDefinition() 从对象池中获取ServiceDefinition
func GetServiceDefinition() *ServiceDefinition {
return poolServiceDefinition.Get().(*ServiceDefinition)
}
// ReleaseServiceDefinition 释放ServiceDefinition
func ReleaseServiceDefinition(v *ServiceDefinition) {
v.ServiceContents = v.ServiceContents[:0]
v.ServiceProperties = v.ServiceProperties[:0]
v.ServiceObjectType = ""
v.ServiceObjectTypeName = ""
poolServiceDefinition.Put(v)
}