--- a/src/lib/GenericASN1ContentHandler.h Sat Jun 12 21:29:18 2021 +0200
+++ b/src/lib/GenericASN1ContentHandler.h Sat Jun 12 22:37:44 2021 +0200
@@ -41,28 +41,45 @@
virtual ~GenericASN1ContentHandler() {
}
+ void writeStreamStart() override {
+ handlers.writeStartElement("asn1");
+ }
+
+ void writeStreamEnd() override {
+ handlers.writeEndElement();
+ }
+
void writeCollectionStart(CollectionType type) override {
- handlers.writeComment("collection start");
+ if (type == CollectionType::Sequence) handlers.writeStartElement("sequence");
+ else if (type == CollectionType::Set) handlers.writeStartElement("set");
+ else handlers.writeStartElement("unknown-collection"); // TODO: exception?
}
void writeCollectionEnd() override {
- handlers.writeComment("collection end");
+ handlers.writeEndElement();
}
void writeBoolean(bool value) override {
- handlers.writeComment("boolean");
+ handlers.writeStartElement("boolean");
+ handlers.writeCharacters(value ? "true" : "false");
+ handlers.writeEndElement();
}
void writeNull() override {
- handlers.writeComment("null");
+ handlers.writeStartElement("null");
+ handlers.writeEndElement();
}
void writeInteger(int64_t value) override {
- handlers.writeComment("integer");
+ handlers.writeStartElement("integer");
+ handlers.writeCharacters(std::to_string(value));
+ handlers.writeEndElement();
}
void writeString(StringType type, std::string value) override {
- handlers.writeComment("string");
+ handlers.writeStartElement("string");
+ handlers.writeCharacters(value);
+ handlers.writeEndElement();
}
};