src/lib/GenericASN1ContentHandler.h
branchv_0
changeset 9 7a6abdd00ab5
parent 8 d37c1a5d09ce
child 15 95ca127ba816
equal deleted inserted replaced
8:d37c1a5d09ce 9:7a6abdd00ab5
    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 }