Lively Kernel canvas
// this script is evaluated on world load
TextMorph.prototype.acceptsDropping = Functions.True
WebCollabServer
#processRequest#handleWebCollabRequest:----------#json:#jsonResponse:9.6000000000000014 
debugMode9.600000000000001 
 
 
#log:#ifDebug:#json:#contentAsJson#requestContent------------------#errorResponse:#successResponse:#jsonResponse:#partialResponse:-------------------#handle#login#logout#reset#broadcast#handleOperationBroadcast#handleSimpleBroadcast9.6000000000000011requesturlrequestJsondebugdebugMode9.6000000000000014WebCollabHandler 
 
 
 
null0.019605330857204686null 
WebCollabSession
usercreationTimeresponseStreamlistenOnChannels
#sendOnResponseStream:onError:#destroy#isActive#listensOn:<channel>#listenOnChannels--------------------------------------------#deleteOpAgentForDoc:#findOrCreateAgentForDoc:#opAgentForDoc:#sendOpMsg:9.6000000000000019\r#listenOnChannels\r--------------------------------------------\r#deleteOpAgentForDoc:\n#findOrCreateAgentForDoc:\n#opAgentForDoc:\n#sendOpMsg:"]]> 
 
9.600000000000001 
serverUser1sessions*11 
 
1 
 
 
 
 
WebCollabOpAgent
opAgents*11 
 
transform:and:transformAdd:add:transformAdd:del:transformDel:add:transformDel:del:----------------applyOpMsg:applyAsMyOpMsg:applyAsOtherOpMsg:-------------generate:receive:basicSend:incMyMsgsincOtherMsgs----------------spawnFor:swapAndSpawnFor:swapMyMsgsOtherMsgs---------------------isUpToDateFor:version#loginCheckUsing:<UserReg>#activateDelayedReceivedWith:#receiveMsg:andNotifyOthersIn:#sendToClient:using:sendOp:<--doesnothing9.60000000000000112\r#activateDelayedReceivedWith:\r#receiveMsg:andNotifyOthersIn:\r#sendToClient:using: "]]> 
 
userchannel-----------outgoingmyMsgsotherMsgsdelayedReceivedMessagesdelayedSendMessages9.6000000000000017 
 
 
 
 
 
nullnull 
null-0.05549850524571683null 
WebCollabLogger 
 
 
 
 
 
null-2.4227626269614633null 
null-1.101450795744269null 
nullnull 
Serverside29.85983999999999
createdperrequest11 
 
1
Singleton11 
 
userReg111 
 
#ifDebug:-------------#login:responseStream:listenOnChannels:#logout:#newSessionFor:#broadcast:on:#hasActiveSessionFor:#sessionFor:--------#reset#clean------------#deleteOpAgentsForDoc:#receiveOpMsg:for:#registerUser:forDoc:#agentsForDoc:#opAgentForUser:userwithDoc:9.600000000000001 
16userDictmultiUserDocumentsdebugModereceiveSemaphore9.6000000000000013 
WebCollabUserRegistration 
 
 
WebCollabServernull 
true
null 
true
null0.4636476090008061null 
null 
true
null 
true
null 
true
null0.4636476090008061null 
null 
true
null 
true
WebCollabHandler11null 
 
 
true
null0.05352026845931512null 
null 
true
null0.0045453538843601106null 
WebCollabAddOp 
 
 
 
 
 
WebCollabDelOp1 
 
 
 
WebCollabNullOp1 
 
 
 
 
null-1.2504194031263054null 
WebCollabOp 
 
 
 
 
 
null-1.92040344490196null 
null-1.5841645165405807null 
Problems-intermixedfunctionalityofsession/streamhandlingandoperationaltransformationstuffinWebCollabHandler,WebCollabUserRegistration,WebCollabSession-version/myMsgs/otherMsgsinWebCollabMultiUserTextDocument?-WebCollabLoggernotusedconsistently-channelvs.docURL-->doesWebCollabOpAgentneedchannel?-betterinvertrelationshipWebCollabMultiUserTextDocument-->WebCollabOpAgent? does WebCollabOpAgent need channel?\r- better invert relation ship WebCollabMultiUserTextDocument -->  WebCollabOpAgent ?"]]>
WebCollabMultiUserTextDocument
doc111 
 
#asJsonObj#applyOp:#spawn9.6000000000000012 
contentdocURIops//justfordebugging9.600000000000001 
2 
 
 
 
1
actually1:1relationship111 
 
10000.4801891662846357Wikicontroltrue 
10000.0423921966923979Wikicontroltrue 
10000.0006997341235168953Wikicontroltrue 
10000.8100000004856105Wikicontroltrue 
LoginHandlingLoginprocess*Clientrequestslogin*userRegchecksifisLoggedIn:ifyesthenerrorresponse*userReg#login:responseStream:listenOnChannels:iscalled*createsanewsessionifnecessaryandassignsresponseStreamandchannelsLogoutprocess*Clientrequestslogout*userRegchecksifisLoggedIn:ifnothenerrorresponse*userReg#logout:iscalled**getsessionfromuserDict**ifNilthenshowmessageotherwise#destroy**sessionisremovedfromuserDict14
10008.326048041941265Wikicontroltrue 
#isLoggedIn:*serverUser?yes*userDicthasnoentry(session)atusername?no*sessionisNil?no*sessionisActive?yesSession>>isActive:*responseStreamexistsandisstillconnectedSession>>destroy*disconnectsresponseStream*doesnotsetittonil9>isActive:\r* responseStream exists and is still connected\r\rSession>>destroy\r* disconnects responseStream\r* does not set it to nil"]]>
Ineedtodistinguishbetweensessionexistsanduserisactuallyloggedinandconnectioniscurrentlyoffline/inactivechangingbehaviorof#sessionFor:removed#isLoggedIn:#loginCheckUsing:adding#hasActiveSession:done4
null-1.7993499754327844null 
usesinjecteduserReg#sessionFor:111null 
 
null42