istio

Форк
0
/
context.go 
72 строки · 2.0 Кб
1
// Copyright Istio Authors
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
//     http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14

15
package fw
16

17
import (
18
	"html/template"
19

20
	"github.com/gorilla/mux"
21
)
22

23
// Topic is used to describe a single major ControlZ functional area.
24
type Topic interface {
25
	// Title returns the title for the area, which will be used in the sidenav and window title.
26
	Title() string
27

28
	// Prefix is the name used to reference this functionality in URLs.
29
	Prefix() string
30

31
	// Activate triggers a topic to register itself to receive traffic.
32
	Activate(TopicContext)
33
}
34

35
// TopicContext provides support objects needed to register a topic.
36
type TopicContext interface {
37
	// HTMLRouter is used to control HTML traffic delivered to this topic.
38
	HTMLRouter() *mux.Router
39

40
	// JSONRouter is used to control HTML traffic delivered to this topic.
41
	JSONRouter() *mux.Router
42

43
	// Layout is the template used as the primary layout for the topic's HTML content.
44
	Layout() *template.Template
45
}
46

47
type context struct {
48
	htmlRouter *mux.Router
49
	jsonRouter *mux.Router
50
	layout     *template.Template
51
}
52

53
// NewContext creates a new TopicContext.
54
func NewContext(htmlRouter *mux.Router, jsonRouter *mux.Router, layout *template.Template) TopicContext {
55
	return context{
56
		htmlRouter: htmlRouter,
57
		jsonRouter: jsonRouter,
58
		layout:     layout,
59
	}
60
}
61

62
func (c context) HTMLRouter() *mux.Router {
63
	return c.htmlRouter
64
}
65

66
func (c context) JSONRouter() *mux.Router {
67
	return c.jsonRouter
68
}
69

70
func (c context) Layout() *template.Template {
71
	return c.layout
72
}
73

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.