text: // Generated by the MSProtoc compiler.  DO NOT EDIT!
  // source: MSProtoEvent.proto
  
  #pragma once
  #include "MSProtocol/MSPacket.h"
  
  #include "MSProtoPublic.pb.h"
  namespace Milesight {
  namespace Protocol {
  
  
  // ===================================================================
  
  struct MSProtoEventSourceDevice :public MSPacket
  {
   public:
  	// filed devid Required !!
  	uint64_t devid=0;
  	uint32_t alarminput=0;
  
  	bool operator==(const MSProtoEventSourceDevice& _opt_msg_) const
  	{
  		return devid == _opt_msg_.devid
  			&& alarminput == _opt_msg_.alarminput;
  	}
  
  private:
  	const char* getTypeName()const{return "MSProtoEventSourceDevice";}
  };
  
  // -------------------------------------------------------------------
  
  struct MSProtoEventActionUser :public MSPacket
  {
   public:
  	// filed userName Required !!
  	std::string userName;
  
  	bool operator==(const MSProtoEventActionUser& _opt_msg_) const
  	{
  		return userName == _opt_msg_.userName;
  	}
  
  private:
  	const char* getTypeName()const{return "MSProtoEventActionUser";}
  };
  
  // -------------------------------------------------------------------
  
  struct MSProtoEventActionDevice :public MSPacket
  {
   public:
  	// filed devid Required !!
  	uint64_t devid=0;
  	uint32_t alarmoutput=0;
  	uint32_t ptzPreset=0;
  
  	bool operator==(const MSProtoEventActionDevice& _opt_msg_) const
  	{
  		return devid == _opt_msg_.devid
  			&& alarmoutput == _opt_msg_.alarmoutput
  			&& ptzPreset == _opt_msg_.ptzPreset;
  	}
  
  private:
  	const char* getTypeName()const{return "MSProtoEventActionDevice";}
  };
  
  // -------------------------------------------------------------------
  
  struct MSProtoEventSchedule :public MSPacket
  {
   public:
  	std::string week1;
  	std::string week2;
  	std::string week3;
  	std::string week4;
  	std::string week5;
  	std::string week6;
  	std::string week7;
  
  	bool operator==(const MSProtoEventSchedule& _opt_msg_) const
  	{
  		return week1 == _opt_msg_.week1
  			&& week2 == _opt_msg_.week2
  			&& week3 == _opt_msg_.week3
  			&& week4 == _opt_msg_.week4
  			&& week5 == _opt_msg_.week5
  			&& week6 == _opt_msg_.week6
  			&& week7 == _opt_msg_.week7;
  	}
  
  private:
  	const char* getTypeName()const{return "MSProtoEventSchedule";}
  };
  
  // -------------------------------------------------------------------
  
  struct MSProtoEventRule :public MSPacket
  {
   public:
  	// filed id Required !!
  	uint32_t id=0;
  	// filed source Required !!
  	MSProtoEventRulesSource source=(MSProtoEventRulesSource)0;
  	// filed sourcestatus Required !!
  	MSProtoEventRulesSourceStatus sourcestatus=(MSProtoEventRulesSourceStatus)0;
  	std::vector<MSProtoEventSourceDevice> sourcedevices;
  	// filed action Required !!
  	MSProtoEventRulesAction action=(MSProtoEventRulesAction)0;
  	// filed actionForAllUser Required !!
  	bool actionForAllUser=false;
  	std::vector<MSProtoEventActionUser> actionUsers;
  	std::vector<MSProtoEventActionDevice> actiondevices;
  	uint32_t actionDuration=0;
  	uint32_t actionInterval=0;
  	// filed enable Required !!
  	bool enable=false;
  	// filed isSystem Required !!
  	bool isSystem=false;
  	MSProtoEventSchedule schedule;
  
  	bool operator==(const MSProtoEventRule& _opt_msg_) const
  	{
  		return id == _opt_msg_.id
  			&& source == _opt_msg_.source
  			&& sourcestatus == _opt_msg_.sourcestatus
  			&& sourcedevices == _opt_msg_.sourcedevices
  			&& action == _opt_msg_.action
  			&& actionForAllUser == _opt_msg_.actionForAllUser
  			&& actionUsers == _opt_msg_.actionUsers
  			&& actiondevices == _opt_msg_.actiondevices
  			&& actionDuration == _opt_msg_.actionDuration
  			&& actionInterval == _opt_msg_.actionInterval
  			&& enable == _opt_msg_.enable
  			&& isSystem == _opt_msg_.isSystem
  			&& schedule == _opt_msg_.schedule;
  	}
  
  private:
  	const char* getTypeName()const{return "MSProtoEventRule";}
  };
  
  // -------------------------------------------------------------------
  
  struct MSProtoEventRules :public MSPacket
  {
   public:
  	std::vector<MSProtoEventRule> rules;
  
  	bool operator==(const MSProtoEventRules& _opt_msg_) const
  	{
  		return rules == _opt_msg_.rules;
  	}
  
  private:
  	const char* getTypeName()const{return "MSProtoEventRules";}
  };
  
  
  }
  }
  