SYMBOL INDEX (602 symbols across 62 files) FILE: app/config.go function MergeConfig (line 11) | func MergeConfig(cfg *config.ConfYaml, opts *Options) error { function ValidateAndMerge (line 81) | func ValidateAndMerge(opts *Options) (*config.ConfYaml, error) { FILE: app/config_test.go function TestMergeConfig_IOSOptions (line 12) | func TestMergeConfig_IOSOptions(t *testing.T) { function TestMergeConfig_AndroidOptions (line 31) | func TestMergeConfig_AndroidOptions(t *testing.T) { function TestMergeConfig_HuaweiOptions (line 42) | func TestMergeConfig_HuaweiOptions(t *testing.T) { function TestMergeConfig_StorageOptions (line 55) | func TestMergeConfig_StorageOptions(t *testing.T) { function TestMergeConfig_ServerOptions (line 68) | func TestMergeConfig_ServerOptions(t *testing.T) { function TestMergeConfig_InvalidPort (line 83) | func TestMergeConfig_InvalidPort(t *testing.T) { function TestMergeConfig_NoOverrideEmpty (line 93) | func TestMergeConfig_NoOverrideEmpty(t *testing.T) { function TestValidateAndMerge (line 106) | func TestValidateAndMerge(t *testing.T) { FILE: app/options.go type Options (line 10) | type Options struct method BindFlags (line 32) | func (o *Options) BindFlags() { method CLISendOptions (line 95) | func (o *Options) CLISendOptions() CLISendOptions { method IsCLIMode (line 105) | func (o *Options) IsCLIMode() bool { function NewOptions (line 26) | func NewOptions() *Options { FILE: app/options_test.go function TestNewOptions (line 9) | func TestNewOptions(t *testing.T) { function TestOptions_CLISendOptions (line 19) | func TestOptions_CLISendOptions(t *testing.T) { function TestOptions_IsCLIMode (line 34) | func TestOptions_IsCLIMode(t *testing.T) { FILE: app/sender.go type CLISendOptions (line 14) | type CLISendOptions struct function SendAndroidNotification (line 22) | func SendAndroidNotification(ctx context.Context, cfg *config.ConfYaml, ... function SendHuaweiNotification (line 51) | func SendHuaweiNotification(ctx context.Context, cfg *config.ConfYaml, o... function SendIOSNotification (line 84) | func SendIOSNotification(ctx context.Context, cfg *config.ConfYaml, opts... function SendNotification (line 121) | func SendNotification( FILE: app/sender_test.go function TestCLISendOptions (line 11) | func TestCLISendOptions(t *testing.T) { function TestSendNotification_UnsupportedPlatform (line 25) | func TestSendNotification_UnsupportedPlatform(t *testing.T) { FILE: app/worker.go function NewQueueWorker (line 20) | func NewQueueWorker(cfg *config.ConfYaml) (qcore.Worker, error) { function NewQueuePool (line 72) | func NewQueuePool(cfg *config.ConfYaml, w qcore.Worker) *queue.Queue { FILE: app/worker_test.go function TestNewQueueWorker_LocalQueue (line 12) | func TestNewQueueWorker_LocalQueue(t *testing.T) { function TestNewQueueWorker_UnsupportedEngine (line 21) | func TestNewQueueWorker_UnsupportedEngine(t *testing.T) { function TestNewQueuePool (line 31) | func TestNewQueuePool(t *testing.T) { FILE: config/config.go type ConfYaml (line 135) | type ConfYaml struct method SanitizedCopy (line 629) | func (c *ConfYaml) SanitizedCopy() *ConfYaml { type SectionCore (line 148) | type SectionCore struct type SectionAutoTLS (line 173) | type SectionAutoTLS struct type SectionAPI (line 180) | type SectionAPI struct type SectionAndroid (line 191) | type SectionAndroid struct type SectionHuawei (line 199) | type SectionHuawei struct type SectionIos (line 207) | type SectionIos struct type SectionLog (line 221) | type SectionLog struct type SectionStat (line 232) | type SectionStat struct type SectionQueue (line 242) | type SectionQueue struct type SectionNSQ (line 250) | type SectionNSQ struct type SectionNATS (line 257) | type SectionNATS struct type SectionRedisQueue (line 264) | type SectionRedisQueue struct type SectionRedis (line 276) | type SectionRedis struct type SectionBoltDB (line 285) | type SectionBoltDB struct type SectionBuntDB (line 291) | type SectionBuntDB struct type SectionLevelDB (line 296) | type SectionLevelDB struct type SectionBadgerDB (line 301) | type SectionBadgerDB struct type SectionPID (line 306) | type SectionPID struct type SectionGRPC (line 313) | type SectionGRPC struct function setDefaults (line 318) | func setDefaults() { function LoadConf (line 380) | func LoadConf(confPath ...string) (*ConfYaml, error) { function loadConfigFromViper (line 425) | func loadConfigFromViper() (*ConfYaml, error) { function ValidatePort (line 542) | func ValidatePort(port string) error { function ValidateAddress (line 557) | func ValidateAddress(addr string) error { function ValidatePIDPath (line 572) | func ValidatePIDPath(pidPath string) error { function ValidateConfig (line 598) | func ValidateConfig(cfg *ConfYaml) error { function redact (line 672) | func redact(s string) string { FILE: config/config_test.go function TestMissingFile (line 15) | func TestMissingFile(t *testing.T) { function TestInvalidYAMLFile (line 27) | func TestInvalidYAMLFile(t *testing.T) { function TestDefaultConfigLoadFailure (line 47) | func TestDefaultConfigLoadFailure(t *testing.T) { function TestEmptyConfig (line 65) | func TestEmptyConfig(t *testing.T) { type ConfigTestSuite (line 74) | type ConfigTestSuite struct method SetupTest (line 80) | func (suite *ConfigTestSuite) SetupTest() { method TestValidateConfDefault (line 92) | func (suite *ConfigTestSuite) TestValidateConfDefault() { method TestValidateConf (line 194) | func (suite *ConfigTestSuite) TestValidateConf() { function TestConfigTestSuite (line 279) | func TestConfigTestSuite(t *testing.T) { function TestLoadConfigFromEnv (line 283) | func TestLoadConfigFromEnv(t *testing.T) { function TestRedisDBConfiguration (line 308) | func TestRedisDBConfiguration(t *testing.T) { function TestRedisDBConfigurationFromEnv (line 324) | func TestRedisDBConfigurationFromEnv(t *testing.T) { function TestLoadWrongDefaultYAMLConfig (line 341) | func TestLoadWrongDefaultYAMLConfig(t *testing.T) { function TestValidatePort (line 353) | func TestValidatePort(t *testing.T) { function TestValidateAddress (line 429) | func TestValidateAddress(t *testing.T) { function TestValidatePIDPath (line 497) | func TestValidatePIDPath(t *testing.T) { function TestValidateConfig (line 601) | func TestValidateConfig(t *testing.T) { function BenchmarkValidatePort (line 657) | func BenchmarkValidatePort(b *testing.B) { function BenchmarkValidateAddress (line 663) | func BenchmarkValidateAddress(b *testing.B) { function BenchmarkValidatePIDPath (line 669) | func BenchmarkValidatePIDPath(b *testing.B) { function TestSecurityValidationIntegration (line 676) | func TestSecurityValidationIntegration(t *testing.T) { function TestAPIDefaultsFromEnv (line 707) | func TestAPIDefaultsFromEnv(t *testing.T) { function TestLogDefaultsFromEnv (line 723) | func TestLogDefaultsFromEnv(t *testing.T) { function TestLogLevelDefaultsWhenEmpty (line 739) | func TestLogLevelDefaultsWhenEmpty(t *testing.T) { function TestAllAPIEndpointsHaveDefaults (line 754) | func TestAllAPIEndpointsHaveDefaults(t *testing.T) { function TestSanitizedCopy (line 780) | func TestSanitizedCopy(t *testing.T) { function TestSanitizedCopyEmptyFields (line 841) | func TestSanitizedCopyEmptyFields(t *testing.T) { FILE: core/core.go constant PlatFormIos (line 12) | PlatFormIos = iota + 1 constant PlatFormAndroid (line 14) | PlatFormAndroid constant PlatFormHuawei (line 16) | PlatFormHuawei constant SucceededPush (line 22) | SucceededPush = "succeeded-push" constant FailedPush (line 24) | FailedPush = "failed-push" type Platform (line 29) | type Platform method String (line 39) | func (p Platform) String() string { method IsValid (line 53) | func (p Platform) IsValid() bool { method MarshalText (line 72) | func (p Platform) MarshalText() ([]byte, error) { method UnmarshalText (line 80) | func (p *Platform) UnmarshalText(text []byte) error { method MarshalJSON (line 90) | func (p Platform) MarshalJSON() ([]byte, error) { method UnmarshalJSON (line 98) | func (p *Platform) UnmarshalJSON(data []byte) error { constant PlatformIOS (line 33) | PlatformIOS Platform = Platform(PlatFormIos) constant PlatformAndroid (line 34) | PlatformAndroid Platform = Platform(PlatFormAndroid) constant PlatformHuawei (line 35) | PlatformHuawei Platform = Platform(PlatFormHuawei) function ParsePlatform (line 58) | func ParsePlatform(s string) (Platform, error) { type LogBlock (line 123) | type LogBlock method IsValid (line 131) | func (l LogBlock) IsValid() bool { constant LogSucceededPush (line 126) | LogSucceededPush LogBlock = LogBlock(SucceededPush) constant LogFailedPush (line 127) | LogFailedPush LogBlock = LogBlock(FailedPush) FILE: core/core_test.go function TestPlatformStringAndValidity (line 8) | func TestPlatformStringAndValidity(t *testing.T) { function TestParsePlatform (line 32) | func TestParsePlatform(t *testing.T) { function TestPlatformTextMarshaling (line 50) | func TestPlatformTextMarshaling(t *testing.T) { function TestPlatformJSONMarshaling (line 62) | func TestPlatformJSONMarshaling(t *testing.T) { function TestLogBlock (line 82) | func TestLogBlock(t *testing.T) { FILE: core/health.go type Health (line 6) | type Health interface FILE: core/queue.go type Queue (line 4) | type Queue function IsLocalQueue (line 18) | func IsLocalQueue(q Queue) bool { FILE: core/storage.go constant TotalCountKey (line 5) | TotalCountKey = "gorush-total-count" constant IosSuccessKey (line 9) | IosSuccessKey = "gorush-ios-success-count" constant IosErrorKey (line 12) | IosErrorKey = "gorush-ios-error-count" constant AndroidSuccessKey (line 15) | AndroidSuccessKey = "gorush-android-success-count" constant AndroidErrorKey (line 18) | AndroidErrorKey = "gorush-android-error-count" constant HuaweiSuccessKey (line 21) | HuaweiSuccessKey = "gorush-huawei-success-count" constant HuaweiErrorKey (line 24) | HuaweiErrorKey = "gorush-huawei-error-count" type Storage (line 28) | type Storage interface FILE: logx/log.go type LogPushEntry (line 25) | type LogPushEntry struct function init (line 37) | func init() { function InitLog (line 49) | func InitLog(accessLevel, accessLog, errorLevel, errorLog string) error { function SetLogOut (line 88) | func SetLogOut(log *logrus.Logger, outString string) error { function SetLogLevel (line 108) | func SetLogLevel(log *logrus.Logger, levelString string) error { function colorForPlatForm (line 119) | func colorForPlatForm(platform int) string { function typeForPlatForm (line 132) | func typeForPlatForm(platform int) string { function hideToken (line 145) | func hideToken(token string, markLen int) string { function GetLogPushEntry (line 164) | func GetLogPushEntry(input *InputLog) LogPushEntry { type InputLog (line 194) | type InputLog struct function LogPush (line 207) | func LogPush(input *InputLog) LogPushEntry { FILE: logx/log_interface.go function QueueLogger (line 10) | func QueueLogger() DefaultQueueLogger { type DefaultQueueLogger (line 18) | type DefaultQueueLogger struct method Infof (line 23) | func (l DefaultQueueLogger) Infof(format string, args ...any) { method Errorf (line 27) | func (l DefaultQueueLogger) Errorf(format string, args ...any) { method Fatalf (line 31) | func (l DefaultQueueLogger) Fatalf(format string, args ...any) { method Info (line 35) | func (l DefaultQueueLogger) Info(args ...any) { method Error (line 39) | func (l DefaultQueueLogger) Error(args ...any) { method Fatal (line 43) | func (l DefaultQueueLogger) Fatal(args ...any) { FILE: logx/log_test.go function TestSetLogLevel (line 17) | func TestSetLogLevel(t *testing.T) { function TestSetLogOut (line 27) | func TestSetLogOut(t *testing.T) { function TestInitDefaultLog (line 44) | func TestInitDefaultLog(t *testing.T) { function TestAccessLevel (line 74) | func TestAccessLevel(t *testing.T) { function TestErrorLevel (line 87) | func TestErrorLevel(t *testing.T) { function TestAccessLogPath (line 100) | func TestAccessLogPath(t *testing.T) { function TestErrorLogPath (line 113) | func TestErrorLogPath(t *testing.T) { function TestPlatFormType (line 126) | func TestPlatFormType(t *testing.T) { function TestPlatFormColor (line 133) | func TestPlatFormColor(t *testing.T) { function TestHideToken (line 140) | func TestHideToken(t *testing.T) { function TestLogPushEntry (line 146) | func TestLogPushEntry(t *testing.T) { function TestLogPush (line 164) | func TestLogPush(t *testing.T) { FILE: main.go function main (line 27) | func main() { function usage (line 193) | func usage() { function handleCLINotification (line 198) | func handleCLINotification(ctx context.Context, cfg *config.ConfYaml, op... function pinger (line 218) | func pinger(ctx context.Context, cfg *config.ConfYaml) error { function createPIDFile (line 246) | func createPIDFile(cfg *config.ConfYaml) error { FILE: metric/metrics.go constant namespace (line 10) | namespace = "gorush_" type Metrics (line 14) | type Metrics struct method Describe (line 94) | func (c Metrics) Describe(ch chan<- *prometheus.Desc) { method Collect (line 109) | func (c Metrics) Collect(ch chan<- prometheus.Metric) { function NewMetrics (line 30) | func NewMetrics(q *queue.Queue) Metrics { FILE: metric/metrics_test.go function TestNewMetrics (line 14) | func TestNewMetrics(t *testing.T) { FILE: notify/feedback.go function extractHeaders (line 15) | func extractHeaders(headers []string) map[string]string { function DispatchFeedback (line 37) | func DispatchFeedback( FILE: notify/feedback_test.go function TestEmptyFeedbackURL (line 16) | func TestEmptyFeedbackURL(t *testing.T) { function TestHTTPErrorInFeedbackCall (line 37) | func TestHTTPErrorInFeedbackCall(t *testing.T) { function TestSuccessfulFeedbackCall (line 59) | func TestSuccessfulFeedbackCall(t *testing.T) { FILE: notify/global.go constant HIGH (line 39) | HIGH = "high" constant NORMAL (line 40) | NORMAL = "nornal" FILE: notify/main_test.go function TestMain (line 12) | func TestMain(m *testing.M) { FILE: notify/notification.go type D (line 23) | type D constant ApnsPriorityLow (line 30) | ApnsPriorityLow = 5 constant ApnsPriorityHigh (line 36) | ApnsPriorityHigh = 10 type Alert (line 40) | type Alert struct type RequestPush (line 56) | type RequestPush struct type ResponsePush (line 61) | type ResponsePush struct type PushNotification (line 66) | type PushNotification struct method Bytes (line 129) | func (p *PushNotification) Bytes() []byte { method Payload (line 138) | func (p *PushNotification) Payload() []byte { method IsTopic (line 144) | func (p *PushNotification) IsTopic() bool { function CheckMessage (line 153) | func CheckMessage(req *PushNotification) error { function SetProxy (line 188) | func SetProxy(proxy string) error { function checkIOSConf (line 201) | func checkIOSConf(cfg *config.ConfYaml) error { function checkAndroidConf (line 217) | func checkAndroidConf(cfg *config.ConfYaml) error { function checkHuaweiConf (line 229) | func checkHuaweiConf(cfg *config.ConfYaml) error { function CheckPushConf (line 243) | func CheckPushConf(cfg *config.ConfYaml) error { function SendNotification (line 258) | func SendNotification( function makeErrorLogs (line 307) | func makeErrorLogs( FILE: notify/notification_apns.go constant dotP8 (line 35) | dotP8 = ".p8" constant dotPEM (line 36) | dotPEM = ".pem" constant dotP12 (line 37) | dotP12 = ".p12" type Sound (line 55) | type Sound struct function loadCertFromFile (line 62) | func loadCertFromFile( function loadCertFromBase64 (line 85) | func loadCertFromBase64( function createAPNSClientWithToken (line 112) | func createAPNSClientWithToken( function InitAPNSClient (line 128) | func InitAPNSClient(ctx context.Context, cfg *config.ConfYaml) error { function newApnsClient (line 178) | func newApnsClient(cfg *config.ConfYaml, certificate tls.Certificate) (*... function newApnsTokenClient (line 220) | func newApnsTokenClient(cfg *config.ConfYaml, token *token.Token) (*apns... function configureHTTP2ConnHealthCheck (line 251) | func configureHTTP2ConnHealthCheck(h2Transport *http2.Transport) { function setAlertTitleAndBody (line 257) | func setAlertTitleAndBody(p *payload.Payload, req *PushNotification) { function setAlertLocalization (line 277) | func setAlertLocalization(p *payload.Payload, req *PushNotification) { function setAlertActions (line 296) | func setAlertActions(p *payload.Payload, req *PushNotification) { function setLiveActivityFields (line 312) | func setLiveActivityFields(p *payload.Payload, req *PushNotification) { function iosAlertDictionary (line 330) | func iosAlertDictionary( function setNotificationPriority (line 350) | func setNotificationPriority(notification *apns2.Notification, priority ... function setPayloadSound (line 363) | func setPayloadSound(p *payload.Payload, req *PushNotification) { function buildIOSPayload (line 383) | func buildIOSPayload(req *PushNotification) *payload.Payload { function GetIOSNotification (line 424) | func GetIOSNotification(req *PushNotification) *apns2.Notification { function getApnsClient (line 446) | func getApnsClient(cfg *config.ConfYaml, req *PushNotification) (client ... function PushToIOS (line 463) | func PushToIOS( FILE: notify/notification_apns_test.go constant certificateValidP12 (line 22) | certificateValidP12 = `MIIKlgIBAzCCClwGCSqGSIb3DQEHAaCCCk0EggpJMIIKRTCCB... constant certificateValidPEM (line 24) | certificateValidPEM = `QmFnIEF0dHJpYnV0ZXMKICAgIGxvY2FsS2V5SUQ6IDhDIDFBI... constant authkeyInvalidP8 (line 26) | authkeyInvalidP8 = `TUlHSEFnRUFNQk1HQnlxR1NNNDlBZ0VHQ0NxR1NNNDlBd0VIQkcw... constant authkeyValidP8 (line 28) | authkeyValidP8 = `LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JR0hBZ0VBTUJNR0... constant testKeyID (line 39) | testKeyID = "key-id" constant testTeamID (line 40) | testTeamID = "team-id" function TestDisabledAndroidIosConf (line 43) | func TestDisabledAndroidIosConf(t *testing.T) { function TestMissingIOSCertificate (line 54) | func TestMissingIOSCertificate(t *testing.T) { function TestIOSNotificationStructure (line 72) | func TestIOSNotificationStructure(t *testing.T) { function TestIOSSoundAndVolume (line 139) | func TestIOSSoundAndVolume(t *testing.T) { function TestIOSSummaryArg (line 241) | func TestIOSSummaryArg(t *testing.T) { function TestSendZeroValueForBadgeKey (line 283) | func TestSendZeroValueForBadgeKey(t *testing.T) { function TestCheckSilentNotification (line 356) | func TestCheckSilentNotification(t *testing.T) { function TestAlertStringExample2ForIos (line 400) | func TestAlertStringExample2ForIos(t *testing.T) { function TestAlertStringExample3ForIos (line 456) | func TestAlertStringExample3ForIos(t *testing.T) { function TestMessageAndTitle (line 486) | func TestMessageAndTitle(t *testing.T) { function TestIOSAlertNotificationStructure (line 541) | func TestIOSAlertNotificationStructure(t *testing.T) { function TestWrongIosCertificateExt (line 629) | func TestWrongIosCertificateExt(t *testing.T) { function TestAPNSClientDevHost (line 648) | func TestAPNSClientDevHost(t *testing.T) { function TestAPNSClientProdHost (line 665) | func TestAPNSClientProdHost(t *testing.T) { function TestAPNSClientInvaildToken (line 683) | func TestAPNSClientInvaildToken(t *testing.T) { function TestAPNSClientVaildToken (line 714) | func TestAPNSClientVaildToken(t *testing.T) { function TestAPNSClientUseProxy (line 745) | func TestAPNSClientUseProxy(t *testing.T) { function TestPushToIOS (line 785) | func TestPushToIOS(t *testing.T) { function TestApnsHostFromRequest (line 811) | func TestApnsHostFromRequest(t *testing.T) { function TestSetAlertTitleAndBody (line 845) | func TestSetAlertTitleAndBody(t *testing.T) { function TestSetAlertLocalization (line 910) | func TestSetAlertLocalization(t *testing.T) { function TestSetAlertActions (line 934) | func TestSetAlertActions(t *testing.T) { function TestSetLiveActivityFields (line 959) | func TestSetLiveActivityFields(t *testing.T) { function TestSetNotificationPriority (line 987) | func TestSetNotificationPriority(t *testing.T) { function TestSetPayloadSound (line 1022) | func TestSetPayloadSound(t *testing.T) { function TestBuildIOSPayload (line 1063) | func TestBuildIOSPayload(t *testing.T) { function TestLoadCertFromFile (line 1096) | func TestLoadCertFromFile(t *testing.T) { function TestLoadCertFromBase64 (line 1126) | func TestLoadCertFromBase64(t *testing.T) { function TestCreateAPNSClientWithToken (line 1167) | func TestCreateAPNSClientWithToken(t *testing.T) { FILE: notify/notification_fcm.go function fileExists (line 18) | func fileExists(filename string) bool { function InitFCMClient (line 27) | func InitFCMClient(ctx context.Context, cfg *config.ConfYaml) (*fcm.Clie... function setupFCMNotification (line 59) | func setupFCMNotification(req *PushNotification) { function setupFCMContentAvailable (line 87) | func setupFCMContentAvailable(req *PushNotification) { function setAPNSSound (line 105) | func setAPNSSound(req *PushNotification, sound string) { function setupFCMSound (line 125) | func setupFCMSound(req *PushNotification) { function convertDataToStringMap (line 145) | func convertDataToStringMap(data map[string]any) map[string]string { function buildFCMMessage (line 164) | func buildFCMMessage(req *PushNotification, data map[string]string) *mes... function GetAndroidNotification (line 181) | func GetAndroidNotification(req *PushNotification) []*messaging.Message { function handleTopicResponse (line 206) | func handleTopicResponse( function handleTokenResponses (line 237) | func handleTokenResponses( function logDevMessages (line 254) | func logDevMessages(messages []*messaging.Message) { function PushToAndroid (line 262) | func PushToAndroid( function logPush (line 331) | func logPush( FILE: notify/notification_fcm_test.go function TestMissingAndroidCredential (line 17) | func TestMissingAndroidCredential(t *testing.T) { function TestMissingKeyForInitFCMClient (line 29) | func TestMissingKeyForInitFCMClient(t *testing.T) { function TestPushToAndroidWrongToken (line 40) | func TestPushToAndroidWrongToken(t *testing.T) { function TestPushToAndroidRightTokenForJSONLog (line 58) | func TestPushToAndroidRightTokenForJSONLog(t *testing.T) { function TestPushToAndroidRightTokenForStringLog (line 79) | func TestPushToAndroidRightTokenForStringLog(t *testing.T) { function TestFCMMessage (line 98) | func TestFCMMessage(t *testing.T) { function TestAndroidNotificationStructure (line 151) | func TestAndroidNotificationStructure(t *testing.T) { function TestAndroidBackgroundNotificationStructure (line 199) | func TestAndroidBackgroundNotificationStructure(t *testing.T) { function TestSetupFCMNotification (line 227) | func TestSetupFCMNotification(t *testing.T) { function TestSetupFCMContentAvailable (line 289) | func TestSetupFCMContentAvailable(t *testing.T) { function TestSetAPNSSound (line 307) | func TestSetAPNSSound(t *testing.T) { function TestSetupFCMSound (line 345) | func TestSetupFCMSound(t *testing.T) { function TestConvertDataToStringMap (line 366) | func TestConvertDataToStringMap(t *testing.T) { function TestBuildFCMMessage (line 406) | func TestBuildFCMMessage(t *testing.T) { function TestGetAndroidNotificationWithTopic (line 435) | func TestGetAndroidNotificationWithTopic(t *testing.T) { function TestGetAndroidNotificationWithTokens (line 449) | func TestGetAndroidNotificationWithTokens(t *testing.T) { function TestGetAndroidNotificationWithTopicAndTokens (line 462) | func TestGetAndroidNotificationWithTopicAndTokens(t *testing.T) { FILE: notify/notification_hms.go function GetPushClient (line 25) | func GetPushClient(conf *c.Config) (*client.HMSClient, error) { function InitHMSClient (line 39) | func InitHMSClient(cfg *config.ConfYaml, appSecret, appID string) (*clie... function setHuaweiMessageTarget (line 67) | func setHuaweiMessageTarget(msg *model.Message, req *PushNotification) { function setHuaweiAndroidConfig (line 80) | func setHuaweiAndroidConfig(android *model.AndroidConfig, req *PushNotif... function setHuaweiNotificationContent (line 98) | func setHuaweiNotificationContent(android *model.AndroidConfig, req *Pus... function GetHuaweiNotification (line 128) | func GetHuaweiNotification(req *PushNotification) (*model.MessageRequest... function PushToHuawei (line 159) | func PushToHuawei( FILE: notify/notification_hms_test.go function TestMissingHuaweiAppSecret (line 13) | func TestMissingHuaweiAppSecret(t *testing.T) { function TestMissingHuaweiAppID (line 26) | func TestMissingHuaweiAppID(t *testing.T) { function TestMissingAppSecretForInitHMSClient (line 39) | func TestMissingAppSecretForInitHMSClient(t *testing.T) { function TestMissingAppIDForInitHMSClient (line 48) | func TestMissingAppIDForInitHMSClient(t *testing.T) { function TestSetHuaweiMessageTarget (line 59) | func TestSetHuaweiMessageTarget(t *testing.T) { function TestSetHuaweiAndroidConfig (line 119) | func TestSetHuaweiAndroidConfig(t *testing.T) { function TestSetHuaweiNotificationContent (line 143) | func TestSetHuaweiNotificationContent(t *testing.T) { function TestHuaweiNotificationDefaultSound (line 202) | func TestHuaweiNotificationDefaultSound(t *testing.T) { function TestHuaweiNotificationWithData (line 217) | func TestHuaweiNotificationWithData(t *testing.T) { function TestHuaweiNotificationWithCustomNotification (line 229) | func TestHuaweiNotificationWithCustomNotification(t *testing.T) { FILE: notify/notification_test.go constant testHuaweiAppID (line 13) | testHuaweiAppID = "app-id" constant testHuaweiAppSecret (line 14) | testHuaweiAppSecret = "app-secret" function TestCorrectConf (line 17) | func TestCorrectConf(t *testing.T) { function TestSetProxyURL (line 31) | func TestSetProxyURL(t *testing.T) { function TestCheckIOSConf (line 45) | func TestCheckIOSConf(t *testing.T) { function TestCheckAndroidConf (line 80) | func TestCheckAndroidConf(t *testing.T) { function TestCheckHuaweiConf (line 110) | func TestCheckHuaweiConf(t *testing.T) { function TestCheckPushConfNoPlatformEnabled (line 140) | func TestCheckPushConfNoPlatformEnabled(t *testing.T) { function TestCheckPushConfAllPlatformsValid (line 152) | func TestCheckPushConfAllPlatformsValid(t *testing.T) { FILE: router/server.go function abortWithError (line 35) | func abortWithError(c *gin.Context, code int, message string) { function rootHandler (line 42) | func rootHandler(c *gin.Context) { function heartbeatHandler (line 48) | func heartbeatHandler(c *gin.Context) { function versionHandler (line 52) | func versionHandler(c *gin.Context) { function pushHandler (line 59) | func pushHandler(cfg *config.ConfYaml, q *queue.Queue) gin.HandlerFunc { function configHandler (line 113) | func configHandler(cfg *config.ConfYaml) gin.HandlerFunc { function metricsHandler (line 119) | func metricsHandler(c *gin.Context) { function appStatusHandler (line 123) | func appStatusHandler(q *queue.Queue) gin.HandlerFunc { function sysStatsHandler (line 144) | func sysStatsHandler() gin.HandlerFunc { function StatMiddleware (line 151) | func StatMiddleware() gin.HandlerFunc { function autoTLSServer (line 159) | func autoTLSServer(cfg *config.ConfYaml, q *queue.Queue) *http.Server { function routerEngine (line 174) | func routerEngine(cfg *config.ConfYaml, q *queue.Queue) *gin.Engine { function markFailedNotification (line 230) | func markFailedNotification( function isPlatformEnabled (line 254) | func isPlatformEnabled(cfg *config.ConfYaml, platform int) bool { function filterEnabledNotifications (line 268) | func filterEnabledNotifications( function countNotificationTargets (line 281) | func countNotificationTargets(notification *notify.PushNotification) int { function handleNotification (line 290) | func handleNotification( FILE: router/server_lambda.go function RunHTTPServer (line 17) | func RunHTTPServer( FILE: router/server_normal.go function RunHTTPServer (line 21) | func RunHTTPServer( function listenAndServe (line 89) | func listenAndServe(ctx context.Context, s *http.Server, cfg *config.Con... function listenAndServeTLS (line 107) | func listenAndServeTLS(ctx context.Context, s *http.Server, cfg *config.... function startServer (line 125) | func startServer(ctx context.Context, s *http.Server, cfg *config.ConfYa... FILE: router/server_test.go function TestMain (line 35) | func TestMain(m *testing.M) { function initTest (line 64) | func initTest() *config.ConfYaml { function testRequest (line 71) | func testRequest(t *testing.T, url string) { function TestPrintGoRushVersion (line 100) | func TestPrintGoRushVersion(t *testing.T) { function TestRunNormalServer (line 109) | func TestRunNormalServer(t *testing.T) { function TestRunTLSServer (line 130) | func TestRunTLSServer(t *testing.T) { function TestRunTLSBase64Server (line 154) | func TestRunTLSBase64Server(t *testing.T) { function TestRunAutoTLSServer (line 184) | func TestRunAutoTLSServer(t *testing.T) { function TestLoadTLSCertError (line 201) | func TestLoadTLSCertError(t *testing.T) { function TestMissingTLSCertcfgg (line 212) | func TestMissingTLSCertcfgg(t *testing.T) { function TestRootHandler (line 227) | func TestRootHandler(t *testing.T) { function TestAPIStatusGoHandler (line 246) | func TestAPIStatusGoHandler(t *testing.T) { function TestAPIStatusAppHandler (line 262) | func TestAPIStatusAppHandler(t *testing.T) { function TestAPIConfigHandler (line 281) | func TestAPIConfigHandler(t *testing.T) { function TestMissingNotificationsParameter (line 303) | func TestMissingNotificationsParameter(t *testing.T) { function TestEmptyNotifications (line 315) | func TestEmptyNotifications(t *testing.T) { function TestMutableContent (line 330) | func TestMutableContent(t *testing.T) { function TestOutOfRangeMaxNotifications (line 359) | func TestOutOfRangeMaxNotifications(t *testing.T) { function TestSuccessPushHandler (line 387) | func TestSuccessPushHandler(t *testing.T) { function TestSysStatsHandler (line 413) | func TestSysStatsHandler(t *testing.T) { function TestMetricsHandler (line 424) | func TestMetricsHandler(t *testing.T) { function TestGETHeartbeatHandler (line 435) | func TestGETHeartbeatHandler(t *testing.T) { function TestHEADHeartbeatHandler (line 446) | func TestHEADHeartbeatHandler(t *testing.T) { function TestVersionHandler (line 457) | func TestVersionHandler(t *testing.T) { function TestDisabledHTTPServer (line 474) | func TestDisabledHTTPServer(t *testing.T) { function TestSenMultipleNotifications (line 483) | func TestSenMultipleNotifications(t *testing.T) { function TestDisabledAndroidNotifications (line 521) | func TestDisabledAndroidNotifications(t *testing.T) { function TestSyncModeForNotifications (line 559) | func TestSyncModeForNotifications(t *testing.T) { function TestSyncModeForTopicNotification (line 600) | func TestSyncModeForTopicNotification(t *testing.T) { function TestSyncModeForDeviceGroupNotification (line 643) | func TestSyncModeForDeviceGroupNotification(t *testing.T) { function TestDisabledIosNotifications (line 671) | func TestDisabledIosNotifications(t *testing.T) { function TestIsPlatformEnabled (line 711) | func TestIsPlatformEnabled(t *testing.T) { function TestFilterEnabledNotifications (line 777) | func TestFilterEnabledNotifications(t *testing.T) { function TestFilterEnabledNotificationsAllDisabled (line 798) | func TestFilterEnabledNotificationsAllDisabled(t *testing.T) { function TestCountNotificationTargets (line 814) | func TestCountNotificationTargets(t *testing.T) { FILE: router/version.go function SetVersion (line 18) | func SetVersion(ver string) { function SetCommit (line 23) | func SetCommit(ver string) { function GetVersion (line 28) | func GetVersion() string { function PrintGoRushVersion (line 33) | func PrintGoRushVersion() { function VersionMiddleware (line 50) | func VersionMiddleware() gin.HandlerFunc { FILE: rpc/client_grpc_health.go type healthClient (line 17) | type healthClient struct method Close (line 30) | func (c *healthClient) Close() error { method Check (line 34) | func (c *healthClient) Check(ctx context.Context) (bool, error) { function NewGrpcHealthClient (line 23) | func NewGrpcHealthClient(conn *grpc.ClientConn) core.Health { FILE: rpc/example/go/health/main.go constant address (line 16) | address = "localhost:9000" function main (line 19) | func main() { FILE: rpc/example/go/send/main.go constant address (line 15) | address = "localhost:9000" function main (line 18) | func main() { FILE: rpc/example/node/client.js function main (line 6) | function main() { FILE: rpc/example/node/gorush_grpc_pb.js function serialize_proto_HealthCheckRequest (line 8) | function serialize_proto_HealthCheckRequest(arg) { function deserialize_proto_HealthCheckRequest (line 15) | function deserialize_proto_HealthCheckRequest(buffer_arg) { function serialize_proto_HealthCheckResponse (line 19) | function serialize_proto_HealthCheckResponse(arg) { function deserialize_proto_HealthCheckResponse (line 26) | function deserialize_proto_HealthCheckResponse(buffer_arg) { function serialize_proto_NotificationReply (line 30) | function serialize_proto_NotificationReply(arg) { function deserialize_proto_NotificationReply (line 37) | function deserialize_proto_NotificationReply(buffer_arg) { function serialize_proto_NotificationRequest (line 41) | function serialize_proto_NotificationRequest(arg) { function deserialize_proto_NotificationRequest (line 48) | function deserialize_proto_NotificationRequest(buffer_arg) { FILE: rpc/proto/gorush.pb.go constant _ (line 20) | _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) constant _ (line 22) | _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) type NotificationRequest_Priority (line 25) | type NotificationRequest_Priority method Enum (line 44) | func (x NotificationRequest_Priority) Enum() *NotificationRequest_Prio... method String (line 50) | func (x NotificationRequest_Priority) String() string { method Descriptor (line 54) | func (NotificationRequest_Priority) Descriptor() protoreflect.EnumDesc... method Type (line 58) | func (NotificationRequest_Priority) Type() protoreflect.EnumType { method Number (line 62) | func (x NotificationRequest_Priority) Number() protoreflect.EnumNumber { method EnumDescriptor (line 67) | func (NotificationRequest_Priority) EnumDescriptor() ([]byte, []int) { constant NotificationRequest_NORMAL (line 28) | NotificationRequest_NORMAL NotificationRequest_Priority = 0 constant NotificationRequest_HIGH (line 29) | NotificationRequest_HIGH NotificationRequest_Priority = 1 type HealthCheckResponse_ServingStatus (line 71) | type HealthCheckResponse_ServingStatus method Enum (line 93) | func (x HealthCheckResponse_ServingStatus) Enum() *HealthCheckResponse... method String (line 99) | func (x HealthCheckResponse_ServingStatus) String() string { method Descriptor (line 103) | func (HealthCheckResponse_ServingStatus) Descriptor() protoreflect.Enu... method Type (line 107) | func (HealthCheckResponse_ServingStatus) Type() protoreflect.EnumType { method Number (line 111) | func (x HealthCheckResponse_ServingStatus) Number() protoreflect.EnumN... method EnumDescriptor (line 116) | func (HealthCheckResponse_ServingStatus) EnumDescriptor() ([]byte, []i... constant HealthCheckResponse_UNKNOWN (line 74) | HealthCheckResponse_UNKNOWN HealthCheckResponse_ServingStatus = 0 constant HealthCheckResponse_SERVING (line 75) | HealthCheckResponse_SERVING HealthCheckResponse_ServingStatus = 1 constant HealthCheckResponse_NOT_SERVING (line 76) | HealthCheckResponse_NOT_SERVING HealthCheckResponse_ServingStatus = 2 type Alert (line 120) | type Alert struct method Reset (line 136) | func (x *Alert) Reset() { method String (line 143) | func (x *Alert) String() string { method ProtoMessage (line 147) | func (*Alert) ProtoMessage() {} method ProtoReflect (line 149) | func (x *Alert) ProtoReflect() protoreflect.Message { method Descriptor (line 162) | func (*Alert) Descriptor() ([]byte, []int) { method GetTitle (line 166) | func (x *Alert) GetTitle() string { method GetBody (line 173) | func (x *Alert) GetBody() string { method GetSubtitle (line 180) | func (x *Alert) GetSubtitle() string { method GetAction (line 187) | func (x *Alert) GetAction() string { method GetActionLocKey (line 194) | func (x *Alert) GetActionLocKey() string { method GetLaunchImage (line 201) | func (x *Alert) GetLaunchImage() string { method GetLocKey (line 208) | func (x *Alert) GetLocKey() string { method GetTitleLocKey (line 215) | func (x *Alert) GetTitleLocKey() string { method GetLocArgs (line 222) | func (x *Alert) GetLocArgs() []string { method GetTitleLocArgs (line 229) | func (x *Alert) GetTitleLocArgs() []string { type NotificationRequest (line 236) | type NotificationRequest struct method Reset (line 263) | func (x *NotificationRequest) Reset() { method String (line 270) | func (x *NotificationRequest) String() string { method ProtoMessage (line 274) | func (*NotificationRequest) ProtoMessage() {} method ProtoReflect (line 276) | func (x *NotificationRequest) ProtoReflect() protoreflect.Message { method Descriptor (line 289) | func (*NotificationRequest) Descriptor() ([]byte, []int) { method GetTokens (line 293) | func (x *NotificationRequest) GetTokens() []string { method GetPlatform (line 300) | func (x *NotificationRequest) GetPlatform() int32 { method GetMessage (line 307) | func (x *NotificationRequest) GetMessage() string { method GetTitle (line 314) | func (x *NotificationRequest) GetTitle() string { method GetTopic (line 321) | func (x *NotificationRequest) GetTopic() string { method GetKey (line 328) | func (x *NotificationRequest) GetKey() string { method GetBadge (line 335) | func (x *NotificationRequest) GetBadge() int32 { method GetCategory (line 342) | func (x *NotificationRequest) GetCategory() string { method GetAlert (line 349) | func (x *NotificationRequest) GetAlert() *Alert { method GetSound (line 356) | func (x *NotificationRequest) GetSound() string { method GetContentAvailable (line 363) | func (x *NotificationRequest) GetContentAvailable() bool { method GetThreadID (line 370) | func (x *NotificationRequest) GetThreadID() string { method GetMutableContent (line 377) | func (x *NotificationRequest) GetMutableContent() bool { method GetData (line 384) | func (x *NotificationRequest) GetData() *structpb.Struct { method GetImage (line 391) | func (x *NotificationRequest) GetImage() string { method GetPriority (line 398) | func (x *NotificationRequest) GetPriority() NotificationRequest_Priori... method GetID (line 405) | func (x *NotificationRequest) GetID() string { method GetPushType (line 412) | func (x *NotificationRequest) GetPushType() string { method GetDevelopment (line 419) | func (x *NotificationRequest) GetDevelopment() bool { method GetFcmOptions (line 426) | func (x *NotificationRequest) GetFcmOptions() *FCMOptions { type FCMOptions (line 433) | type FCMOptions struct method Reset (line 440) | func (x *FCMOptions) Reset() { method String (line 447) | func (x *FCMOptions) String() string { method ProtoMessage (line 451) | func (*FCMOptions) ProtoMessage() {} method ProtoReflect (line 453) | func (x *FCMOptions) ProtoReflect() protoreflect.Message { method Descriptor (line 466) | func (*FCMOptions) Descriptor() ([]byte, []int) { method GetAnalyticsLabel (line 470) | func (x *FCMOptions) GetAnalyticsLabel() string { type NotificationReply (line 477) | type NotificationReply struct method Reset (line 485) | func (x *NotificationReply) Reset() { method String (line 492) | func (x *NotificationReply) String() string { method ProtoMessage (line 496) | func (*NotificationReply) ProtoMessage() {} method ProtoReflect (line 498) | func (x *NotificationReply) ProtoReflect() protoreflect.Message { method Descriptor (line 511) | func (*NotificationReply) Descriptor() ([]byte, []int) { method GetSuccess (line 515) | func (x *NotificationReply) GetSuccess() bool { method GetCounts (line 522) | func (x *NotificationReply) GetCounts() int32 { type HealthCheckRequest (line 529) | type HealthCheckRequest struct method Reset (line 536) | func (x *HealthCheckRequest) Reset() { method String (line 543) | func (x *HealthCheckRequest) String() string { method ProtoMessage (line 547) | func (*HealthCheckRequest) ProtoMessage() {} method ProtoReflect (line 549) | func (x *HealthCheckRequest) ProtoReflect() protoreflect.Message { method Descriptor (line 562) | func (*HealthCheckRequest) Descriptor() ([]byte, []int) { method GetService (line 566) | func (x *HealthCheckRequest) GetService() string { type HealthCheckResponse (line 573) | type HealthCheckResponse struct method Reset (line 580) | func (x *HealthCheckResponse) Reset() { method String (line 587) | func (x *HealthCheckResponse) String() string { method ProtoMessage (line 591) | func (*HealthCheckResponse) ProtoMessage() {} method ProtoReflect (line 593) | func (x *HealthCheckResponse) ProtoReflect() protoreflect.Message { method Descriptor (line 606) | func (*HealthCheckResponse) Descriptor() ([]byte, []int) { method GetStatus (line 610) | func (x *HealthCheckResponse) GetStatus() HealthCheckResponse_ServingS... constant file_gorush_proto_rawDesc (line 619) | file_gorush_proto_rawDesc = "" + function file_gorush_proto_rawDescGZIP (line 687) | func file_gorush_proto_rawDescGZIP() []byte { function init (line 724) | func init() { file_gorush_proto_init() } function file_gorush_proto_init (line 725) | func file_gorush_proto_init() { FILE: rpc/proto/gorush_grpc.pb.go constant _ (line 19) | _ = grpc.SupportPackageIsVersion9 constant Gorush_Send_FullMethodName (line 22) | Gorush_Send_FullMethodName = "/proto.Gorush/Send" type GorushClient (line 28) | type GorushClient interface type gorushClient (line 32) | type gorushClient struct method Send (line 40) | func (c *gorushClient) Send(ctx context.Context, in *NotificationReque... function NewGorushClient (line 36) | func NewGorushClient(cc grpc.ClientConnInterface) GorushClient { type GorushServer (line 53) | type GorushServer interface type UnimplementedGorushServer (line 62) | type UnimplementedGorushServer struct method Send (line 64) | func (UnimplementedGorushServer) Send(context.Context, *NotificationRe... method testEmbeddedByValue (line 67) | func (UnimplementedGorushServer) testEmbeddedByValue() {} type UnsafeGorushServer (line 72) | type UnsafeGorushServer interface function RegisterGorushServer (line 76) | func RegisterGorushServer(s grpc.ServiceRegistrar, srv GorushServer) { function _Gorush_Send_Handler (line 87) | func _Gorush_Send_Handler(srv interface{}, ctx context.Context, dec func... constant Health_Check_FullMethodName (line 122) | Health_Check_FullMethodName = "/proto.Health/Check" type HealthClient (line 128) | type HealthClient interface type healthClient (line 132) | type healthClient struct method Check (line 140) | func (c *healthClient) Check(ctx context.Context, in *HealthCheckReque... function NewHealthClient (line 136) | func NewHealthClient(cc grpc.ClientConnInterface) HealthClient { type HealthServer (line 153) | type HealthServer interface type UnimplementedHealthServer (line 162) | type UnimplementedHealthServer struct method Check (line 164) | func (UnimplementedHealthServer) Check(context.Context, *HealthCheckRe... method testEmbeddedByValue (line 167) | func (UnimplementedHealthServer) testEmbeddedByValue() {} type UnsafeHealthServer (line 172) | type UnsafeHealthServer interface function RegisterHealthServer (line 176) | func RegisterHealthServer(s grpc.ServiceRegistrar, srv HealthServer) { function _Health_Check_Handler (line 187) | func _Health_Check_Handler(srv interface{}, ctx context.Context, dec fun... FILE: rpc/server.go type Server (line 33) | type Server struct method Check (line 49) | func (s *Server) Check( method Send (line 70) | func (s *Server) Send( function NewServer (line 41) | func NewServer(cfg *config.ConfYaml) *Server { function safeIntToInt32 (line 146) | func safeIntToInt32(n int) (int32, error) { function RunGRPCServer (line 154) | func RunGRPCServer(ctx context.Context, cfg *config.ConfYaml) error { FILE: rpc/server_test.go function TestSafeIntToInt32 (line 8) | func TestSafeIntToInt32(t *testing.T) { FILE: status/status.go type App (line 26) | type App struct type AndroidStatus (line 39) | type AndroidStatus struct type IosStatus (line 45) | type IosStatus struct type HuaweiStatus (line 51) | type HuaweiStatus struct function InitAppStatus (line 57) | func InitAppStatus(conf *config.ConfYaml) error { FILE: status/status_test.go constant redisEngine (line 14) | redisEngine = "redis" function TestMain (line 16) | func TestMain(m *testing.M) { function TestStorageDriverExist (line 20) | func TestStorageDriverExist(t *testing.T) { function TestStatForMemoryEngine (line 27) | func TestStatForMemoryEngine(t *testing.T) { function TestRedisServerSuccess (line 55) | func TestRedisServerSuccess(t *testing.T) { function TestRedisServerError (line 65) | func TestRedisServerError(t *testing.T) { function TestStatForRedisEngine (line 75) | func TestStatForRedisEngine(t *testing.T) { function TestDefaultEngine (line 104) | func TestDefaultEngine(t *testing.T) { function TestStatForBoltDBEngine (line 131) | func TestStatForBoltDBEngine(t *testing.T) { FILE: status/storage.go type StateStorage (line 7) | type StateStorage struct method Init (line 17) | func (s *StateStorage) Init() error { method Close (line 21) | func (s *StateStorage) Close() error { method Reset (line 26) | func (s *StateStorage) Reset() { method AddTotalCount (line 37) | func (s *StateStorage) AddTotalCount(count int64) { method AddIosSuccess (line 42) | func (s *StateStorage) AddIosSuccess(count int64) { method AddIosError (line 47) | func (s *StateStorage) AddIosError(count int64) { method AddAndroidSuccess (line 52) | func (s *StateStorage) AddAndroidSuccess(count int64) { method AddAndroidError (line 57) | func (s *StateStorage) AddAndroidError(count int64) { method AddHuaweiSuccess (line 62) | func (s *StateStorage) AddHuaweiSuccess(count int64) { method AddHuaweiError (line 67) | func (s *StateStorage) AddHuaweiError(count int64) { method GetTotalCount (line 72) | func (s *StateStorage) GetTotalCount() int64 { method GetIosSuccess (line 77) | func (s *StateStorage) GetIosSuccess() int64 { method GetIosError (line 82) | func (s *StateStorage) GetIosError() int64 { method GetAndroidSuccess (line 87) | func (s *StateStorage) GetAndroidSuccess() int64 { method GetAndroidError (line 92) | func (s *StateStorage) GetAndroidError() int64 { method GetHuaweiSuccess (line 97) | func (s *StateStorage) GetHuaweiSuccess() int64 { method GetHuaweiError (line 102) | func (s *StateStorage) GetHuaweiError() int64 { function NewStateStorage (line 11) | func NewStateStorage(store core.Storage) *StateStorage { FILE: storage/badger/badger.go function New (line 17) | func New(dbPath string) *Storage { type Storage (line 24) | type Storage struct method Add (line 33) | func (s *Storage) Add(key string, count int64) { method Set (line 39) | func (s *Storage) Set(key string, count int64) { method Get (line 45) | func (s *Storage) Get(key string) int64 { method Init (line 52) | func (s *Storage) Init() error { method Close (line 66) | func (s *Storage) Close() error { method setBadger (line 74) | func (s *Storage) setBadger(key string, count int64) { method getBadger (line 84) | func (s *Storage) getBadger(key string) int64 { FILE: storage/badger/badger_test.go function TestBadgerEngine (line 13) | func TestBadgerEngine(t *testing.T) { FILE: storage/boltdb/boltdb.go function New (line 16) | func New(dbPath, bucket string) *Storage { type Storage (line 24) | type Storage struct method Add (line 31) | func (s *Storage) Add(key string, count int64) { method Set (line 37) | func (s *Storage) Set(key string, count int64) { method Get (line 43) | func (s *Storage) Get(key string) int64 { method Init (line 50) | func (s *Storage) Init() error { method Close (line 60) | func (s *Storage) Close() error { method setBoltDB (line 68) | func (s *Storage) setBoltDB(key string, count int64) { method getBoltDB (line 75) | func (s *Storage) getBoltDB(key string) int64 { FILE: storage/boltdb/boltdb_test.go function TestBoltDBEngine (line 13) | func TestBoltDBEngine(t *testing.T) { FILE: storage/buntdb/buntdb.go function New (line 17) | func New(dbPath string) *Storage { type Storage (line 24) | type Storage struct method Add (line 30) | func (s *Storage) Add(key string, count int64) { method Set (line 36) | func (s *Storage) Set(key string, count int64) { method Get (line 42) | func (s *Storage) Get(key string) int64 { method Init (line 49) | func (s *Storage) Init() error { method Close (line 59) | func (s *Storage) Close() error { method setBuntDB (line 67) | func (s *Storage) setBuntDB(key string, count int64) { method getBuntDB (line 79) | func (s *Storage) getBuntDB(key string) int64 { FILE: storage/buntdb/buntdb_test.go function TestBuntDBEngine (line 13) | func TestBuntDBEngine(t *testing.T) { FILE: storage/leveldb/leveldb.go function New (line 27) | func New(dbPath string) *Storage { type Storage (line 34) | type Storage struct method setLevelDB (line 15) | func (s *Storage) setLevelDB(key string, count int64) { method getLevelDB (line 20) | func (s *Storage) getLevelDB(key string) int64 { method Add (line 40) | func (s *Storage) Add(key string, count int64) { method Set (line 46) | func (s *Storage) Set(key string, count int64) { method Get (line 52) | func (s *Storage) Get(key string) int64 { method Init (line 59) | func (s *Storage) Init() error { method Close (line 69) | func (s *Storage) Close() error { FILE: storage/leveldb/leveldb_test.go function TestLevelDBEngine (line 13) | func TestLevelDBEngine(t *testing.T) { FILE: storage/memory/memory.go function New (line 14) | func New() *Storage { type Storage (line 19) | type Storage struct method getValueBtKey (line 23) | func (s *Storage) getValueBtKey(key string) *atomic.Int64 { method Add (line 32) | func (s *Storage) Add(key string, count int64) { method Set (line 36) | func (s *Storage) Set(key string, count int64) { method Get (line 40) | func (s *Storage) Get(key string) int64 { method Init (line 45) | func (*Storage) Init() error { method Close (line 50) | func (*Storage) Close() error { FILE: storage/memory/memory_test.go function TestMemoryEngine (line 13) | func TestMemoryEngine(t *testing.T) { FILE: storage/redis/redis.go function New (line 18) | func New( type Storage (line 36) | type Storage struct method Add (line 46) | func (s *Storage) Add(key string, count int64) { method Set (line 50) | func (s *Storage) Set(key string, count int64) { method Get (line 54) | func (s *Storage) Get(key string) int64 { method Init (line 61) | func (s *Storage) Init() error { method Close (line 80) | func (s *Storage) Close() error { FILE: storage/redis/redis_test.go function TestRedisServerError (line 13) | func TestRedisServerError(t *testing.T) { function TestRedisEngine (line 26) | func TestRedisEngine(t *testing.T) {