Add an optional sizeOut parameter to Metal Claw write
This commit is contained in:
@@ -51,4 +51,8 @@ void MetalClawWriter::setFields(int fields) {
|
|||||||
m_fieldPresence.setMaxLen(m_buffIt);
|
m_fieldPresence.setMaxLen(m_buffIt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
size_t MetalClawWriter::size() {
|
||||||
|
return m_buffIt;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+8
-2
@@ -49,6 +49,8 @@ class MetalClawWriter {
|
|||||||
|
|
||||||
void setFields(int fields);
|
void setFields(int fields);
|
||||||
|
|
||||||
|
size_t size();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
template<typename I>
|
template<typename I>
|
||||||
int appendInteger(I val);
|
int appendInteger(I val);
|
||||||
@@ -144,9 +146,13 @@ int MetalClawWriter::op(const char*, T *val, size_t len) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
int write(uint8_t *buff, size_t buffLen, T *val) {
|
int write(uint8_t *buff, size_t buffLen, T *val, size_t *sizeOut = nullptr) {
|
||||||
MetalClawWriter writer(buff, buffLen);
|
MetalClawWriter writer(buff, buffLen);
|
||||||
return ioOp(&writer, val);
|
auto err = ioOp(&writer, val);
|
||||||
|
if (sizeOut) {
|
||||||
|
*sizeOut = writer.size();
|
||||||
|
}
|
||||||
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user