#pragma once #include #include // ZLMediaKit #include "Util/logger.h" #include "Util/NoticeCenter.h" #include "Poller/EventPoller.h" #include "Player/PlayerProxy.h" #include "Rtmp/RtmpPusher.h" #include "Common/config.h" #include "Pusher/MediaPusher.h" #include "Extension/Frame.h" #include "Util/SqlPool.h" #include "Network/TcpClient.h" #include "Poller/Timer.h" #include "TCPClient.h" #include "inifile.h" #include #include #include #include #include "inference.h" #include "DataSource.h" // dataType #include "SendLogin.h" #include "NettyServerCommandEnum.h" #include "NettyServerResultMsg.h" #include "NettyClientResultMsg.h" #include "SendLogin.h" #include "NettyClientCommandEnum.h" #include "InferData.h" #include "PIDSClientResultMsg.h" #include "PIDSServerResultMsg.h" #include "Notices.h" using namespace toolkit; using namespace mediakit; using namespace inifile; using namespace std; namespace MIVA { class UserApp { public: static std::shared_ptr CreateNew(); UserApp(); ~UserApp(); int32_t Init(std::string appName); void Destroy(); void StartTask(); static void makeAddr(struct sockaddr *out,const char *ip,uint16_t port); static uint32_t DataCalculation(uint32_t noLoad, uint32_t dynamicLoad, int num); static uint8_t GradeDetermination(int num); private: IniFile m_ini; std::string m_appName; const std::string m_configSrc = "../config/config.ini"; private: // Natty std::string Netty_ip; int32_t Netty_port; std::string Netty_idName; // PIS std::string PIS_ip; int32_t PIS_port; std::string PIS_IdName; // Mysql std::string sql_ip; int32_t sql_port; std::string user; std::string password; std::string character; int device_id; private: std::shared_ptr m_tcpClient = NULL; std::shared_ptr m_Infer = NULL; Socket::Ptr m_udpClient = NULL; std::list DataList; Timer::Ptr m_timer0; Timer::Ptr m_timer1; Timer::Ptr m_timer2; private: void ListenInfer(int Source_id, int num); void ListenNettyData(const Buffer::Ptr &pBuf); void ListenPISData(const Buffer::Ptr &buf, struct sockaddr *addr); void ListenClosed(); void ConnectNetty(); void ReportData(); }; }