All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.simbot.component.mirai.CacheMapConfigurations.kt Maven / Gradle / Ivy

There is a newer version: 1.11.0-1.17-Final
Show newest version
/*
 *
 * Copyright (c) 2020. ForteScarlet All rights reserved.
 * Project  component-mirai
 * File     CacheMapConfigurations.kt
 *
 * You can contact the author through the following channels:
 *  github https://github.com/ForteScarlet
 *  gitee  https://gitee.com/ForteScarlet
 *  email  [email protected]
 *  QQ     1149159218
 *  The Mirai code is copyrighted by mamoe-mirai
 *  you can see mirai at https://github.com/mamoe/mirai
 *
 *
 */

package com.simbot.component.mirai

import com.forte.config.Conf
import com.forte.config.ConfigurationHelper
import com.forte.config.InjectableConfig
import java.util.concurrent.TimeUnit


/**
 * 几大缓存类的配置类
 */
class CacheMapConfigurationInjectable {
    val recallCacheConfigurationInjectableConfig: InjectableConfig = ConfigurationHelper.toInjectable(RecallCacheConfiguration::class.java)

    val requestCacheConfigurationInjectableConfig: InjectableConfig = ConfigurationHelper.toInjectable(RequestCacheConfiguration::class.java)

    val imageCacheConfigurationInjectableConfig: InjectableConfig = ConfigurationHelper.toInjectable(ImageCacheConfiguration::class.java)

    val voiceCacheConfigurationInjectableConfig: InjectableConfig = ConfigurationHelper.toInjectable(VoiceCacheConfiguration::class.java)

    val contactCacheConfigurationInjectableConfig: InjectableConfig = ConfigurationHelper.toInjectable(ContactCacheConfiguration::class.java)
}

/**
 * [com.simbot.component.mirai.collections.RecallCache]的配置类
 */
@Conf("simbot.mirai.cache.recall")
class RecallCacheConfiguration(
        /**
         * 清理缓存临界值, 当计数器达到指定值则触发一次清理
         */
        @Conf("check", comment = "清理缓存临界值, 当计数器达到指定值则触发一次清理")
        var check: Int = 1000,
        /**
         * 缓存时间
         */
        @Conf("cacheTime", comment = "缓存时间(ms)")
        var cacheTime: Long = TimeUnit.MINUTES.toMillis(15),
        /**
         * 内部缓存的初始容量
         */
        @Conf("initialCapacity", comment = "内部缓存的初始容量")
        var initialCapacity: Int = 32,

        /**
         * 缓存的最大容量
         */
        @Conf("max", comment = "缓存的最大容量")
        var max: Long = 512
)


/**
 * [com.simbot.component.mirai.collections.RequestCache] 使用的配置类
 */
@Conf("simbot.mirai.cache.request")
class RequestCacheConfiguration(
        /**
         * 清理缓存临界值, 当计数器达到1000则触发一次清理
         */
        @Conf("check", comment = "清理缓存临界值, 当计数器达到指定值则触发一次清理")
        var check: Int = 1000,
        /**
         * 默认缓存
         */
        @Conf("cacheTime", comment = "缓存时间(ms)")
        var cacheTime: Long = TimeUnit.MINUTES.toMillis(5),
        /**
         * 内部缓存的初始容量
         */
        @Conf("friend.initialCapacity", comment = "好友相关的请求的内部缓存的初始容量")
        var friendRequestInitialCapacity: Int = 32,
        /**
         * 内部缓存的初始容量
         */
        @Conf("join.initialCapacity", comment = "群相关的请求的内部缓存的初始容量")
        var joinRequestInitialCapacity: Int = 32,
        /**
         * 缓存的最大容量
         */
        @Conf("friend.max", comment = "好友相关的缓存的最大容量")
        var friendRequestMax: Long = 256,
        /**
         * 缓存的最大容量
         */
        @Conf("join.max", comment = "群相关的缓存的最大容量")
        var joinRequestMax: Long = 256
)

/**
 * [com.simbot.component.mirai.collections.ImageCache] 使用的配置类
 */
@Conf("simbot.mirai.cache.image")
class ImageCacheConfiguration(
        /**
         * 清理缓存临界值, 当计数器达到1000则触发一次清理
         */
        @Conf("check", comment = "清理缓存临界值, 当计数器达到指定值则触发一次清理")
        var check: Int = 1000,
        /**
         * 默认缓存
         */
        @Conf("cacheTime", comment = "缓存时间(ms)")
        var cacheTime: Long = TimeUnit.MINUTES.toMillis(5),
        /**
         * 内部缓存的初始容量
         */
        @Conf("initialCapacity", comment = "内部缓存的初始容量")
        var initialCapacity: Int = 32,
        /**
         * 缓存的最大容量
         */
        @Conf("max", comment = "缓存的最大容量")
        var max: Long = 256
)

/**
 * [com.simbot.component.mirai.collections.VoiceCache] 使用的配置类
 */
@Conf("simbot.mirai.cache.voice")
class VoiceCacheConfiguration(
        /**
         * 清理缓存临界值, 当计数器达到1000则触发一次清理
         * 如果小于0,则不会检查, 如果等于0,则每次都会检查
         */
        @Conf("check", comment = "清理缓存临界值, 当计数器达到指定值则触发一次清理")
        var check: Int = 1000,
        /**
         * 默认缓存
         */
        @Conf("cacheTime", comment = "缓存时间(ms)")
        var cacheTime: Long = TimeUnit.MINUTES.toMillis(5),
        /**
         * 内部缓存的初始容量
         */
        @Conf("initialCapacity", comment = "内部缓存的初始容量")
        var initialCapacity: Int = 32,
        /**
         * 缓存的最大容量
         */
        @Conf("max", comment = "缓存的最大容量")
        var max: Long = 256
)

/**
 * [com.simbot.component.mirai.collections.ContactCache] 使用的配置类
 */
@Conf("simbot.mirai.cache.contact")
class ContactCacheConfiguration(
        /**
         * 清理缓存临界值, 当计数器达到1000则触发一次清理
         */
        @Conf("check", comment = "清理缓存临界值, 当计数器达到指定值则触发一次清理")
        var check: Int = 1000,
        /**
         * 默认缓存
         */
        @Conf("cacheTime", comment = "缓存时间(ms)")
        var cacheTime: Long = TimeUnit.MINUTES.toMillis(5),
        /**
         * 内部缓存的初始容量
         */
        @Conf("initialCapacity", comment = "内部缓存的初始容量")
        var initialCapacity: Int = 32,

        /**
         * 缓存的最大容量
         */
        @Conf("max", comment = "缓存的最大容量")
        var max: Long = 256
)









© 2015 - 2024 Weber Informatics LLC | Privacy Policy