/* * This file is a part of Winix * and is not publicly distributed * * Copyright (c) 2008-2014, Tomasz Sowa * All rights reserved. * */ #ifndef headerfile_winix_core_plugindata #define headerfile_winix_core_plugindata #include #include namespace Winix { struct Session; struct PluginDataBase { virtual ~PluginDataBase() {} /* !! CHECK ME it is still in use? when deleting sessions we first call Clear() method consequently the destructor has nothing to do (and it does not throw an exception) */ virtual void Clear() {} }; class PluginData { public: PluginData(); PluginData(const PluginData & p); PluginData & operator=(const PluginData & p); ~PluginData(); void SetSession(Session * ses); void Assign(size_t index, PluginDataBase * data); void Assign(PluginDataBase * data); PluginDataBase * Get(size_t index); PluginDataBase * Get(); void DeleteAll(); size_t Size() const; void Resize(size_t new_size); private: Session * session; std::vector table; }; } // namespace Winix #endif