Ticket #54 (closed enhancement: wontimplement)

Opened 4 years ago

Last modified 3 years ago

Challenge Application Base/Proxy Class

Reported by: stf Owned by: stf
Priority: major Milestone: GO2009
Component: RCSoftX Version:
Keywords: Cc:
Git Branch:

Description

We have quite some applications (i.e. one for every AtHome?-test) that share a huge amount of similar code parts. It'd be beneficial if those common parts (initialization of libraries, common members, common handlers) could be put into a base and/or proxy class so that every 'new' challenge app already has the common parts available. This is especially useful for applications that will later be written in LUA or ReadyLog since it reduces the challenge code to the real behavior specification part (which is state-machine-style stuff and skill calling).

Change History

Changed 4 years ago by tim

I don't think this is a good idea for a few reasons:

  • A common base class is something that we tried to avoid in Fawkes because it takes away some flexibility. Instead aspects are a far better way of adding functionality to an entity.
  • The initialization code shared will be minimal after redesigning with libmonaco and libintact. The overhead of having a base class just to encapsulate two calls to Init() and another two to Loop() is not worth the effort.
  • In the foreseeable future with scripted challenge applications on the horizon it is unlikely that many C++ apps are written that would benefit from this base class.
  • It adds another level of indirection that you have to look through when looking for a bug, currently we already have Appl -> ClientAppl?.
  • Changing now all the existing applications that already have the init bits just produces more work. Even if one more init had to be added for libintact, this would mean less work if it is done once for all apps than changing the base class. With the horizon of moving all app code to Lua there are not many changes that can be expected where this would be beneficial.

If we keep the used libraries simple (libmonaco and libintact) and especially if we use scripting foo in the future there is not much to be gained.

Changed 3 years ago by tim

  • milestone changed from RC2008 to GO2009

Changed 3 years ago by tim

  • status changed from new to closed
  • resolution set to wontimplement

Closing this as there has not been any progress in a year and using scripting facilities looks like a more promising approach for the future.

Note: See TracTickets for help on using tickets.

This list contains all users that will be notified about changes made to this ticket.

These roles will be notified: Reporter, Subscriber, Participant

  • Fawkes Trac List(Always)
  • Stefan Schiffer(Reporter, Owner)
  • Tim Niemueller(Participant)