| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- /*
- * Packet.h
- *
- * Created on: 2016年11月10日
- * Author: Mr_zhu
- * Content:
- */
-
- #ifndef SERVICEMODEL_PACKET_H_
- #define SERVICEMODEL_PACKET_H_
-
- #include <vector>
-
- #include "../common/Type.h"
- #include "Base.h"
- #include "Item.h"
-
- class Device;
-
- class Packet
- {
- public:
- Packet() :
- m_parent(NULL)
- {
-
- }
- virtual ~Packet()
- {
- }
-
- const CLSID& getClsid() const
- {
- return m_clsid;
- }
-
- void setClsid(const CLSID& clsid)
- {
- this->m_clsid = clsid;
- }
-
- const Device* getParent() const
- {
- return m_parent;
- }
-
- void setParent(Device* parent)
- {
- this->m_parent = parent;
- }
-
- std::vector<Item*>& getVitem()
- {
- return m_vitem;
- }
-
- void setVitem(const std::vector<Item*>& vitem)
- {
- this->m_vitem = vitem;
- }
-
- Base& getBase()
- {
- return m_base;
- }
-
- void setBase(const Base& base)
- {
- this->m_base = base;
- }
-
- HRESULT addItem(Item* item)
- {
- bool isexist = false;
-
- for (Item*& i : m_vitem)
- {
- if (i->isEqual(*item))
- {
- isexist = true;
- break;
- }
- }
- if (!isexist)
- {
- m_vitem.push_back(item);
-
- return S_OK;
- }
- return S_FALSE;
- }
-
- ULONG getItemCount()
- {
- return m_vitem.size();
- }
-
-
- public:
- bool isEqual(Packet& packet)
- {
- bool bresult = true;
-
- if ((packet.getClsid() == m_clsid) && (packet.getParent() == m_parent))
- {
- return true;
- }
- else
- {
- bresult = false;
- }
- std::vector<Item*>& v = packet.getVitem();
- if (this->getItemCount() == packet.getItemCount())
- {
- for (unsigned int i = 0; i < m_vitem.size(); i++)
- {
- if (!(m_vitem.at(i)->isEqual(*(v.at(i)))))
- {
- bresult = false;
- break;
- }
- }
- }
-
- return bresult;
- }
-
- void outInfo()
- {
-
- }
-
- std::map<int, int>& getMregstartIndex()
- {
- return m_mregstart_index;
- }
-
- void setMregstartIndex(std::map<int, int>& mregstartIndex)
- {
- m_mregstart_index = mregstartIndex;
- }
-
- private:
- CLSID m_clsid;
- Device* m_parent;
- std::vector<Item*> m_vitem;
-
- std::map<int, int> m_mregstart_index;
-
- Base m_base;
- };
-
- #endif /* SERVICEMODEL_PACKET_H_ */
|