108 void read_value(const char* str, size_t len, TRAPS); |
108 void read_value(const char* str, size_t len, TRAPS); |
109 virtual void parse_value(const char* str, size_t len, TRAPS) = 0; |
109 virtual void parse_value(const char* str, size_t len, TRAPS) = 0; |
110 virtual void init_value(TRAPS) = 0; |
110 virtual void init_value(TRAPS) = 0; |
111 virtual void reset(TRAPS) = 0; |
111 virtual void reset(TRAPS) = 0; |
112 virtual void cleanup() = 0; |
112 virtual void cleanup() = 0; |
|
113 virtual void value_as_str(char* buf, size_t len) = 0; |
113 void set_next(GenDCmdArgument* arg) { |
114 void set_next(GenDCmdArgument* arg) { |
114 _next = arg; |
115 _next = arg; |
115 } |
116 } |
116 GenDCmdArgument* next() { |
117 GenDCmdArgument* next() { |
117 return _next; |
118 return _next; |
118 } |
119 } |
|
120 |
|
121 void to_string(jlong l, char* buf, size_t len); |
|
122 void to_string(bool b, char* buf, size_t len); |
|
123 void to_string(char* c, char* buf, size_t len); |
|
124 void to_string(NanoTimeArgument n, char* buf, size_t len); |
|
125 void to_string(MemorySizeArgument f, char* buf, size_t len); |
|
126 void to_string(StringArrayArgument* s, char* buf, size_t len); |
119 }; |
127 }; |
120 |
128 |
121 template <class ArgType> class DCmdArgument: public GenDCmdArgument { |
129 template <class ArgType> class DCmdArgument: public GenDCmdArgument { |
122 private: |
130 private: |
123 ArgType _value; |
131 ArgType _value; |
141 destroy_value(); |
149 destroy_value(); |
142 } |
150 } |
143 void parse_value(const char* str, size_t len, TRAPS); |
151 void parse_value(const char* str, size_t len, TRAPS); |
144 void init_value(TRAPS); |
152 void init_value(TRAPS); |
145 void destroy_value(); |
153 void destroy_value(); |
|
154 void value_as_str(char *buf, size_t len) { return to_string(_value, buf, len);} |
146 }; |
155 }; |
147 |
156 |
148 #endif /* SHARE_VM_SERVICES_DIAGNOSTICARGUMENT_HPP */ |
157 #endif /* SHARE_VM_SERVICES_DIAGNOSTICARGUMENT_HPP */ |