Sirikata
|
#include <JSSerializer.hpp>
Static Public Member Functions | |
static std::string | serializeObject (v8::Local< v8::Value > v8Val, int32 toStamp=0) |
static std::string | serializeMessage (v8::Local< v8::Value > v8Val, int32 toStamp=0) |
static v8::Handle< v8::Value > | deserializeMessage (EmersonScript *emerScript, Sirikata::JS::Protocol::JSFieldValue jsfieldval, bool &deserializeSuccessful) |
static v8::Handle< v8::Object > | deserializeObject (EmersonScript *emerScript, Sirikata::JS::Protocol::JSMessage jsmessage, bool &deserializeSuccessful) |
Used for deprecated messages that consist of only an object. | |
Static Private Member Functions | |
static void | pointOtherObject (int32 int32ToPointTo, Sirikata::JS::Protocol::IJSFieldValue &jsf_value) |
static void | annotateObject (ObjectVec &objVec, v8::Handle< v8::Object > v8Obj, int32 toStampWith) |
static void | unmarkSerialized (ObjectVec &toUnmark) |
static void | unmarkDeserialized (ObjectMap &objMap) |
static void | setPrototype (v8::Handle< v8::Object > toSetProtoOf, v8::Handle< v8::Object > toSetTo) |
static void | serializeVisible (v8::Local< v8::Object > v8Obj, Sirikata::JS::Protocol::IJSMessage &, int32 &toStampWith, ObjectVec &allObjs) |
static void | fillVisible (Sirikata::JS::Protocol::IJSMessage &, const SpaceObjectReference &listenTo) |
static void | serializePresence (v8::Local< v8::Object > v8Obj, Sirikata::JS::Protocol::IJSMessage &, int32 &toStampWith, ObjectVec &allObjs) |
static void | serializeSystem (v8::Local< v8::Object > v8Obj, Sirikata::JS::Protocol::IJSMessage &, int32 &toStampWith, ObjectVec &allObjs) |
static void | serializeObjectInternal (v8::Local< v8::Value > v8Val, Sirikata::JS::Protocol::IJSMessage &, int32 &toStampWith, ObjectVec &allObjs) |
static void | serializeInternalFields (v8::Local< v8::Object > v8Obj, Sirikata::JS::Protocol::JSMessage &, ObjectVec &allObjs) |
static void | serializeAddressable (v8::Local< v8::Object > v8Obj, Sirikata::JS::Protocol::JSMessage &, ObjectVec &allObjs) |
static void | shallowCopyFields (v8::Handle< v8::Object > dst, v8::Handle< v8::Object > src) |
static bool | deserializePerformFixups (ObjectMap &labeledObjs, FixupMap &toFixUp) |
This function runs through the map of values toFixUp, pointing them to the an object in labeledObjs instead. | |
static void | serializeFieldValueInternal (Sirikata::JS::Protocol::IJSFieldValue &jsf_value, v8::Handle< v8::Value > prop_val, int32 &toStampWith, ObjectVec &objVec) |
static bool | deserializeObjectInternal (EmersonScript *jsObjScript, Sirikata::JS::Protocol::JSMessage jsmessage, v8::Handle< v8::Object > &deserializeTo, ObjectMap &labeledObjs, FixupMap &toFixUp) |
static v8::Handle< v8::Value > | deserializeFieldValue (EmersonScript *emerScript, Sirikata::JS::Protocol::JSFieldValue jsvalue, ObjectMap &labeledObjs, FixupMap &toFixUp, int32 &toLoopTo) |
void Sirikata::JS::JSSerializer::annotateObject | ( | ObjectVec & | objVec, |
v8::Handle< v8::Object > | v8Obj, | ||
int32 | toStampWith | ||
) | [static, private] |
Referenced by serializeObjectInternal().
v8::Handle< v8::Value > Sirikata::JS::JSSerializer::deserializeFieldValue | ( | EmersonScript * | emerScript, |
Sirikata::JS::Protocol::JSFieldValue | jsvalue, | ||
ObjectMap & | labeledObjs, | ||
FixupMap & | toFixUp, | ||
int32 & | toLoopTo | ||
) | [static, private] |
References deserializeObjectInternal(), Sirikata::Logging::error, Sirikata::JS::JSObjectScript::functionValue(), and JSLOG.
Referenced by deserializeMessage(), and deserializeObjectInternal().
v8::Handle< v8::Value > Sirikata::JS::JSSerializer::deserializeMessage | ( | EmersonScript * | emerScript, |
Sirikata::JS::Protocol::JSFieldValue | jsfieldval, | ||
bool & | deserializeSuccessful | ||
) | [static] |
v8::Handle< v8::Object > Sirikata::JS::JSSerializer::deserializeObject | ( | EmersonScript * | emerScript, |
Sirikata::JS::Protocol::JSMessage | jsmessage, | ||
bool & | deserializeSuccessful | ||
) | [static] |
Used for deprecated messages that consist of only an object.
References deserializeObjectInternal(), deserializePerformFixups(), Sirikata::Logging::error, Sirikata::JS::JSObjectScript::functionValue(), JSLOG, and unmarkDeserialized().
Referenced by Sirikata::JS::JSContextStruct::deserialize(), Sirikata::JS::EmersonScript::iHandleScriptCommRead(), and Sirikata::JS::EmersonScript::processSandboxMessage().
bool Sirikata::JS::JSSerializer::deserializeObjectInternal | ( | EmersonScript * | jsObjScript, |
Sirikata::JS::Protocol::JSMessage | jsmessage, | ||
v8::Handle< v8::Object > & | deserializeTo, | ||
ObjectMap & | labeledObjs, | ||
FixupMap & | toFixUp | ||
) | [static, private] |
References Sirikata::JS::EmersonScript::createVisibleWeakPersistent(), deserializeFieldValue(), Sirikata::Logging::fatal, PRESENCE_TYPEID_STRING, setPrototype(), SILOG, SYSTEM_TYPEID_STRING, TYPEID_FIELD_NAME, VISIBLE_SPACEOBJREF_STRING, and VISIBLE_TYPEID_STRING.
Referenced by deserializeFieldValue(), and deserializeObject().
bool Sirikata::JS::JSSerializer::deserializePerformFixups | ( | ObjectMap & | labeledObjs, |
FixupMap & | toFixUp | ||
) | [static, private] |
This function runs through the map of values toFixUp, pointing them to the an object in labeledObjs instead.
If a key for the toFixUp map does not exist as a key in labeledObjs, returns false.
Should be run at the very end of deserializeObjectInternal
References Sirikata::Logging::error, JSLOG, Sirikata::JS::LoopedObjPointer::name, Sirikata::JS::LoopedObjPointer::parent, and setPrototype().
Referenced by deserializeMessage(), and deserializeObject().
void Sirikata::JS::JSSerializer::fillVisible | ( | Sirikata::JS::Protocol::IJSMessage & | jsmessage, |
const SpaceObjectReference & | listenTo | ||
) | [static, private] |
References Sirikata::SpaceObjectReference::toString(), TYPEID_FIELD_NAME, VISIBLE_SPACEOBJREF_STRING, and VISIBLE_TYPEID_STRING.
Referenced by serializePresence(), and serializeVisible().
void Sirikata::JS::JSSerializer::pointOtherObject | ( | int32 | int32ToPointTo, |
Sirikata::JS::Protocol::IJSFieldValue & | jsf_value | ||
) | [static, private] |
Referenced by serializeFieldValueInternal().
static void Sirikata::JS::JSSerializer::serializeAddressable | ( | v8::Local< v8::Object > | v8Obj, |
Sirikata::JS::Protocol::JSMessage & | , | ||
ObjectVec & | allObjs | ||
) | [static, private] |
void Sirikata::JS::JSSerializer::serializeFieldValueInternal | ( | Sirikata::JS::Protocol::IJSFieldValue & | jsf_value, |
v8::Handle< v8::Value > | prop_val, | ||
int32 & | toStampWith, | ||
ObjectVec & | objVec | ||
) | [static, private] |
References Sirikata::Logging::error, INLINE_STR_CONV, JSLOG, pointOtherObject(), and serializeObjectInternal().
Referenced by serializeMessage(), and serializeObjectInternal().
static void Sirikata::JS::JSSerializer::serializeInternalFields | ( | v8::Local< v8::Object > | v8Obj, |
Sirikata::JS::Protocol::JSMessage & | , | ||
ObjectVec & | allObjs | ||
) | [static, private] |
std::string Sirikata::JS::JSSerializer::serializeMessage | ( | v8::Local< v8::Value > | v8Val, |
int32 | toStamp = 0 |
||
) | [static] |
References serializeFieldValueInternal(), and unmarkSerialized().
Referenced by Sirikata::JS::JSSystem::root_sendSandbox(), Sirikata::JS::JSSystem::root_serialize(), and Sirikata::JS::JSSystem::sendMessage().
std::string Sirikata::JS::JSSerializer::serializeObject | ( | v8::Local< v8::Value > | v8Val, |
int32 | toStamp = 0 |
||
) | [static] |
References Sirikata::JS::annotateMessage(), serializeObjectInternal(), and unmarkSerialized().
Referenced by Sirikata::JS::JSSystem::root_sendHome().
void Sirikata::JS::JSSerializer::serializeObjectInternal | ( | v8::Local< v8::Value > | v8Val, |
Sirikata::JS::Protocol::IJSMessage & | jsmessage, | ||
int32 & | toStampWith, | ||
ObjectVec & | allObjs | ||
) | [static, private] |
References Sirikata::JS::annotateMessage(), annotateObject(), Sirikata::JS::getOwnPropertyNames(), INLINE_STR_CONV, PRESENCE_TYPEID_STRING, serializeFieldValueInternal(), serializePresence(), serializeSystem(), serializeVisible(), SYSTEM_TYPEID_STRING, TYPEID_FIELD, and VISIBLE_TYPEID_STRING.
Referenced by serializeFieldValueInternal(), and serializeObject().
void Sirikata::JS::JSSerializer::serializePresence | ( | v8::Local< v8::Object > | v8Obj, |
Sirikata::JS::Protocol::IJSMessage & | jsmessage, | ||
int32 & | toStampWith, | ||
ObjectVec & | allObjs | ||
) | [static, private] |
void Sirikata::JS::JSSerializer::serializeSystem | ( | v8::Local< v8::Object > | v8Obj, |
Sirikata::JS::Protocol::IJSMessage & | jsmessage, | ||
int32 & | toStampWith, | ||
ObjectVec & | allObjs | ||
) | [static, private] |
void Sirikata::JS::JSSerializer::serializeVisible | ( | v8::Local< v8::Object > | v8Obj, |
Sirikata::JS::Protocol::IJSMessage & | jsmessage, | ||
int32 & | toStampWith, | ||
ObjectVec & | allObjs | ||
) | [static, private] |
void Sirikata::JS::JSSerializer::setPrototype | ( | v8::Handle< v8::Object > | toSetProtoOf, |
v8::Handle< v8::Object > | toSetTo | ||
) | [static, private] |
References shallowCopyFields().
Referenced by deserializeObjectInternal(), and deserializePerformFixups().
void Sirikata::JS::JSSerializer::shallowCopyFields | ( | v8::Handle< v8::Object > | dst, |
v8::Handle< v8::Object > | src | ||
) | [static, private] |
References Sirikata::JS::getPropertyNames().
Referenced by setPrototype().
void Sirikata::JS::JSSerializer::unmarkDeserialized | ( | ObjectMap & | objMap | ) | [static, private] |
Referenced by deserializeMessage(), and deserializeObject().
void Sirikata::JS::JSSerializer::unmarkSerialized | ( | ObjectVec & | toUnmark | ) | [static, private] |
References Sirikata::Logging::error, and JSLOG.
Referenced by serializeMessage(), and serializeObject().