src/lib/GenericASN1ContentHandler.h
branchv_0
changeset 9 7a6abdd00ab5
parent 8 d37c1a5d09ce
child 15 95ca127ba816
--- 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();
 	}
 
 };