convert to taking a std::shared_ptr<Monitor> instead of a Monitor *. Implement Name() which just returns the std::string label.

pull/3506/head
Isaac Connor 2022-06-07 18:18:24 -04:00
parent dd1d194ec7
commit 78a87517f6
2 changed files with 7 additions and 6 deletions

View File

@ -825,7 +825,7 @@ bool Zone::ParseZoneString(const char *zone_string, int &zone_id, int &colour, P
return result;
} // end bool Zone::ParseZoneString(const char *zone_string, int &zone_id, int &colour, Polygon &polygon)
std::vector<Zone> Zone::Load(Monitor *monitor) {
std::vector<Zone> Zone::Load(std::shared_ptr<Monitor>monitor) {
std::vector<Zone> zones;
std::string sql = stringtf("SELECT Id,Name,Type+0,Units,Coords,AlarmRGB,CheckMethod+0,"

View File

@ -62,7 +62,7 @@ class Zone {
protected:
// Inputs
Monitor *monitor;
std::shared_ptr<Monitor>&monitor;
int id;
std::string label;
@ -126,7 +126,7 @@ class Zone {
public:
Zone(
Monitor *p_monitor,
std::shared_ptr<Monitor>p_monitor,
int p_id,
const char *p_label,
ZoneType p_type,
@ -156,7 +156,7 @@ class Zone {
Setup(p_type, p_polygon, p_alarm_rgb, p_check_method, p_min_pixel_threshold, p_max_pixel_threshold, p_min_alarm_pixels, p_max_alarm_pixels, p_filter_box, p_min_filter_pixels, p_max_filter_pixels, p_min_blob_pixels, p_max_blob_pixels, p_min_blobs, p_max_blobs, p_overload_frames, p_extend_alarm_frames );
}
Zone(Monitor *p_monitor, int p_id, const char *p_label, const Polygon &p_polygon)
Zone(std::shared_ptr<Monitor>&p_monitor, int p_id, const char *p_label, const Polygon &p_polygon)
:
monitor(p_monitor),
id(p_id),
@ -166,7 +166,7 @@ class Zone {
{
Setup(Zone::INACTIVE, p_polygon, kRGBBlack, (Zone::CheckMethod)0, 0, 0, 0, 0, Vector2(0, 0), 0, 0, 0, 0, 0, 0, 0, 0);
}
Zone(Monitor *p_monitor, int p_id, const char *p_label, ZoneType p_type, const Polygon &p_polygon)
Zone(std::shared_ptr<Monitor>&p_monitor, int p_id, const char *p_label, ZoneType p_type, const Polygon &p_polygon)
:
monitor(p_monitor),
id(p_id),
@ -182,6 +182,7 @@ class Zone {
inline int Id() const { return id; }
inline const char *Label() const { return label.c_str(); }
const std::string &Name() const { return label; }
inline ZoneType Type() const { return type; }
inline bool IsActive() const { return( type == ACTIVE ); }
inline bool IsInclusive() const { return( type == INCLUSIVE ); }
@ -214,7 +215,7 @@ class Zone {
static bool ParsePolygonString( const char *polygon_string, Polygon &polygon );
static bool ParseZoneString( const char *zone_string, int &zone_id, int &colour, Polygon &polygon );
static std::vector<Zone> Load(Monitor *monitor);
static std::vector<Zone> Load(std::shared_ptr<Monitor>monitor);
//=================================================
bool CheckOverloadCount();
int GetOverloadCount();