gdb/mi: use separate classes for different types of MI command
authorJan Vrany <jan.vrany@labware.com>
Tue, 23 Jun 2020 13:45:38 +0000 (14:45 +0100)
committerAndrew Burgess <aburgess@redhat.com>
Tue, 14 Dec 2021 11:28:00 +0000 (11:28 +0000)
commit1f6c8c3317e5692e9994c18f427b45093863d572
treebec5656e39509e778ead182d9fff1388945b4ef9
parent3be0fed62e0dfb36d674944fe85eaebbf70b9029
gdb/mi: use separate classes for different types of MI command

This commit changes the infrastructure in mi-cmds.{c,h} to add new
sub-classes for the different types of MI command.  Instances of these
sub-classes are then created and added into mi_cmd_table.

The existing mi_cmd class becomes the abstract base class, this has an
invoke method and takes care of the suppress notifications handling,
before calling a do_invoke virtual method which is implemented by all
of the sub-classes.

There's currently two different sub-classes, one of pure MI commands,
and a second for MI commands that delegate to CLI commands.

There should be no user visible changes after this commit.
gdb/mi/mi-cmds.c
gdb/mi/mi-cmds.h
gdb/mi/mi-main.c
gdb/mi/mi-main.h
gdb/mi/mi-parse.c
gdb/mi/mi-parse.h