#pragma once
|
#include "stdafx.h"
|
#include <iostream>
|
#include "tinyxml2.h"
|
#include <string>
|
#include <ctime>
|
|
using namespace std;
|
using namespace tinyxml2;
|
|
|
|
enum class StartupMode {
|
ColdStart,
|
HotStart
|
};
|
|
class NetworkConfig
|
{
|
private:
|
tinyxml2::XMLDocument doc; // ÓÃÓÚ´æ´¢ XML ÎĵµµÄ¶ÔÏó
|
bool loaded; // ±ê¼Ç XML ÎļþÊÇ·ñ³É¹¦¼ÓÔØ
|
static bool startupModeSelected;
|
|
public:
|
NetworkConfig(const string& xmlFilePath);
|
~NetworkConfig();
|
|
|
bool isLoaded() const;// ¼ì²é XML ÎļþÊÇ·ñ³É¹¦¼ÓÔØ
|
bool getTCPConfig(string& ipAddress, int& portNumber);//»ñÈ¡TCPÅäÖÃÐÅÏ¢£¬·µ»ØIPµØÖ·ºÍ¶Ë¿ÚºÅ
|
bool getRTSPConfig(string& ipAddress, int& portNumber);//»ñÈ¡RTSPÅäÖÃÐÅÏ¢£¬·µ»ØIPµØÖ·ºÍ¶Ë¿ÚºÅ
|
bool getLogConfig(string& path, int& size);// »ñÈ¡ ÈÕÖ¾ ÅäÖÃÐÅÏ¢
|
bool getMySQLConfig(string& ip, int& port, string& db, string& user, string& password);// »ñÈ¡ MySQL ÅäÖÃÐÅÏ¢
|
bool getPictureManagementRootPath(string& rootPath);// »ñÈ¡ ͼƬ¹ÜÀí ¸ù·¾¶
|
// Ìí¼Ó»ñȡԤ´¦ÀíÉú³ÉͼƬµÄ¸ù·¾¶µÄ³ÉÔ±º¯Êý
|
bool getPreprocessedPictureRootPath(std::string & rootPath);
|
bool getVideoManagementRootPath(string& rootPath);// »ñÈ¡ ÊÓÆµ¹ÜÀí ¸ù·¾¶
|
bool getCNNModelSavePath(string& path);// »ñÈ¡ CNN Ä£Ðͱ£´æÂ·¾¶
|
bool getVersionManagementRootPath(string& rootPath); // »ñÈ¡ °æ±¾¹ÜÀí ¸ù·¾¶
|
bool getStartupMode(string& mode);// »ñÈ¡ Æô¶¯Ä£Ê½
|
bool setStartupMode(const string& mode);// ÉèÖà Æô¶¯Ä£Ê½
|
bool saveXML(const string& xmlFilePath);// ±£´æÐ޸ĺóµÄ XML Îļþµ½Ö¸¶¨Â·¾¶
|
|
void coldStart();
|
void hotStart(NetworkConfig& oldParser);
|
bool isConfigUpdated(const string& xmlFilePath, time_t& lastModifiedTime);// ¼ì²éÅäÖÃÎļþÊÇ·ñÓиüÐÂ
|
void restartServices(StartupMode currentMode, const string& xmlFilePath, time_t& lastModifiedTime);
|
|
bool setTCPConfig(const std::string& ipAddress, int portNumber);
|
|
};
|