/*
 * seqITcs.hpp
 *
 *  Created on: 14 March, 2023
 *      Author: fulvio, davide
 */

#ifndef OBS_CTRL_SEQISNMP_HPP_
#define OBS_CTRL_SEQISNMP_HPP_

#include <string>

// LBTO IIF

#include "util/Macro.h"
#include "util/shins_util.h"

#define EXIT_WARNING 2

namespace su = shins::util;

class SeqSnmp
{
public:
    SeqSnmp(Ice::PropertiesPtr props);
    ~SeqSnmp();

    int Setup(const std::map<std::string, std::string> & setup_pdu);
    int GetPdu(const std::string & device, std::string & set_on);
    int getJsonStatus(std::string & jsonStatus);
    std::vector<std::string> m_Outlets;


// Service Calls
private:
    int SetPdu(std::string hostname, std::string device, std::string set_on);
    static SeqSnmp * m_pSeqSnmp;
    std::map<std::string, std::string> outletCmdDict;
    std::map<std::string, std::string> aliasPdu1, aliasPdu2; // DEVICE:#OUTLET

    std::string hostnamePdu1, hostnamePdu2;
    std::string CommonOidPath, ControlPath, StatusPath;

};


#endif /* OBS_CTRL_SEQISNMP_HPP_ */
