ProfileManager

From Sim-Im
Jump to navigation Jump to search

Requirements

ProfileManager have following list of responsibilities:

  1. Profile enumeration
  2. Profile creation/destruction/renaming
  3. Profile selection
    1. On profile change, a signal/event should be emit to all entities that store their settings in profile
  4. Provide access to current profile


Profile responsibilities:

  1. Maintain a list of enabled/disabled plugins
  2. Provide get/set methods for this list
  3. Provide access to config storage object (SIM::Config)


Config responsibilities:

  1. Saving/loading profile data to/from disk
  2. Storing/restoring PropertyHub data

In other words, Config should be an intermediate object between PropertyHub and config files on disk

PropertyHub responsibilities:

  1. Generic data storage with string keys
  2. Serialization/deserialization


Tests