gcore

package
v0.0.0-...-8506bae Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 30, 2024 License: MIT Imports: 14 Imported by: 7

Documentation

Index

Constants

View Source
const (
	DefaultProviderKey = "default"
)

Variables

View Source
var DefaultCookieOptions = &CookieOptions{
	MaxAge:   0,
	Path:     "/",
	Domain:   "",
	Secure:   false,
	HTTPOnly: true,
}
View Source
var MatchedRoutePathParam = "$matchedRoutePath"

MatchedRoutePathParam is the Param name under which the path of the matched route is stored, if Router.SaveMatchedRoutePath is set.

View Source
var ParamsKey = paramsKey{}

ParamsKey is the request context key under which URL params are stored.

Functions

func RegisterAPIServer

func RegisterAPIServer(key string, apiServer APIServerProvider)

func RegisterApp

func RegisterApp(key string, app AppProvider)

func RegisterCache

func RegisterCache(key string, cache CacheProvider)

func RegisterConfig

func RegisterConfig(key string, config ConfigProvider)

func RegisterController

func RegisterController(key string, controller ControllerProvider)

func RegisterCookies

func RegisterCookies(key string, cookies CookiesProvider)

func RegisterCtx

func RegisterCtx(key string, ctx CtxProvider)

func RegisterDatabase

func RegisterDatabase(key string, database DatabaseProvider)

func RegisterDatabaseGroup

func RegisterDatabaseGroup(key string, databaseGroup DatabaseGroupProvider)

func RegisterError

func RegisterError(key string, error ErrorProvider)

func RegisterHTTPRouter

func RegisterHTTPRouter(key string, router HTTPRouterProvider)

func RegisterHTTPServer

func RegisterHTTPServer(key string, httpServer HTTPServerProvider)

func RegisterI18n

func RegisterI18n(key string, i18n I18nProvider)

func RegisterLogger

func RegisterLogger(key string, logger LoggerProvider)

func RegisterSession

func RegisterSession(key string, session SessionProvider)

func RegisterSessionStorage

func RegisterSessionStorage(key string, sessionStorage SessionStorageProvider)

func RegisterTemplate

func RegisterTemplate(key string, template TemplateProvider)

func RegisterView

func RegisterView(key string, view ViewProvider)

Types

type APIServer

type APIServer interface {
	Run() error
	Address() string
	Server() *http.Server
	Router() HTTPRouter
	SetTLSFile(certFile, keyFile string)
	SetLogger(l Logger)
	Logger() Logger
	AddMiddleware0(m Middleware)
	AddMiddleware1(m Middleware)
	AddMiddleware2(m Middleware)
	AddMiddleware3(m Middleware)
	SetNotFoundHandler(handle func(ctx Ctx))
	SetErrorHandler(handle func(ctx Ctx, err interface{}))
	ShowErrorStack(isShow bool)
	Ext(ext string)
	API(path string, handle func(ctx Ctx), ext ...string)
	Group(path string) APIServer
	PrintRouteTable(w io.Writer)
	ActiveConnCount() int64
	SetLog(l Logger)
	Listeners() []net.Listener
	Listener() net.Listener
	Ctx() Ctx
	ListenerFactory() func(addr string) (net.Listener, error)
	SetListenerFactory(listenerFactory func(addr string) (net.Listener, error))
	ServeEmbedFS(fs embed.FS, urlPath string)
	ServeFiles(rootPath, urlPath string)
}

type APIServerProvider

type APIServerProvider func(ctx Ctx, address string) (APIServer, error)

func ProviderAPIServer

func ProviderAPIServer(key ...string) APIServerProvider

type ActiveRecord

type ActiveRecord interface {
	Cache(key string, seconds uint) ActiveRecord
	Delete(table string, where map[string]interface{}) ActiveRecord
	From(from string) ActiveRecord
	FromAs(from, as string) ActiveRecord
	GroupBy(column string) ActiveRecord
	Having(having string) ActiveRecord
	HavingWrap(having, leftWrap, rightWrap string) ActiveRecord
	Insert(table string, data map[string]interface{}) ActiveRecord
	InsertBatch(table string, data []map[string]interface{}) ActiveRecord
	Join(table, as, on, typ string) ActiveRecord
	Limit(limit ...int) ActiveRecord
	OrderBy(column, typ string) ActiveRecord
	Raw(sql string, values ...interface{}) ActiveRecord
	Replace(table string, data map[string]interface{}) ActiveRecord
	ReplaceBatch(table string, data []map[string]interface{}) ActiveRecord
	Reset()
	Select(columns string) ActiveRecord
	SelectNoWrap(columns string) ActiveRecord
	Set(column string, value interface{}) ActiveRecord
	SetNoWrap(column string, value interface{}) ActiveRecord
	SQL() string
	Update(table string, data, where map[string]interface{}) ActiveRecord
	UpdateBatch(table string, values []map[string]interface{}, whereColumn []string) ActiveRecord
	Values() []interface{}
	Where(where map[string]interface{}) ActiveRecord
	WhereWrap(where map[string]interface{}, leftWrap, rightWrap string) ActiveRecord
	WhereRaw(where string) ActiveRecord
	Wrap(v string) string
}

ActiveRecord gmc abstract sql statement builder layer.

type App

type App interface {
	SetConfigFile(file string)
	SetConfig(cfg Config)
	AttachConfigFile(id, file string)
	AttachConfig(id string, cfg Config)
	Config(id ...string) Config
	Run() (err error)
	OnRun(fn func(Config) (err error))
	OnShutdown(fn func())
	SetBlock(isBlockRun bool)
	AddService(item ServiceItem)
	SetLogger(logger Logger)
	Logger() Logger
	Stop()
	Ctx() Ctx
	SetCtx(Ctx)
}

App gmc abstract app layer, to run gmc service or common purpose.

type AppProvider

type AppProvider func(isDefault bool) App

func ProviderApp

func ProviderApp(key ...string) AppProvider

type AutoProvider

type AutoProvider struct {
	// contains filtered or unexported fields
}

func NewAutoProvider

func NewAutoProvider() *AutoProvider

func (*AutoProvider) APIServer

func (p *AutoProvider) APIServer(key ...string) APIServerProvider

func (*AutoProvider) App

func (p *AutoProvider) App(key ...string) AppProvider

func (*AutoProvider) Cache

func (p *AutoProvider) Cache(key ...string) CacheProvider

func (*AutoProvider) Config

func (p *AutoProvider) Config(key ...string) ConfigProvider

func (*AutoProvider) Controller

func (p *AutoProvider) Controller(key ...string) ControllerProvider

func (*AutoProvider) Cookies

func (p *AutoProvider) Cookies(key ...string) CookiesProvider

func (*AutoProvider) Ctx

func (p *AutoProvider) Ctx(key ...string) CtxProvider

func (*AutoProvider) Database

func (p *AutoProvider) Database(key ...string) DatabaseProvider

func (*AutoProvider) DatabaseGroup

func (p *AutoProvider) DatabaseGroup(key ...string) DatabaseGroupProvider

func (*AutoProvider) Error

func (p *AutoProvider) Error(key ...string) ErrorProvider

func (*AutoProvider) HTTPRouter

func (p *AutoProvider) HTTPRouter(key ...string) HTTPRouterProvider

func (*AutoProvider) HTTPServer

func (p *AutoProvider) HTTPServer(key ...string) HTTPServerProvider

func (*AutoProvider) I18n

func (p *AutoProvider) I18n(key ...string) I18nProvider

func (*AutoProvider) Logger

func (p *AutoProvider) Logger(key ...string) LoggerProvider

func (*AutoProvider) RegisterAPIServer

func (p *AutoProvider) RegisterAPIServer(key string, apiServer APIServerProvider)

func (*AutoProvider) RegisterApp

func (p *AutoProvider) RegisterApp(key string, app AppProvider)

func (*AutoProvider) RegisterCache

func (p *AutoProvider) RegisterCache(key string, cache CacheProvider)

func (*AutoProvider) RegisterConfig

func (p *AutoProvider) RegisterConfig(key string, config ConfigProvider)

func (*AutoProvider) RegisterController

func (p *AutoProvider) RegisterController(key string, controller ControllerProvider)

func (*AutoProvider) RegisterCookies

func (p *AutoProvider) RegisterCookies(key string, cookies CookiesProvider)

func (*AutoProvider) RegisterCtx

func (p *AutoProvider) RegisterCtx(key string, ctx CtxProvider)

func (*AutoProvider) RegisterDatabase

func (p *AutoProvider) RegisterDatabase(key string, database DatabaseProvider)

func (*AutoProvider) RegisterDatabaseGroup

func (p *AutoProvider) RegisterDatabaseGroup(key string, databaseGroup DatabaseGroupProvider)

func (*AutoProvider) RegisterError

func (p *AutoProvider) RegisterError(key string, error ErrorProvider)

func (*AutoProvider) RegisterHTTPRouter

func (p *AutoProvider) RegisterHTTPRouter(key string, router HTTPRouterProvider)

func (*AutoProvider) RegisterHTTPServer

func (p *AutoProvider) RegisterHTTPServer(key string, httpServer HTTPServerProvider)

func (*AutoProvider) RegisterI18n

func (p *AutoProvider) RegisterI18n(key string, i18n I18nProvider)

func (*AutoProvider) RegisterLogger

func (p *AutoProvider) RegisterLogger(key string, logger LoggerProvider)

func (*AutoProvider) RegisterSession

func (p *AutoProvider) RegisterSession(key string, session SessionProvider)

func (*AutoProvider) RegisterSessionStorage

func (p *AutoProvider) RegisterSessionStorage(key string, sessionStorage SessionStorageProvider)

func (*AutoProvider) RegisterTemplate

func (p *AutoProvider) RegisterTemplate(key string, template TemplateProvider)

func (*AutoProvider) RegisterView

func (p *AutoProvider) RegisterView(key string, view ViewProvider)

func (*AutoProvider) Session

func (p *AutoProvider) Session(key ...string) SessionProvider

func (*AutoProvider) SessionStorage

func (p *AutoProvider) SessionStorage(key ...string) SessionStorageProvider

func (*AutoProvider) Template

func (p *AutoProvider) Template(key ...string) TemplateProvider

func (*AutoProvider) View

func (p *AutoProvider) View(key ...string) ViewProvider

type Cache

type Cache interface {
	// Has returns true if cached value exists.
	Has(key string) (bool, error)
	// Clear deletes all cached data.
	Clear() error
	// String returns info about this driver.
	String() string
	// Get gets cached value by given key.
	Get(key string) (string, error)
	// Put puts value into cache with key and expire time.
	Set(key string, value string, ttl time.Duration) error
	// Delete deletes cached value by given key.
	Del(key string) error
	// GetMulti gets multiple keys's values at once.
	GetMulti(keys []string) (map[string]string, error)
	// SetMulti sets multiple keys's values at once.
	SetMulti(values map[string]string, ttl time.Duration) (err error)
	// DelMulti deletes multiple keys's values at once.
	DelMulti(keys []string) (err error)
	// Incr increases cached int-type value by given key as a counter.
	Incr(key string) (int64, error)
	// Decr decreases cached int-type value by given key as a counter.
	Decr(key string) (int64, error)
	// Incr increases N cached int-type value by given key as a counter.
	IncrN(key string, n int64) (int64, error)
	// Decr decreases N cached int-type value by given key as a counter.
	DecrN(key string, n int64) (int64, error)
}

Cache gmc abstract cache layer, to access cache.

type CacheProvider

type CacheProvider func(ctx Ctx) (Cache, error)

func ProviderCache

func ProviderCache(key ...string) CacheProvider

type CommonConfig

type CommonConfig interface {
	SetConfigFile(in string)
	SetEnvPrefix(in string)
	AllowEmptyEnv(allowEmptyEnv bool)
	ConfigFileUsed() string
	AddConfigPath(in string)
	SetTypeByDefaultValue(enable bool)
	Get(key string) interface{}
	GetString(key string) string
	GetBool(key string) bool
	GetInt(key string) int
	GetInt32(key string) int32
	GetInt64(key string) int64
	GetUint(key string) uint
	GetUint32(key string) uint32
	GetUint64(key string) uint64
	GetFloat64(key string) float64
	GetTime(key string) time.Time
	GetDuration(key string) time.Duration
	GetIntSlice(key string) []int
	GetStringSlice(key string) []string
	GetStringMap(key string) map[string]interface{}
	GetStringMapString(key string) map[string]string
	GetStringMapStringSlice(key string) map[string][]string
	GetSizeInBytes(key string) uint
	BindEnv(input ...string) error
	IsSet(key string) bool
	AutomaticEnv()
	SetEnvKeyReplacer(r *strings.Replacer)
	RegisterAlias(alias string, key string)
	InConfig(key string) bool
	SetDefault(key string, value interface{})
	Set(key string, value interface{})
	ReadInConfig() error
	MergeInConfig() error
	ReadConfig(in io.Reader) error
	MergeConfig(in io.Reader) error
	MergeConfigMap(cfg map[string]interface{}) error
	WriteConfig() error
	SafeWriteConfig() error
	WriteConfigAs(filename string) error
	SafeWriteConfigAs(filename string) error
	AllKeys() []string
	AllSettings() map[string]interface{}
	SetConfigName(in string)
	SetConfigType(in string)
	SetConfigPermissions(perm os.FileMode)
	Debug()
}

CommonConfig gmc basic abstract config layer.

type Config

type Config interface {
	CommonConfig
	Sub(key string) SubConfig
}

Config gmc abstract config layer, to access config.

type ConfigProvider

type ConfigProvider func() Config

func ProviderConfig

func ProviderConfig(key ...string) ConfigProvider

type Controller

type Controller interface {
	MethodCallPre(ctx Ctx)
	MethodCallPost()
	Tr(key string, defaultText ...string) string
	Die(msg ...interface{})
	Stop(msg ...interface{})
	StopE(err interface{}, fn ...func())
	SessionStart() (err error)
	SessionDestroy() (err error)
	Write(data ...interface{}) (n int, err error)
	WriteE(data ...interface{}) (n int, err error)
	GetCtx() Ctx
	GetParam() Params
	GetSession() Session
	GetTemplate() Template
	GetI18n() I18n
	GetSessionStore() SessionStorage
	GetRouter() HTTPRouter
	GetCookie() Cookies
	GetView() View
	GetLang() string
	GetLogger() Logger
	GetConfig() Config
}

type ControllerProvider

type ControllerProvider func(ctx Ctx) Controller

func ProviderController

func ProviderController(key ...string) ControllerProvider

type CookieOptions

type CookieOptions struct {
	MaxAge   int    // optional
	Path     string // optional, default to "/"
	Domain   string // optional
	Secure   bool   // optional
	HTTPOnly bool   // optional, default to `true“
}

CookieOptions is used to setting cookie.

type Cookies

type Cookies interface {
	Get(name string) (value string, err error)
	Set(name, val string, options ...*CookieOptions)
	Remove(name string, options ...*CookieOptions)
}

type CookiesProvider

type CookiesProvider func(ctx Ctx) Cookies

func ProviderCookies

func ProviderCookies(key ...string) CookiesProvider

type Ctx

type Ctx interface {
	Conn() net.Conn
	SetConn(conn net.Conn)
	RemoteAddr() string
	SetRemoteAddr(remoteAddr string)
	Template() Template
	SetTemplate(template Template)
	I18n() I18n
	SetI18n(i18n I18n)
	Config() Config
	SetConfig(config Config)
	Logger() Logger
	SetLogger(logger Logger)
	App() App
	SetApp(app App)
	Clone() Ctx
	CloneWithHTTP(w http.ResponseWriter, r *http.Request, ps ...Params) Ctx
	APIServer() APIServer
	SetAPIServer(apiServer APIServer)
	WebServer() HTTPServer
	SetWebServer(webServer HTTPServer)
	LocalAddr() string
	SetLocalAddr(localAddr string)
	Param() Params
	GetParam(key string) string
	Request() *http.Request
	SetRequest(request *http.Request)
	Response() http.ResponseWriter
	SetResponse(response http.ResponseWriter)
	SetParam(param Params)
	TimeUsed() time.Duration
	SetTimeUsed(t time.Duration)
	Write(data ...interface{}) (n int, err error)
	WriteTo(w io.Writer, data ...interface{}) (n int, err error)
	WriteE(data ...interface{}) (n int, err error)
	WriteHeader(statusCode int)
	StatusCode() int
	Status(code int)
	WriteCount() int64
	IsPOST() bool
	IsGET() bool
	IsPUT() bool
	IsDELETE() bool
	IsPATCH() bool
	IsHEAD() bool
	IsOPTIONS() bool
	IsAJAX() bool
	IsWebsocket() bool
	Stop(msg ...interface{})
	StopJSON(code int, msg interface{})
	ClientIP() (ip string)
	NewPager(perPage int, total int64) Paginator
	GET(key string, Default ...string) (val string)
	GETArray(key string, Default ...string) (val []string)
	GETData() (data map[string]string)
	POST(key string, Default ...string) (val string)
	POSTArray(key string, Default ...string) (val []string)
	POSTData() (data map[string]string)
	GetPost(key string, Default ...string) (val string)
	Host() (host string)
	JSON(code int, data interface{}) (err error)
	JSONTo(w io.Writer, code int, data interface{}) (err error)
	PrettyJSON(code int, data interface{}) (err error)
	PrettyJSONTo(w io.Writer, code int, data interface{}) (err error)
	JSONP(code int, data interface{}) (err error)
	JSONPTo(w io.Writer, code int, data interface{}) (err error)
	Redirect(url string) (val string)
	SetHeader(key, value string)
	Header(key string) string
	RequestBody() ([]byte, error)
	SetCookie(name, value string, maxAge int, path, domain string, secure, httpOnly bool)
	Cookie(name string) string
	WriteFile(filepath string)
	WriteFileFromFS(filepath string, fs http.FileSystem)
	WriteFileAttachment(filepath, filename string)
	FullPath() string
	Set(key interface{}, value interface{})
	Get(key interface{}) (value interface{}, exists bool)
	MustGet(key interface{}) (v interface{})
	FormFile(name string, maxMultipartMemory int64) (*multipart.FileHeader, error)
	MultipartForm(maxMultipartMemory int64) (*multipart.Form, error)
	SaveUploadedFile(file *multipart.FileHeader, dst string) error
	ControllerMethod() string
	SetControllerMethod(controllerMethod string)
	IsTLSRequest() bool
	Controller() Controller
	SetController(controller Controller)
}

Ctx gmc context layer in gmc web.

func GetCtx

func GetCtx(w http.ResponseWriter) Ctx

type CtxProvider

type CtxProvider func() Ctx

func ProviderCtx

func ProviderCtx(key ...string) CtxProvider

type DBCache

type DBCache interface {
	Set(key string, val []byte, expire uint) (err error)
	Get(key string) (data []byte, err error)
}

DBCache gmc abstract db cache layer, to cache db query.

type Database

type Database interface {
	AR() (ar ActiveRecord)
	Stats() sql.DBStats
	Begin() (tx *sql.Tx, err error)
	ExecTx(ar ActiveRecord, tx *sql.Tx) (rs ResultSet, err error)
	ExecSQLTx(tx *sql.Tx, sqlStr string, values ...interface{}) (rs ResultSet, err error)
	Exec(ar ActiveRecord) (rs ResultSet, err error)
	ExecSQL(sqlStr string, values ...interface{}) (rs ResultSet, err error)
	QuerySQL(sqlStr string, values ...interface{}) (rs ResultSet, err error)
	Query(ar ActiveRecord) (rs ResultSet, err error)
}

Database gmc abstract db access layer, to connect to db and execute sql.

type DatabaseGroup

type DatabaseGroup interface {
	RegistGroup(cfg interface{}) (err error)
	Regist(name string, cfg interface{}) (err error)
	DB(name ...string) (db Database)
}

type DatabaseGroupProvider

type DatabaseGroupProvider func(ctx Ctx) (DatabaseGroup, error)

func ProviderDatabaseGroup

func ProviderDatabaseGroup(key ...string) DatabaseGroupProvider

type DatabaseProvider

type DatabaseProvider func(ctx Ctx) (Database, error)

func ProviderDatabase

func ProviderDatabase(key ...string) DatabaseProvider

type Error

type Error interface {
	New(e interface{}) Error
	StackError(e interface{}) string
	Wrap(e interface{}) Error
	WrapN(e interface{}, skip int) Error
	WrapPrefix(e interface{}, prefix string, skip int) Error
	WrapPrefixN(e interface{}, prefix string, skip int) Error
	Errorf(format string, a ...interface{}) Error
	Error() string
	Stack() []byte
	StackStr() string
	String() string
	Callers() []uintptr
	ErrorStack() string
	StackFrames() []StackFrame
	TypeName() string
	Recover(f ...interface{})
}

type ErrorProvider

type ErrorProvider func() Error

func ProviderError

func ProviderError(key ...string) ErrorProvider

type HTTPRouter

type HTTPRouter interface {
	Group(ns string) HTTPRouter
	Namespace() string
	Ext(ext string)
	Controller(urlPath string, obj Controller, ext ...string)
	PrintRouteTable(w io.Writer)
	RouteTable() (table map[string][]string)
	ControllerMethod(urlPath string, obj Controller, method string)
	Handle(method, path string, handle Handle)
	HandleAny(path string, handle Handle)
	Handler(method, path string, handler http.Handler)
	HandlerAny(path string, handler http.Handler)
	HandlerFunc(method, path string, handler http.HandlerFunc)
	HandlerFuncAny(path string, handler http.HandlerFunc)
	GET(path string, handle Handle)
	HEAD(path string, handle Handle)
	OPTIONS(path string, handle Handle)
	POST(path string, handle Handle)
	PUT(path string, handle Handle)
	PATCH(path string, handle Handle)
	DELETE(path string, handle Handle)
	ServeFiles(path string, root http.FileSystem)
	Lookup(method, path string) (Handle, Params, bool)
	ServeHTTP(w http.ResponseWriter, req *http.Request)
}

type HTTPRouterProvider

type HTTPRouterProvider func(ctx Ctx) HTTPRouter

func ProviderHTTPRouter

func ProviderHTTPRouter(key ...string) HTTPRouterProvider

type HTTPServer

type HTTPServer interface {
	SetNotFoundHandler(fn func(ctx Ctx, tpl Template))
	SetErrorHandler(fn func(ctx Ctx, tpl Template, err interface{}))
	AddFuncMap(f map[string]interface{})
	SetConfig(c Config)
	Config() Config
	ActiveConnCount() int64
	Listener() net.Listener
	Listeners() []net.Listener
	Server() *http.Server
	SetLogger(l Logger)
	Logger() Logger
	SetRouter(r HTTPRouter)
	Router() HTTPRouter
	SetTpl(t Template)
	Tpl() Template
	SetSessionStore(st SessionStorage)
	SessionStore() SessionStorage
	AddMiddleware0(m Middleware)
	AddMiddleware1(m Middleware)
	AddMiddleware2(m Middleware)
	AddMiddleware3(m Middleware)
	PrintRouteTable(w io.Writer)
	SetLog(l Logger)
	Ctx() Ctx
	ListenerFactory() func(addr string) (net.Listener, error)
	SetListenerFactory(listenerFactory func(addr string) (net.Listener, error))
	SetBinBytes(binData map[string][]byte)
	Listen() (err error)
	ListenTLS() (err error)
	SetCtx(ctx Ctx)
	ServeEmbedFS(fs embed.FS, urlPath string)
	ServeFiles(rootPath, urlPath string)
}

type HTTPServerProvider

type HTTPServerProvider func(ctx Ctx) HTTPServer

func ProviderHTTPServer

func ProviderHTTPServer(key ...string) HTTPServerProvider

type Handle

type Handle func(http.ResponseWriter, *http.Request, Params)

Handle is a function that can be registered to a route to handle HTTP requests. Like http.HandlerFunc, but has a third parameter for the values of wildcards (path variables).

type Handler

type Handler func(ctx Ctx)

type I18n

type I18n interface {
	Add(lang string, data map[string]string)
	Lang(lang string)
	String(lang string)
	Tr(lang, key string, defaultMessage ...string) string
	TrLangs(langs []string, key string, defaultMessage ...string) string
	TrV(lang, key string, defaultMessage ...string) template.HTML
	ParseAcceptLanguageStr(s string) (str string, err error)
	ParseAcceptLanguageStrT(s string) (t language.Tag, err error)
	ParseAcceptLanguage(r *http.Request) (strs []string, err error)
	ParseAcceptLanguageT(r *http.Request) (tags []language.Tag, err error)
	Languages() (languages []string, err error)
	LanguagesT() (languages []language.Tag, err error)
	MatchT(languages []language.Tag) (t language.Tag, err error)
	MatchAcceptLanguageT(r *http.Request) (tag language.Tag, err error)
	Clone(lang string) I18n
}

type I18nProvider

type I18nProvider func(ctx Ctx) (I18n, error)

func ProviderI18n

func ProviderI18n(key ...string) I18nProvider

type LogFlag

type LogFlag int
const (
	LogFlagNormal LogFlag = iota + 1
	LogFlagShort
	LogFlagLong
)

type LogLevel

type LogLevel int
const (
	LogLevelTrace LogLevel = iota + 1
	LogLeveDebug
	LogLeveInfo
	LogLeveWarn
	LogLeveError
	LogLevePanic
	LogLeveFatal
	LogLeveNone
)

type Logger

type Logger interface {
	Panic(v ...interface{})
	Panicf(format string, v ...interface{})

	Fatal(v ...interface{})
	Fatalf(format string, v ...interface{})

	Error(v ...interface{})
	Errorf(format string, v ...interface{})

	Warn(v ...interface{})
	Warnf(format string, v ...interface{})

	Info(v ...interface{})
	Infof(format string, v ...interface{})

	Debug(v ...interface{})
	Debugf(format string, v ...interface{})

	Trace(v ...interface{})
	Tracef(format string, v ...interface{})

	Level() LogLevel
	SetLevel(LogLevel)

	With(name string) Logger
	Namespace() string

	Writer() LoggerWriter
	AddWriter(LoggerWriter) Logger
	AddLevelWriter(io.Writer, LogLevel) Logger
	AddLevelsWriter(io.Writer, ...LogLevel) Logger
	SetOutput(LoggerWriter)
	SetFlag(f LogFlag)

	Async() bool
	WaitAsyncDone()
	EnableAsync()

	CallerSkip() int
	SetCallerSkip(callerSkip int)
	Write(string, LogLevel)
	WriteRaw(string, LogLevel)

	ExitCode() int
	SetExitCode(exitCode int)
	ExitFunc() func(int)
	SetExitFunc(exitFunc func(int))

	WithRate(duration time.Duration) Logger
	SetRateCallback(cb func(msg string)) Logger
	SetTimeLayout(layout string)
	SetAsyncBufferSize(asyncBufferSize int)
	SetErrHandler(errHandler func(error))
}

type LoggerProvider

type LoggerProvider func(ctx Ctx, prefix string) Logger

func ProviderLogger

func ProviderLogger(key ...string) LoggerProvider

type LoggerWriter

type LoggerWriter interface {
	Write(p []byte, level LogLevel) (n int, err error)
}

type Middleware

type Middleware func(ctx Ctx) (isStop bool)

type Paginator

type Paginator interface {
	MaxPages() int
	SetMaxPages(maxPages int)
	PerPageNums() int
	SetPerPageNums(perPageNums int)
	Request() *http.Request
	SetRequest(request *http.Request)
	PageNums() int
	Nums() int64
	SetNums(nums interface{})
	Page() int
	Pages() []int
	PageLink(page int) string
	PageBaseLink() string
	PageLinkPrev() (link string)
	PageLinkNext() (link string)
	PageLinkFirst() (link string)
	PageLinkLast() (link string)
	HasPrev() bool
	HasNext() bool
	IsActive(page int) bool
	Offset() int
	HasPages() bool
}

type Param

type Param struct {
	Key   string
	Value string
}

Param is a single URL parameter, consisting of a key and a value.

type Params

type Params []Param

Params is a Param-slice, as returned by the router. The slice is ordered, the first URL parameter is also the first slice value. It is therefore safe to read values by the index.

func ParamsFromContext

func ParamsFromContext(ctx context.Context) Params

ParamsFromContext pulls the URL parameters from a request context, or returns nil if none are present.

func (Params) ByName

func (ps Params) ByName(name string) string

ByName returns the value of the first Param which key matches the given name. If no matching Param is found, an empty string is returned.

func (Params) MatchedRoutePath

func (ps Params) MatchedRoutePath() string

MatchedRoutePath retrieves the path of the matched route. Router.SaveMatchedRoutePath must have been enabled when the respective handler was added, otherwise this function always returns an empty string.

type ProviderFactory

type ProviderFactory struct {
	// contains filtered or unexported fields
}

func NewProviderFactory

func NewProviderFactory() *ProviderFactory

func (*ProviderFactory) APIServer

func (p *ProviderFactory) APIServer(key string) APIServerProvider

func (*ProviderFactory) App

func (p *ProviderFactory) App(key string) AppProvider

func (*ProviderFactory) Cache

func (p *ProviderFactory) Cache(key string) CacheProvider

func (*ProviderFactory) Config

func (p *ProviderFactory) Config(key string) ConfigProvider

func (*ProviderFactory) Controller

func (p *ProviderFactory) Controller(key string) ControllerProvider

func (*ProviderFactory) Cookies

func (p *ProviderFactory) Cookies(key string) CookiesProvider

func (*ProviderFactory) Ctx

func (p *ProviderFactory) Ctx(key string) CtxProvider

func (*ProviderFactory) Database

func (p *ProviderFactory) Database(key string) DatabaseProvider

func (*ProviderFactory) DatabaseGroup

func (p *ProviderFactory) DatabaseGroup(key string) DatabaseGroupProvider

func (*ProviderFactory) Error

func (p *ProviderFactory) Error(key string) ErrorProvider

func (*ProviderFactory) HTTPRouter

func (p *ProviderFactory) HTTPRouter(key string) HTTPRouterProvider

func (*ProviderFactory) HTTPServer

func (p *ProviderFactory) HTTPServer(key string) HTTPServerProvider

func (*ProviderFactory) I18n

func (p *ProviderFactory) I18n(key string) I18nProvider

func (*ProviderFactory) Logger

func (p *ProviderFactory) Logger(key string) LoggerProvider

func (*ProviderFactory) RegisterAPIServer

func (p *ProviderFactory) RegisterAPIServer(key string, apiServer APIServerProvider)

func (*ProviderFactory) RegisterApp

func (p *ProviderFactory) RegisterApp(key string, app AppProvider)

func (*ProviderFactory) RegisterCache

func (p *ProviderFactory) RegisterCache(key string, cache CacheProvider)

func (*ProviderFactory) RegisterConfig

func (p *ProviderFactory) RegisterConfig(key string, config ConfigProvider)

func (*ProviderFactory) RegisterController

func (p *ProviderFactory) RegisterController(key string, controller ControllerProvider)

func (*ProviderFactory) RegisterCookies

func (p *ProviderFactory) RegisterCookies(key string, cookies CookiesProvider)

func (*ProviderFactory) RegisterCtx

func (p *ProviderFactory) RegisterCtx(key string, ctx CtxProvider)

func (*ProviderFactory) RegisterDatabase

func (p *ProviderFactory) RegisterDatabase(key string, database DatabaseProvider)

func (*ProviderFactory) RegisterDatabaseGroup

func (p *ProviderFactory) RegisterDatabaseGroup(key string, databaseGroup DatabaseGroupProvider)

func (*ProviderFactory) RegisterError

func (p *ProviderFactory) RegisterError(key string, error ErrorProvider)

func (*ProviderFactory) RegisterHTTPRouter

func (p *ProviderFactory) RegisterHTTPRouter(key string, router HTTPRouterProvider)

func (*ProviderFactory) RegisterHTTPServer

func (p *ProviderFactory) RegisterHTTPServer(key string, httpServer HTTPServerProvider)

func (*ProviderFactory) RegisterI18n

func (p *ProviderFactory) RegisterI18n(key string, i18n I18nProvider)

func (*ProviderFactory) RegisterLogger

func (p *ProviderFactory) RegisterLogger(key string, logger LoggerProvider)

func (*ProviderFactory) RegisterSession

func (p *ProviderFactory) RegisterSession(key string, session SessionProvider)

func (*ProviderFactory) RegisterSessionStorage

func (p *ProviderFactory) RegisterSessionStorage(key string, sessionStorage SessionStorageProvider)

func (*ProviderFactory) RegisterTemplate

func (p *ProviderFactory) RegisterTemplate(key string, template TemplateProvider)

func (*ProviderFactory) RegisterView

func (p *ProviderFactory) RegisterView(key string, view ViewProvider)

func (*ProviderFactory) Session

func (p *ProviderFactory) Session(key string) SessionProvider

func (*ProviderFactory) SessionStorage

func (p *ProviderFactory) SessionStorage(key string) SessionStorageProvider

func (*ProviderFactory) Template

func (p *ProviderFactory) Template(key string) TemplateProvider

func (*ProviderFactory) View

func (p *ProviderFactory) View(key string) ViewProvider

type ResponseWriter

type ResponseWriter interface {
	ClearData()
	Data(k interface{}) interface{}
	SetData(k interface{}, v interface{})
	WriteHeader(status int)
	Write(b []byte) (n int, err error)
	WriteCount() int64
	StatusCode() int
	Hijack() (net.Conn, *bufio.ReadWriter, error)
}

type ResultSet

type ResultSet interface {
	SQL() string
	Len() int
	LastInsertID() int64
	RowsAffected() int64
	TimeUsed() time.Duration
	MapRows(keyColumn string) (rowsMap map[string]map[string]string)
	MapStructs(keyColumn string, strucT interface{}, tagName ...string) (structsMap map[string]interface{}, err error)
	Rows() (rows []map[string]string)
	Structs(strucT interface{}, tagName ...string) (structs []interface{}, err error)
	Row() (row map[string]string)
	Struct(strucT interface{}, tagName ...string) (Struct interface{}, err error)
	Values(column string) (values []string)
	MapValues(keyColumn, valueColumn string) (values map[string]string)
	Value(column string) (value string)
}

type Service

type Service interface {
	// init servcie
	Init(cfg Config) error
	//nonblocking, called After Init -> InjectListeners (when reload) -> Start
	Start() error
	Stop()
	// blocking until all resource are released
	GracefulStop()
	SetLog(log Logger)
	// called After Init
	InjectListeners([]net.Listener)
	ListenerFactory() func(addr string) (net.Listener, error)
	SetListenerFactory(listenerFactory func(addr string) (net.Listener, error))
	Listeners() []net.Listener
}

type ServiceItem

type ServiceItem struct {
	BeforeInit func(srv Service, cfg Config) (err error)
	AfterInit  func(srv *ServiceItem) (err error)
	Service    Service
	ConfigID   string
}

type Session

type Session interface {
	Set(k interface{}, v interface{})
	Get(k interface{}) (value interface{})
	Delete(k interface{}) (err error)
	Destroy() (err error)
	Values() (data map[interface{}]interface{})
	IsDestroy() bool
	SessionID() (sessionID string)
	TouchTime() (time int64)
	Touch()
	Serialize() (str string, err error)
	Unserialize(data string) (err error)
}

type SessionProvider

type SessionProvider func() Session

func ProviderSession

func ProviderSession(key ...string) SessionProvider

type SessionStorage

type SessionStorage interface {
	Load(sessionID string) (session Session, isExits bool)
	Save(session Session) (err error)
	Delete(sessionID string) (err error)
}

type SessionStorageProvider

type SessionStorageProvider func(ctx Ctx) (SessionStorage, error)

func ProviderSessionStorage

func ProviderSessionStorage(key ...string) SessionStorageProvider

type StackFrame

type StackFrame interface {
	// The path to the file containing this ProgramCounter
	GetFile() string
	// The LineNumber in that file
	GetLineNumber() int
	// The Name of the function that contains this ProgramCounter
	GetName() string
	// The Package that contains this function
	GetPackage() string
	// The underlying ProgramCounter
	GetProgramCounter() uintptr

	Func() *runtime.Func

	String() string

	SourceLine() (string, error)
}

type SubConfig

type SubConfig interface {
	CommonConfig
}

SubConfig gmc abstract sub config layer.

type Template

type Template interface {
	Delims(left, right string)
	Funcs(funcMap map[string]interface{})
	String() string
	Extension(ext string)
	Execute(name string, data interface{}) (output []byte, err error)
	Parse() (err error)
}

type TemplateProvider

type TemplateProvider func(ctx Ctx, rootDir string) (Template, error)

func ProviderTemplate

func ProviderTemplate(key ...string) TemplateProvider

type View

type View interface {
	Err() error
	Set(key string, val interface{}) View
	SetMap(d map[string]interface{}) View
	Render(tpl string, data ...map[string]interface{}) View
	RenderR(tpl string, data ...map[string]interface{}) (d []byte)
	Layout(l string) View
	Stop()
	OnRenderOnce(f func()) View
	SetLayoutDir(layoutDir string)
}

type ViewProvider

type ViewProvider func(w io.Writer, tpl Template) View

func ProviderView

func ProviderView(key ...string) ViewProvider

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL