knx/files/group_object_table_object.h
2018-11-07 20:54:27 +01:00

32 lines
960 B
C++

#pragma once
#include "table_object.h"
#include "group_object.h"
class GroupObjectTableObject: public TableObject
{
friend class GroupObject;
public:
GroupObjectTableObject(uint8_t* memoryReference);
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Woverloaded-virtual"
void readProperty(PropertyID id, uint32_t start, uint32_t& count, uint8_t* data);
#pragma GCC diagnostic pop
uint16_t entryCount();
GroupObject& get(uint16_t asap);
GroupObject& nextUpdatedObject(bool& valid);
void groupObjects(GroupObject* objs, uint16_t size);
virtual uint8_t* save(uint8_t* buffer);
virtual uint8_t* restore(uint8_t* buffer);
protected:
virtual void beforeStateChange(LoadState& newState);
uint8_t propertyCount();
PropertyDescription* propertyDescriptions();
private:
bool initGroupObjects();
uint16_t* _tableData = 0;
GroupObject* _groupObjects;
uint16_t _groupObjectCount;
};