gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ./ChangeLog ./configure.ac server/LocalCo...


From: Rob Savoye
Subject: [Gnash-commit] gnash ./ChangeLog ./configure.ac server/LocalCo...
Date: Sun, 05 Feb 2006 05:42:02 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Branch:         
Changes by:     Rob Savoye <address@hidden>     06/02/05 05:42:02

Modified files:
        .              : ChangeLog configure.ac 
        server         : LocalConnection.cpp LocalConnection.h 
                         Makefile.am network.cpp 
        testsuite/actionscript.all: LocalConnection.as Makefile.am 
Added files:
        server         : shm.cpp shm.h 

Log message:
        * server/shm.{h,cpp}: New support code for using POSIX named
        shared memory segments.
        * server/LocalConnection.h: Alternatively use shared memory
        instead of a socket connection.
        * server/LocalConnection.cpp: Alternatively use shared memory
        instead of a socket connection.
        * testsuite/actionscript.all/LocalConnection.as: Add addiotnal
        tests for when using a shared memory subsystem.
        * server/Makefile.am: Add shm.h, shm.cpp, network.cpp, network.h.
        * configure.ac: Add --enable flag to switch using shared memory to
        networking for local connections.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/ChangeLog.diff?tr1=1.90&tr2=1.91&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/configure.ac.diff?tr1=1.31&tr2=1.32&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/server/LocalConnection.cpp.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/server/LocalConnection.h.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/server/Makefile.am.diff?tr1=1.17&tr2=1.18&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/server/network.cpp.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/server/shm.cpp?rev=1.1
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/server/shm.h?rev=1.1
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/testsuite/actionscript.all/LocalConnection.as.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/gnash/gnash/testsuite/actionscript.all/Makefile.am.diff?tr1=1.9&tr2=1.10&r1=text&r2=text

Patches:
Index: gnash/ChangeLog
diff -u gnash/ChangeLog:1.90 gnash/ChangeLog:1.91
--- gnash/ChangeLog:1.90        Sun Feb  5 01:10:58 2006
+++ gnash/ChangeLog     Sun Feb  5 05:42:02 2006
@@ -1,10 +1,23 @@
 2006-02-04  Rob Savoye  <address@hidden>
 
+       * server/shm.{h,cpp}: New support code for using POSIX named
+       shared memory segments.
+       * server/LocalConnection.h: Alternatively use shared memory
+       instead of a socket connection.
+       * server/LocalConnection.cpp: Alternatively use shared memory
+       instead of a socket connection.
+       * testsuite/actionscript.all/LocalConnection.as: Add addiotnal
+       tests for when using a shared memory subsystem.
+       * server/Makefile.am: Add shm.h, shm.cpp, network.cpp, network.h.
+       * configure.ac: Add --enable flag to switch using shared memory to
+       networking for local connections.
+       
        * server/LocalConnection.h: Change API for connect(), and
        domain().
        * server/LocalConnection.cpp: Change API for connect(), and
        domain(). Initial implementations of domain(), connect(), and
        close().
+
        * server/network.cpp: Replace code with networking code from one
        of my other GPL'd projects, PowerGuru. That code is much more
        fully functional in a generic sense, and pretty solid too. Add
Index: gnash/configure.ac
diff -u gnash/configure.ac:1.31 gnash/configure.ac:1.32
--- gnash/configure.ac:1.31     Sat Feb  4 15:29:13 2006
+++ gnash/configure.ac  Sun Feb  5 05:42:02 2006
@@ -108,7 +108,7 @@
 
 dnl This enables or disables the support to make Gnash function as a
 dnl small web server.
-AC_ARG_ENABLE(reader, [  --enable-http           Enable support for a web 
server],
+AC_ARG_ENABLE(http, [  --enable-http           Enable support for a web 
server],
 [case "${enableval}" in
   yes) http=yes ;;
   no)  http=no ;;
@@ -120,6 +120,18 @@
 fi
 AM_CONDITIONAL(HTTP, test x$http = xtrue)
 
+AC_ARG_ENABLE(net_conn, [  --enable-net-conn           Enable support ],
+[case "${enableval}" in
+  yes) net_conn=yes ;;
+  no)  net_conn=no ;;
+  *)   AC_MSG_ERROR([bad value ${enableval} for enable-net_conn option]) ;;
+esac], net_conn=no)
+
+if test x$net_conn = xyes; then
+    AC_DEFINE([NETWORK_CONN], [], [Use tcp/ip for local connections])
+fi
+AM_CONDITIONAL(NET_CONN, test x$net_conn = xtrue)
+
 dnl Where are the Docbook stylesheets ?
 AC_PATH_FIREFOX
 
@@ -135,6 +147,8 @@
 AC_CHECK_LIB(Xmu, XmuCvtStringToOrientation)
 AC_CHECK_LIB(Xi, XInput_find_display)
 AC_CHECK_LIB(X11, XDisableAccessControl)
+AC_CHECK_LIB(rt, shm_unlink)
+dnl AC_CHECK_LIB(c, mremap)
 AM_PATH_ZLIB
 AM_PATH_JPEG
 AM_PATH_PNG
Index: gnash/server/LocalConnection.cpp
diff -u gnash/server/LocalConnection.cpp:1.2 
gnash/server/LocalConnection.cpp:1.3
--- gnash/server/LocalConnection.cpp:1.2        Sun Feb  5 01:10:58 2006
+++ gnash/server/LocalConnection.cpp    Sun Feb  5 05:42:02 2006
@@ -30,7 +30,7 @@
 
 // \class LocalConnection
 /// \brief Open a connection between two SWF movies so they can send
-/// each otherFlash  Objects to be executed.
+/// each other Flash Objects to be executed.
 ///
 LocalConnection::LocalConnection() {
 }
@@ -42,7 +42,11 @@
 void
 LocalConnection::close()
 {
+#ifdef NETWORK_CONN
     closeNet();
+#else
+    closeMem();
+#endif
 }
 
 /// \brief Prepares the LocalConnection object to receive commands from a
@@ -54,6 +58,7 @@
 bool
 LocalConnection::connect(const char *name)
 {
+#ifdef NETWORK_CONN
     short lastport;
     const char *lcname;
 
@@ -95,8 +100,14 @@
             
         return false;
     }
-
+#else
+    if (attach(name, true) == false) {
+        return false;
+    }
+#endif
     _name = name;
+
+    return true;
 }
 
 /// \brief Returns a string representing the superdomain of the
@@ -113,10 +124,10 @@
 std::string
 LocalConnection::domain(void)
 {
-    if (_host.size() == 0) {
+    if (_name.size() == 0) {
         return "localhost";
     } else {
-        return _host;
+        return _name;
     }
 }
 
@@ -138,9 +149,16 @@
     localconnection_obj->set_member("domain", &localconnection_domain);
     localconnection_obj->set_member("send", &localconnection_send);
 #ifdef ENABLE_TESTING
+#ifdef NETWORK_CONN
     localconnection_obj->set_member("connected",  &network_connected);
     localconnection_obj->set_member("getfilefd",  &network_getfilefd);
     localconnection_obj->set_member("getlistenfd",  &network_getlistenfd);
+#else
+    localconnection_obj->set_member("getname",  &shm_getname);
+    localconnection_obj->set_member("getsize",  &shm_getsize);
+    localconnection_obj->set_member("getallocated",  &shm_getallocated);
+    localconnection_obj->set_member("exists",  &shm_exists);
+#endif
 #endif
 
     fn.result->set_as_object_interface(localconnection_obj);
@@ -161,16 +179,18 @@
 void localconnection_connect(const fn_call& fn)
 {
 //    log_msg("%s: %d args\n", __PRETTY_FUNCTION__, fn.nargs);
+    bool ret;
     localconnection_as_object *ptr = (localconnection_as_object*)fn.this_ptr;
     
     assert(ptr);
     if (fn.nargs != 0) {
-        
ptr->obj.connect(fn.env->bottom(fn.first_arg_bottom_index).to_string());
+        ret = 
ptr->obj.connect(fn.env->bottom(fn.first_arg_bottom_index).to_string());
     } else {
         log_msg("ERROR: No connection name specified to 
LocalConnection.connect()!\n");
-        ptr->obj.connect("localhost"); // FIXME: This should probably
+        ret = ptr->obj.connect("localhost"); // FIXME: This should probably
                                        // fail instead
     }
+    fn.result->set_bool(ret);
 }
 
 /// \brief The callback for LocalConnection::domain()
Index: gnash/server/LocalConnection.h
diff -u gnash/server/LocalConnection.h:1.2 gnash/server/LocalConnection.h:1.3
--- gnash/server/LocalConnection.h:1.2  Sun Feb  5 01:10:58 2006
+++ gnash/server/LocalConnection.h      Sun Feb  5 05:42:02 2006
@@ -28,11 +28,19 @@
 
 #include "impl.h"
 #include "log.h"
+#ifdef NETWORK_CONN
 #include "network.h"
+#else
+#include "shm.h"
+#endif
 
 namespace gnash {
   
+#ifdef NETWORK_CONN
 class LocalConnection : public Network {
+#else
+class LocalConnection : public Shm {
+#endif
 public:
     LocalConnection();
     ~LocalConnection();
Index: gnash/server/Makefile.am
diff -u gnash/server/Makefile.am:1.17 gnash/server/Makefile.am:1.18
--- gnash/server/Makefile.am:1.17       Sat Feb  4 21:24:07 2006
+++ gnash/server/Makefile.am    Sun Feb  5 05:42:02 2006
@@ -109,6 +109,7 @@
        Movie.cpp        \
         render.cpp       \
         shape.cpp        \
+       shm.cpp          \
         sound.cpp        \
        Sprite.cpp       \
         stream.cpp       \
@@ -135,6 +136,7 @@
        MovieClipLoader.h       \
        render.h        \
        shape.h         \
+       shm.h           \
        sound.h         \
        stream.h        \
        gstring.h       \
Index: gnash/server/network.cpp
diff -u gnash/server/network.cpp:1.2 gnash/server/network.cpp:1.3
--- gnash/server/network.cpp:1.2        Sun Feb  5 01:10:58 2006
+++ gnash/server/network.cpp    Sun Feb  5 05:42:02 2006
@@ -506,6 +506,7 @@
 // method to see if it worked correctly.
 void network_geturl(const fn_call& fn)
 {
+
     network_as_object *ptr = (network_as_object*)fn.this_ptr;
     assert(ptr);
     fn.result->set_tu_string(ptr->obj.getURL().c_str());
Index: gnash/testsuite/actionscript.all/LocalConnection.as
diff -u gnash/testsuite/actionscript.all/LocalConnection.as:1.2 
gnash/testsuite/actionscript.all/LocalConnection.as:1.3
--- gnash/testsuite/actionscript.all/LocalConnection.as:1.2     Sun Feb  5 
01:10:58 2006
+++ gnash/testsuite/actionscript.all/LocalConnection.as Sun Feb  5 05:42:02 2006
@@ -70,16 +70,23 @@
 // initial file descriptor returned by bind is still fine, since we
 // could always (in a normal application) check later for incoming
 // connections.
-tmp.connect("lc_test");
-if ((tmp.getfilefd() == -1) && (tmp.getlistenfd() > 2)) {
+var ret = tmp.connect("lc_test");
+// NOTE: This test will fail if a shared memory segment of the same
+// name exists. So the first time it'll pass, then it'll fail.
+if ((tmp.getname() == "/lc_test") && (ret == true)) {
        trace("PASSED: LocalConnection::connect()");
-} else {
+} else {       
        trace("FAILED: LocalConnection::connect()");
 }
+//if ((tmp.getfilefd() == -1) && (tmp.getlistenfd() > 2)) {
+//     trace("PASSED: LocalConnection::connect()");
+//} else {
+//     trace("FAILED: LocalConnection::connect()");
+//}
 
 // Close the connection, and then check the state
 tmp.close();
-if (tmp.connected() == false) {
+if (tmp.exists() == false) {
        trace("PASSED: LocalConnection::close()");
 } else {
        trace("FAILED: LocalConnection::close()");
Index: gnash/testsuite/actionscript.all/Makefile.am
diff -u gnash/testsuite/actionscript.all/Makefile.am:1.9 
gnash/testsuite/actionscript.all/Makefile.am:1.10
--- gnash/testsuite/actionscript.all/Makefile.am:1.9    Fri Feb  3 20:50:27 2006
+++ gnash/testsuite/actionscript.all/Makefile.am        Sun Feb  5 05:42:02 2006
@@ -21,6 +21,7 @@
 
 # We don't need  --tool anymore
 RUNTESTDEFAULTFLAGS = --srcdir $$srcdir
+noinst_SCRIPTS = gen-test.sh
 
 INCLUDES = -I.. \
         -I$(top_srcdir)                \




reply via email to

[Prev in Thread] Current Thread [Next in Thread]