package com.imofan.android.basic.config;

import android.content.Context;

import java.util.Map;

/**
 * 获取在线配置时的监听器接口，用于在获取到配置信息后进行业务代码的处理,分别有接受网络上的在线配置方法
 * {@link #onReceived(Context, Map)},在线配置变化时触发的{@link #onChanged(Context, Map)}
 * 方法，以及获取在线配置失败的{@link #onFailed(Context)}方法,其中
 * {@link com.imofan.android.basic.config.MFConfigService#updateConfig(Context, MFConfigListener)}方法需要该接口的实现对象
 * 
 */
public interface MFConfigListener {

    /**
     * 接收到在线配置时触发的回调方法
     * 
     * @param context
     *            当前context对象
     * @param configs
     *            获取到的在线配置
     */
    public void onReceived(Context context, Map<String, String> configs);

    /**
     * 当在线配置发生变化时触发的回调方法
     * 
     * @param context
     *            当前context对象
     * @param changedConfigs
     *            发生变化的在线配置
     */
    public void onChanged(Context context, Map<String, String> changedConfigs);

    /**
     * 当获取在线配置失败时触发的回调方法
     * 
     * @param context
     *            当前context对象
     */
    public void onFailed(Context context);
}
