void ObjectHost::commandListObjects(const Command::Command& cmd, Command::Commander* cmdr, Command::CommandID cmdid) { Command::Result result = Command::EmptyResult(); // Make sure we return the objects key set even if there are none result.put( String("objects"), Command::Array()); Command::Array& objects_ary = result.getArray("objects"); Sirikata::SerializationCheck::Scoped sc(&mSessionSerialization); for(InternalIDHostedObjectMap::const_iterator it = mHostedObjectsByID.begin(); it != mHostedObjectsByID.end(); it++) { HostedObjectPtr ho = it->second.lock(); if (ho) objects_ary.push_back( ho->id().toString() ); } cmdr->result(cmdid, result); }
void ObjectHost::commandCreateObject(const Command::Command& cmd, Command::Commander* cmdr, Command::CommandID cmdid) { Command::Result result = Command::EmptyResult(); if (!cmd.contains("script.type")) { result.put("error", "Must specify at least script.type"); cmdr->result(cmdid, result); return; } String scriptType = cmd.getString("script.type"); String scriptOpts = cmd.getString("script.opts", ""); String scriptContents = cmd.getString("script.contents", ""); HostedObjectPtr obj; obj = createObject(scriptType, scriptOpts, scriptContents); result.put("id", obj->id().toString()); cmdr->result(cmdid, result); }