Hi, I'm looking for best practices in driver development. I have heard several opinions about whether in a new protocol I should add a "retrieved" column to a SNMP table (maybe saving some memory and computational power), or whether the SNMP table should be copied to an all "retrieved" table making it more "future proof" (in terms of version control) at the cost of memory.
What is your opinion regarding to this?
Hi Flavio,
Would it be possible to provide an example of what you mean of making it "future proof"? The main downside of copying the retrieved data is having extra load to copy it, having the duplicate data available in the SLProtocol process and if we are not careful having it also duplicate in the SLElement process when we are not hiding the root table e.g. the snmp table.
In case you are thinking of the case where the communication method to retrieve the data would change in the future e.g. an API, we need to make major changes in the driver and to keep the impact to a minimum we can reuse the same parameters of the snmp table and remove the snmp definitions from it.
For example
SNMP communication:
Table 100 with 3 snmp columns (101,102,103) filled in via polling the table
Change to HTTP communication:
Reuse table 100 with 3 retrieved columns (101,102,103) filled in via logic after polling a session
Laurens comment contains the correct answer, this can be closed.