/* * (c) 2008-2009 Alexander Warg * economic rights: Technische Universität Dresden (Germany) * * This file is part of TUD:OS and distributed under the terms of the * GNU General Public License 2. * Please see the COPYING-GPL-2 file for details. */ #pragma once #include #include #include namespace Moe { class Server_object : public L4::Epiface, public cxx::H_list_item_t { public: /** * List of dynamic server objects. * * The list is ordered by factory ownership. All objects that * have been allocated with a given factory follow directly * after the factory object in the list. This property also holds * recursively. */ typedef cxx::H_list_t Obj_list; virtual ~Server_object(); void add_weak_ref(cxx::Weak_ref_base *obj) const; void remove_weak_ref(cxx::Weak_ref_base *obj) const; private: mutable cxx::Weak_ref_base::List _weak_ptrs; mutable L4::Cap _weak_cap; }; /** * Handler class for stale requests from servers that have been * deregistered. */ struct Null_handler : L4::Epiface_t {}; } // namespace