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*, WebProcessProxy&);
void encode(IPC::ArgumentEncoder&) const;
private:
ObjCObjectGraph* m_objectGraph;
WebProcessProxy& m_process;
};
class WebContextObjCObjectGraphDecoder {
public:
explicit WebContextObjCObjectGraphDecoder(RefPtr<ObjCObjectGraph>&, WebProcessProxy&);
static bool decode(IPC::ArgumentDecoder&, WebContextObjCObjectGraphDecoder&);
private:
RefPtr<ObjCObjectGraph>& m_objectGraph;
WebProcessProxy& m_process;
};
class InjectedBundleObjCObjectGraphEncoder {
public:
explicit InjectedBundleObjCObjectGraphEncoder(ObjCObjectGraph*, WebProcess&);
void encode(IPC::ArgumentEncoder&) const;
private:
ObjCObjectGraph* m_objectGraph;
WebProcess& m_process;
};
class InjectedBundleObjCObjectGraphDecoder {
public:
explicit InjectedBundleObjCObjectGraphDecoder(RefPtr<ObjCObjectGraph>&, WebProcess&);
static bool decode(IPC::ArgumentDecoder&, InjectedBundleObjCObjectGraphDecoder&);
private:
RefPtr<ObjCObjectGraph>& m_objectGraph;
WebProcess& m_process;
};
}
#endif // ObjCObjectGraphCoders_h