Dodanie aplikacji sorl.thumbnail i filebrowser.
[redakcja.git] / apps / filebrowser / media / filebrowser / uploadify / com / adobe / protocols / dict / util / SocketHelper.as
diff --git a/apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/util/SocketHelper.as b/apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/util/SocketHelper.as
new file mode 100755 (executable)
index 0000000..feb494b
--- /dev/null
@@ -0,0 +1,49 @@
+package com.adobe.protocols.dict.util\r
+{\r
+       import com.adobe.net.proxies.RFC2817Socket;\r
+       import flash.events.ProgressEvent;\r
+\r
+       public class SocketHelper\r
+               extends RFC2817Socket\r
+       {\r
+               private var terminator:String = "\r\n.\r\n";\r
+               private var buffer:String;\r
+               public static var COMPLETE_RESPONSE:String = "completeResponse";\r
+\r
+               public function SocketHelper()\r
+               {\r
+                       super();\r
+                       buffer = new String();\r
+                       addEventListener(ProgressEvent.SOCKET_DATA, incomingData);\r
+               }\r
+\r
+               private function incomingData(event:ProgressEvent):void\r
+               {\r
+                       buffer += readUTFBytes(bytesAvailable);\r
+                       buffer = buffer.replace(/250[^\r\n]+\r\n/, ""); // Get rid of all 250s. Don't need them.\r
+                       var codeStr:String = buffer.substring(0, 3);\r
+                       if (!isNaN(parseInt(codeStr)))\r
+                       {\r
+                               var code:uint = uint(codeStr);\r
+                               if (code == 150 || code >= 200)\r
+                               {\r
+                                       buffer = buffer.replace("\r\n", this.terminator);\r
+                               }\r
+                       }\r
+\r
+                       while (buffer.indexOf(this.terminator) != -1)\r
+                       {\r
+                               var chunk:String = buffer.substring(0, buffer.indexOf(this.terminator));\r
+                               buffer = buffer.substring(chunk.length + this.terminator.length, buffer.length);\r
+                               throwResponseEvent(chunk);\r
+                       }\r
+               }\r
+               \r
+               private function throwResponseEvent(response:String):void\r
+               {\r
+                       var responseEvent:CompleteResponseEvent = new CompleteResponseEvent();\r
+                       responseEvent.response = response;\r
+                       dispatchEvent(responseEvent);                   \r
+               }\r
+       }\r
+}
\ No newline at end of file