00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 #ifndef COH_SYSTEM_POF_CONTEXT_HPP
00017 #define COH_SYSTEM_POF_CONTEXT_HPP
00018 
00019 #include "coherence/lang.ns"
00020 
00021 #include "coherence/io/pof/SimplePofContext.hpp"
00022 
00023 COH_OPEN_NAMESPACE3(coherence,io,pof)
00024 
00025 
00026 
00027 
00028 
00029 
00030 
00031 
00032 class COH_EXPORT SystemPofContext
00033     : public class_spec<SystemPofContext,
00034         extends<SimplePofContext> >
00035     {
00036     friend class factory<SystemPofContext>;
00037 
00038     
00039 
00040     protected:
00041 
00042 
00043 
00044         using this_spec::create;
00045 
00046     private:
00047 
00048 
00049 
00050         SystemPofContext();
00051 
00052 
00053     public:
00054 
00055 
00056 
00057 
00058 
00059         static Handle getInstance();
00060 
00061 
00062 
00063 
00064 
00065 
00066 
00067 
00068 
00069         static void main(ObjectArray::View vasArg);
00070     };
00071 
00072 
00073 
00074 
00075 
00076 
00077 
00078 
00079 
00080 
00081 
00082 
00083 #define COH_REGISTER_POF_SERIALIZER(POF_TYPE_ID, CLASS, POF_SERIALIZER) \
00084     COH_STATIC_INIT(coherence::io::pof::SystemPofContext::getInstance()-> \
00085         registerUserType(POF_TYPE_ID, \
00086             coherence::lang::SystemClassLoader::getInstance()-> \
00087             registerClass(CLASS), POF_SERIALIZER))
00088 
00089 
00090 
00091 
00092 
00093 
00094 
00095 
00096 #define COH_REGISTER_PORTABLE_CLASS(POF_TYPE_ID, TYPE) \
00097     COH_REGISTER_POF_SERIALIZER(POF_TYPE_ID, \
00098         coherence::lang::TypedClass<TYPE >::create(), \
00099         coherence::io::pof::PortableObjectSerializer::create(POF_TYPE_ID))
00100 
00101 
00102 
00103 
00104 
00105 
00106 
00107 
00108 #define COH_REGISTER_MANAGED_CLASS(POF_TYPE_ID, TYPE) \
00109     COH_REGISTER_POF_SERIALIZER(POF_TYPE_ID, \
00110         coherence::lang::TypedClass<coherence::lang::Managed<TYPE > >::create(), \
00111         coherence::io::pof::TypedSerializer<coherence::lang::Managed<TYPE > >::create())
00112 
00113 COH_CLOSE_NAMESPACE3
00114 
00115 #endif // COH_SYSTEM_POF_CONTEXT_HPP