00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef SGE_PLUGIN_CONTEXT_BASE_HPP_INCLUDED
00022 #define SGE_PLUGIN_CONTEXT_BASE_HPP_INCLUDED
00023
00024 #include "base.hpp"
00025 #include "capabilities.hpp"
00026 #include "../export.hpp"
00027 #include "../string.hpp"
00028 #include "../path.hpp"
00029 #include <boost/weak_ptr.hpp>
00030
00031 namespace sge
00032 {
00033 namespace plugin
00034 {
00035
00036 template<typename T> class context;
00037
00038 class context_base {
00039 public:
00040 SGE_SYMBOL context_base(const path& p);
00041
00042 SGE_SYMBOL const string& name() const;
00043 SGE_SYMBOL const string& description() const;
00044 SGE_SYMBOL unsigned version() const;
00045 SGE_SYMBOL capabilities::type type() const;
00046 SGE_SYMBOL const path& get_path() const;
00047 private:
00048 template<typename T> friend class context;
00049 boost::weak_ptr<base> ref;
00050 path path_;
00051 string name_;
00052 string description_;
00053 unsigned version_;
00054 capabilities::type type_;
00055 };
00056
00057 }
00058 }
00059
00060 #endif