ObjCObjectGraphCoders.h [plain text]
#ifndef ObjCObjectGraphCoders_h
#define ObjCObjectGraphCoders_h
#include "ArgumentDecoder.h"
#include "ArgumentEncoder.h"
#include "ObjCObjectGraph.h"
#include <wtf/RefPtr.h>
namespace WebKit {
class WebProcess;
class WebProcessProxy;
class WebContextObjCObjectGraphEncoder {
public:
explicit WebContextObjCObjectGraphEncoder(ObjCObjectGraph*);
void encode(CoreIPC::ArgumentEncoder&) const;
private:
ObjCObjectGraph* m_objectGraph;
};
class WebContextObjCObjectGraphDecoder {
public:
explicit WebContextObjCObjectGraphDecoder(RefPtr<ObjCObjectGraph>&, WebProcessProxy*);
static bool decode(CoreIPC::ArgumentDecoder&, WebContextObjCObjectGraphDecoder&);
private:
RefPtr<ObjCObjectGraph>& m_objectGraph;
WebProcessProxy* m_process;
};
class InjectedBundleObjCObjectGraphEncoder {
public:
explicit InjectedBundleObjCObjectGraphEncoder(ObjCObjectGraph*);
void encode(CoreIPC::ArgumentEncoder&) const;
private:
ObjCObjectGraph* m_objectGraph;
};
class InjectedBundleObjCObjectGraphDecoder {
public:
explicit InjectedBundleObjCObjectGraphDecoder(RefPtr<ObjCObjectGraph>&, WebProcess*);
static bool decode(CoreIPC::ArgumentDecoder&, InjectedBundleObjCObjectGraphDecoder&);
private:
RefPtr<ObjCObjectGraph>& m_objectGraph;
WebProcess* m_process;
};
}
#endif // ObjCObjectGraphCoders_h