[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Gnash-commit] /srv/bzr/gnash/trunk r9583: improve headers parsing
From: |
Sandro Santilli |
Subject: |
[Gnash-commit] /srv/bzr/gnash/trunk r9583: improve headers parsing |
Date: |
Tue, 12 Aug 2008 16:33:18 +0200 |
User-agent: |
Bazaar (1.5) |
------------------------------------------------------------
revno: 9583
committer: Sandro Santilli <address@hidden>
branch nick: trunk
timestamp: Tue 2008-08-12 16:33:18 +0200
message:
improve headers parsing
modified:
libcore/asobj/NetConnection.cpp
------------------------------------------------------------
revno: 9582.1.1
committer: Sandro Santilli <address@hidden>
branch nick: mybranch
timestamp: Tue 2008-08-12 16:26:20 +0200
message:
Interpret AMF header as a list of methods to invoke.
This was tested, only issue is we'd need to invoke those methods
for every *call*, rather then once each batched set of calls.
modified:
libcore/asobj/NetConnection.cpp
------------------------------------------------------------
revno: 9582.1.2
committer: Sandro Santilli <address@hidden>
branch nick: mybranch
timestamp: Tue 2008-08-12 16:32:12 +0200
message:
tick 20 times each second for remoting
modified:
libcore/asobj/NetConnection.cpp
=== modified file 'libcore/asobj/NetConnection.cpp'
--- a/libcore/asobj/NetConnection.cpp 2008-08-12 12:59:08 +0000
+++ b/libcore/asobj/NetConnection.cpp 2008-08-12 14:32:12 +0000
@@ -595,6 +595,8 @@
// parse header
b += 2; // skip version indicator and
client id
+
+ // NOTE: this looks much like parsing
of an OBJECT_AMF0
si = readNetworkShort(b); b += 2; //
number of headers
uint8_t headers_ok = 1;
if(si != 0)
@@ -612,6 +614,13 @@
headers_ok = 0;
break;
}
+ std::string
headerName((char*)b, si); // end-b);
+ //if(
!amf0_read_value(b, end, tmp) )
+ //{
+ // headers_ok = 0;
+ // break;
+ //}
+ log_debug("Header name
%s", headerName);
b += si;
if ( b + 5 > end ) {
headers_ok = 0;
@@ -624,6 +633,15 @@
break;
}
log_debug("Header value
%s", tmp);
+
+ { // method call for
each header
+ // FIXME: it seems to
me that the call should happen
+ VM& vm =
_nc.getVM();
+ string_table&
st = vm.getStringTable();
+
string_table::key key = st.find(headerName);
+
log_debug("Calling NetConnection.%s(%s)", headerName, tmp);
+
_nc.callMethod(key, tmp);
+ }
}
}
@@ -744,7 +762,7 @@
boost::intrusive_ptr<builtin_function> ticker_as = \
new builtin_function(&AMFQueue::amfqueue_tick_wrapper);
std::auto_ptr<Timer> timer(new Timer);
- unsigned long delayMS = 500; // FIXME crank up to 50 or so
+ unsigned long delayMS = 50; // FIXME crank up to 50 or so
timer->setInterval(*ticker_as, delayMS, &_nc);
ticker = _nc.getVM().getRoot().add_interval_timer(timer, true);
}
- [Gnash-commit] /srv/bzr/gnash/trunk r9583: improve headers parsing,
Sandro Santilli <=