121 void done_raw(const char * kind); 122 void tail(const char* kind); 123 124 // va_list versions 125 void va_elem(const char* format, va_list ap) ATTRIBUTE_PRINTF(2, 0); 126 void va_begin_elem(const char* format, va_list ap) ATTRIBUTE_PRINTF(2, 0); 127 void va_head(const char* format, va_list ap) ATTRIBUTE_PRINTF(2, 0); 128 void va_begin_head(const char* format, va_list ap) ATTRIBUTE_PRINTF(2, 0); 129 void va_done(const char* format, va_list ap) ATTRIBUTE_PRINTF(2, 0); 130 131 // write text (with quoting of special XML characters <>&'" etc.) 132 outputStream* text() { return _text; } 133 void text(const char* format, ...) ATTRIBUTE_PRINTF(2, 3); 134 void va_text(const char* format, va_list ap) ATTRIBUTE_PRINTF(2, 0) { 135 text()->vprint(format, ap); 136 } 137 138 // commonly used XML attributes 139 void stamp(); // stamp='1.234' 140 void method(methodHandle m); // method='k n s' ... 141 void klass(KlassHandle k); // klass='name' 142 void name(const Symbol* s); // name='name' 143 void object(const char* attr, Metadata* val); 144 void object(const char* attr, Handle val); 145 146 // print the text alone (sans ''): 147 void method_text(methodHandle m); 148 void klass_text(KlassHandle k); // klass='name' 149 void name_text(const Symbol* s); // name='name' 150 void object_text(Metadata* x); 151 void object_text(Handle x); 152 153 /* Example uses: 154 155 // Empty element, simple case. 156 elem("X Y='Z'"); <X Y='Z'/> \n 157 158 // Empty element, general case. 159 begin_elem("X Y='Z'"); <X Y='Z' 160 ...attrs... ...attrs... 161 end_elem(); /> 162 163 // Compound element, simple case. 164 head("X Y='Z'"); <X Y='Z'> \n 165 ...body... ...body... 166 tail("X"); </X> \n 167 168 // Compound element, general case. | 121 void done_raw(const char * kind); 122 void tail(const char* kind); 123 124 // va_list versions 125 void va_elem(const char* format, va_list ap) ATTRIBUTE_PRINTF(2, 0); 126 void va_begin_elem(const char* format, va_list ap) ATTRIBUTE_PRINTF(2, 0); 127 void va_head(const char* format, va_list ap) ATTRIBUTE_PRINTF(2, 0); 128 void va_begin_head(const char* format, va_list ap) ATTRIBUTE_PRINTF(2, 0); 129 void va_done(const char* format, va_list ap) ATTRIBUTE_PRINTF(2, 0); 130 131 // write text (with quoting of special XML characters <>&'" etc.) 132 outputStream* text() { return _text; } 133 void text(const char* format, ...) ATTRIBUTE_PRINTF(2, 3); 134 void va_text(const char* format, va_list ap) ATTRIBUTE_PRINTF(2, 0) { 135 text()->vprint(format, ap); 136 } 137 138 // commonly used XML attributes 139 void stamp(); // stamp='1.234' 140 void method(methodHandle m); // method='k n s' ... 141 void klass(Klass* k); // klass='name' 142 void name(const Symbol* s); // name='name' 143 void object(const char* attr, Metadata* val); 144 void object(const char* attr, Handle val); 145 146 // print the text alone (sans ''): 147 void method_text(methodHandle m); 148 void klass_text(Klass* k); // klass='name' 149 void name_text(const Symbol* s); // name='name' 150 void object_text(Metadata* x); 151 void object_text(Handle x); 152 153 /* Example uses: 154 155 // Empty element, simple case. 156 elem("X Y='Z'"); <X Y='Z'/> \n 157 158 // Empty element, general case. 159 begin_elem("X Y='Z'"); <X Y='Z' 160 ...attrs... ...attrs... 161 end_elem(); /> 162 163 // Compound element, simple case. 164 head("X Y='Z'"); <X Y='Z'> \n 165 ...body... ...body... 166 tail("X"); </X> \n 167 168 // Compound element, general case. |