39 } |
39 } |
40 |
40 |
41 virtual ~GenericASN1ContentHandler() { |
41 virtual ~GenericASN1ContentHandler() { |
42 } |
42 } |
43 |
43 |
|
44 void writeStreamStart() override { |
|
45 handlers.writeStartElement("asn1"); |
|
46 } |
|
47 |
|
48 void writeStreamEnd() override { |
|
49 handlers.writeEndElement(); |
|
50 } |
|
51 |
44 void writeCollectionStart(CollectionType type) override { |
52 void writeCollectionStart(CollectionType type) override { |
45 handlers.writeComment("collection start"); |
53 if (type == CollectionType::Sequence) handlers.writeStartElement("sequence"); |
|
54 else if (type == CollectionType::Set) handlers.writeStartElement("set"); |
|
55 else handlers.writeStartElement("unknown-collection"); // TODO: exception? |
46 } |
56 } |
47 |
57 |
48 void writeCollectionEnd() override { |
58 void writeCollectionEnd() override { |
49 handlers.writeComment("collection end"); |
59 handlers.writeEndElement(); |
50 } |
60 } |
51 |
61 |
52 void writeBoolean(bool value) override { |
62 void writeBoolean(bool value) override { |
53 handlers.writeComment("boolean"); |
63 handlers.writeStartElement("boolean"); |
|
64 handlers.writeCharacters(value ? "true" : "false"); |
|
65 handlers.writeEndElement(); |
54 } |
66 } |
55 |
67 |
56 void writeNull() override { |
68 void writeNull() override { |
57 handlers.writeComment("null"); |
69 handlers.writeStartElement("null"); |
|
70 handlers.writeEndElement(); |
58 } |
71 } |
59 |
72 |
60 void writeInteger(int64_t value) override { |
73 void writeInteger(int64_t value) override { |
61 handlers.writeComment("integer"); |
74 handlers.writeStartElement("integer"); |
|
75 handlers.writeCharacters(std::to_string(value)); |
|
76 handlers.writeEndElement(); |
62 } |
77 } |
63 |
78 |
64 void writeString(StringType type, std::string value) override { |
79 void writeString(StringType type, std::string value) override { |
65 handlers.writeComment("string"); |
80 handlers.writeStartElement("string"); |
|
81 handlers.writeCharacters(value); |
|
82 handlers.writeEndElement(); |
66 } |
83 } |
67 |
84 |
68 }; |
85 }; |
69 |
86 |
70 } |
87 } |