src/lib/ASN1ContentHandler.h
branchv_0
changeset 9 7a6abdd00ab5
parent 8 d37c1a5d09ce
child 14 02725d301010
equal deleted inserted replaced
8:d37c1a5d09ce 9:7a6abdd00ab5
    48 		BMPString,
    48 		BMPString,
    49 	};
    49 	};
    50 
    50 
    51 	virtual ~ASN1ContentHandler() = default;
    51 	virtual ~ASN1ContentHandler() = default;
    52 
    52 
       
    53 	virtual void writeStreamStart() = 0;
       
    54 	virtual void writeStreamEnd() = 0;
       
    55 
    53 	virtual void writeCollectionStart(CollectionType type) = 0;
    56 	virtual void writeCollectionStart(CollectionType type) = 0;
    54 	virtual void writeCollectionEnd() = 0;
    57 	virtual void writeCollectionEnd() = 0;
    55 	virtual void writeBoolean(bool value) = 0;
    58 	virtual void writeBoolean(bool value) = 0;
    56 	virtual void writeNull() = 0;
    59 	virtual void writeNull() = 0;
    57 	virtual void writeInteger(int64_t value) = 0;
    60 	virtual void writeInteger(int64_t value) = 0;
    83 		handlers.push_back(handler);
    86 		handlers.push_back(handler);
    84 	}
    87 	}
    85 
    88 
    86 #define handler for (auto ___h : handlers) ___h
    89 #define handler for (auto ___h : handlers) ___h
    87 
    90 
    88 	void writeCollectionStart(CollectionType type) {
    91 	void writeStreamStart() override {
       
    92 		handler->writeStreamStart();
       
    93 	}
       
    94 
       
    95 	void writeStreamEnd() override {
       
    96 		handler->writeStreamEnd();
       
    97 	}
       
    98 
       
    99 	void writeCollectionStart(CollectionType type) override {
    89 		handler->writeCollectionStart(type);
   100 		handler->writeCollectionStart(type);
    90 	}
   101 	}
    91 
   102 
    92 	void writeCollectionEnd() {
   103 	void writeCollectionEnd() override {
    93 		handler->writeCollectionEnd();
   104 		handler->writeCollectionEnd();
    94 	}
   105 	}
    95 
   106 
    96 	void writeBoolean(bool value) {
   107 	void writeBoolean(bool value) override {
    97 		handler->writeBoolean(value);
   108 		handler->writeBoolean(value);
    98 	}
   109 	}
    99 
   110 
   100 	void writeNull() {
   111 	void writeNull() override {
   101 		handler->writeNull();
   112 		handler->writeNull();
   102 	}
   113 	}
   103 
   114 
   104 	void writeInteger(int64_t value) {
   115 	void writeInteger(int64_t value) override {
   105 		handler->writeInteger(value);
   116 		handler->writeInteger(value);
   106 	}
   117 	}
   107 
   118 
   108 	void writeString(StringType type, std::string value) {
   119 	void writeString(StringType type, std::string value) override {
   109 		handler->writeString(type, value);
   120 		handler->writeString(type, value);
   110 	}
   121 	}
   111 
   122 
   112 #undef handler
   123 #undef handler
   113 
   124