- /* The TYPE_CODE_XMETHOD value corresponding to this worker.
- Always use value_of_xmethod to access it. */
- struct value *value;
+ type *get_result_type (value *object, value **args, int nargs);
+
+private:
+
+ /* Return the types of the arguments the method takes. The number of
+ arguments is returned in NARGS, and their types are returned in the array
+ ARGTYPES. */
+
+ virtual enum ext_lang_rc do_get_arg_types
+ (int *nargs, struct type ***arg_types) = 0;
+
+ /* Fetch the type of the result of the method implemented by this worker.
+ OBJECT, ARGS, NARGS are the same as for the invoked method. The result
+ type is stored in *RESULT_TYPE. */
+
+ virtual enum ext_lang_rc do_get_result_type
+ (struct value *obj, struct value **args, int nargs,
+ struct type **result_type_ptr) = 0;
+
+ /* The language the xmethod worker is implemented in. */
+
+ const extension_language_defn *m_extlang;