src/lib/ASN1ContentHandler.h
branchv_0
changeset 35 bf2c546f49d1
parent 27 d9cc2d356cdb
child 40 85b6f13f1088
equal deleted inserted replaced
34:c15dc8762bdb 35:bf2c546f49d1
   289 	// Embedded PVD
   289 	// Embedded PVD
   290 	// Relative OID
   290 	// Relative OID
   291 	// OID-IRI
   291 	// OID-IRI
   292 	// Relative OID-IRI
   292 	// Relative OID-IRI
   293 
   293 
       
   294 	/**
       
   295 	 * Specific value that was not parsed.
       
   296 	 * May be processed in a generic way (as binary data or ASCII or UTF-8 string, when possible)
       
   297 	 * or according to given application, context or private specification.
       
   298 	 * 
       
   299 	 * @param value original raw data
       
   300 	 */
       
   301 	virtual void writeSpecific(const Header& header, std::string value) = 0;
       
   302 
   294 };
   303 };
   295 
   304 
   296 class ASN1ContentHandlerProxy : public ASN1ContentHandler {
   305 class ASN1ContentHandlerProxy : public ASN1ContentHandler {
   297 private:
   306 private:
   298 	ProxyVector<ASN1ContentHandler> handlers;
   307 	ProxyVector<ASN1ContentHandler> handlers;
   348 
   357 
   349 	void writeDateTime(const Header& header, DateTime value) override {
   358 	void writeDateTime(const Header& header, DateTime value) override {
   350 		handlers.forward(&ASN1ContentHandler::writeDateTime, header, value);
   359 		handlers.forward(&ASN1ContentHandler::writeDateTime, header, value);
   351 	}
   360 	}
   352 
   361 
       
   362 	void writeSpecific(const Header& header, std::string value) override {
       
   363 		handlers.forward(&ASN1ContentHandler::writeSpecific, header, value);
       
   364 	}
       
   365 
   353 };
   366 };
   354 
   367 
   355 
   368 
   356 }
   369 }
   357 }
   370 }