package com.mortals.xhx.base.system.message;

import com.mortals.xhx.busiz.req.DeviceReq;
import com.mortals.xhx.busiz.rsp.ApiResp;
import com.mortals.xhx.queue.TbQueueCallback;
import com.mortals.xhx.queue.TbQueueMsgHeaders;
import com.mortals.xhx.queue.TopicPartitionInfo;


public interface MessageService {


    /**
     * 发送消息
     *
     * @param info
     * @param header
     * @param message
     * @param callback
     */
    void send(TopicPartitionInfo info, TbQueueMsgHeaders header, String message, TbQueueCallback callback);


    /**
     * 请求队列
     *
     * @param info
     * @param callback
     */
    void queueDeclare(TopicPartitionInfo info, TbQueueCallback callback);


    /**
     * 删除队列
     */
    void delQueue(String queue, TbQueueCallback callback);

    /**
     * 获取鉴权token
     */
    String getBasePlatformToken();

    /**
     * 获取站点树
     *
     * @return
     */
    String siteTree();

    /**
     * 发送第三方平台crud消息
     *
     * @param sendUrl
     * @param deviceReq
     * @return
     */
    ApiResp<String> sendThirdParty(String sendUrl, DeviceReq deviceReq);


    /**
     * 发送第三方平台四二班透传消息
     *
     * @param sendUrl
     * @param content
     * @return
     */
    void sendThirdParty(String sendUrl, String content);

}