/* * This file is a part of Winix * and is not publicly distributed * * Copyright (c) 2011-2012, Tomasz Sowa * All rights reserved. * */ #ifndef headerfile_winix_plugins_groupitem_groupinfo #define headerfile_winix_plugins_groupitem_groupinfo #include #include #include "groups.h" #include "space/spaceparser.h" #include "core/item.h" #include "core/system.h" #include "core/config.h" namespace GroupItem { struct GroupsWrapItem { bool to_delete; std::wstring file_name; Groups groups; GroupsWrapItem() { to_delete = false; } }; class GroupInfo { public: GroupInfo(); void SetSystem(System * psystem); void SetConfig(Config * pconfig); void ReadGroupsConfigs(bool skip_existing_configs); Groups * FindGroups(long dir_id); // can return a null pointer int mount_par_group_conf; private: System * system; Config * config; // map[mount_dir_id] -> GroupsWrapItem typedef std::map GroupsWrap; GroupsWrap groups_wrap; PT::SpaceParser conf_parser; std::vector config_dir_tab; Item config_file; void MarkAllGroupsToDelete(); void DeleteAllMarkedGroups(); bool GetConfContent(const std::wstring & path); bool ParseGroupsConf(long mount_dir_id, const std::wstring & path); bool ParseGroups(const std::wstring & str, Groups & groups); void ReadGroupsConf(Mounts & mounts, bool skip_existing_configs); }; } #endif