Commit graph

3616 commits

Author SHA1 Message Date
Andy2
50c387d75e remove players from db as well as runtime when ack times out 2010-09-16 06:49:35 -07:00
Andy2
ca6039e890 new test script attempting to mimic real-world usage 2010-09-16 05:39:50 -07:00
Andy2
25c1824c45 fix broken assertion and add missing state transitions to fix crashes. 2010-09-16 05:39:25 -07:00
Andy2
2b702b48d6 need to clear CID of record in DB when killing corresponding in-memory
cref or reconnect will fail.
2010-09-16 04:47:17 -07:00
Andy2
452e3fc86b timeout in milliseconds instead of seconds 2010-09-16 04:46:04 -07:00
Andy2
fa50bd00f1 timeout final scores alert 2010-09-16 03:42:57 -07:00
Andy2
d1a9c3962a rename cookie->room in db; reposition columns. 2010-09-16 03:30:24 -07:00
Andy2
b25579b893 greatly simplify state machine for connections. Now (with DEVACK=20
on conf file) newrelay.sh will complete running 50 4-device gtk games.
Haven't tested reconnect case which I almost certianly broke.
2010-09-16 01:53:43 -07:00
Andy2
0d7165f881 add ability to run gtk from newrelay.sh. Trying to run 50 instances
crashes the relay as ACKs take too long to come back.
2010-09-16 01:44:54 -07:00
Andy2
06c8fdc67f stop tracking seeds separately until have a use for 'em separate from
HostRec.  This fixes failure to reconnect so that now a complete game
is possible (gtk version) without the two devices every being
connected at the same time.
2010-09-16 01:13:26 -07:00
Andy2
a870cac86d break connect and reconnect into separate paths to simplify. Be
consistent: nJoined in DB tracks players "ever seen and issued
connName" rather than "currently connected".  Next step: debug game
between two devices never connected at same time.
2010-09-15 14:05:51 -07:00
Andy2
8961910263 field name change 2010-09-15 14:03:59 -07:00
Eric House
b8a431cf01 fix bug in sql statement 2010-09-14 21:28:18 -07:00
Eric House
54d268b718 pass through to database whether room is public 2010-09-14 21:20:11 -07:00
Eric House
e3053370d0 add cmd to build the database and main table 2010-09-14 21:18:04 -07:00
Eric House
ddcc338ed7 don't break out of loop without unlocking mutex 2010-09-14 21:16:16 -07:00
Eric House
56a920740a remove unused funtion declaraion 2010-09-14 21:15:24 -07:00
Eric House
9fc39a55ed add params to set public-room-related booleans; add timeout option on
modal dialogs so gtk version can run unattended.
2010-09-14 21:13:45 -07:00
Andy2
3b5b5f0241 factor dbmgr code; add and call method to zero CIDs on boot. 2010-09-15 01:14:28 -07:00
Andy2
821e4d9c39 add ACK to protocol, returned by device after gets connName on initial
connection.  Space is held for device on assumption ack will come
back, then given up if it fails.
2010-09-14 13:54:52 -07:00
Andy2
f8c1c016cc remove special-case states and handling of first connect; track number
of players sought in the cref itself, adding in constructor, and not
in HostRec instances.  This is cleanup with no behavior change.
2010-09-13 13:49:13 -07:00
Andy2
100ed8532f timestamp records on creation 2010-09-12 05:04:52 -07:00
Andy2
ded6e22180 do finding of open games using database rather than cref list, which
requires updating the number of players when new devices join.  Drop
requirement that cid be unique.
2010-09-12 04:49:03 -07:00
Andy2
663551fcb5 improve db, adding uniqueness contraints. Pass in connName so can
meet that constraint.  Figure out next cid using a query at startup.
2010-09-12 03:57:23 -07:00
Andy2
86a1e943ca make dict settable too 2010-09-12 03:53:39 -07:00
Eric House
c1da64b96a instantiate and use the new dbmgr class 2010-09-11 19:45:04 -07:00
Eric House
87de53cf96 add new class to interface with postgres database in an experiment to
simplify things by using a db to survive a crash/reboot.  So far (with
next checkin) manages to update a db.  Next need to do queries instead
of searches through in-memory data.
2010-09-11 19:44:37 -07:00
eehouse@eehouse.org
0b46455044 Merge branch 'relay_proxy' of ssh://xwords.git.sourceforge.net/gitroot/xwords/xwords into relay_proxy 2010-09-12 02:34:20 -07:00
Andy2
54d49d450a add back state and table entries to get rid of an unused cref. 2010-09-11 01:40:40 -07:00
Andy2
8908ca5b1d ignore new test script's log files 2010-09-11 01:40:05 -07:00
Andy2
1cd2d542f7 new test script 2010-09-11 01:39:20 -07:00
Andy2
d5f2a72227 note that file's out-of-date 2010-09-11 01:28:04 -07:00
Andy2
463e9c3ccf pass langCode in reconnect case too 2010-09-11 01:23:39 -07:00
Andy2
bd71a15ddc turn off heartbeats on client side 2010-09-11 01:23:13 -07:00
Andy2
dc957e1a92 add match test on language code and number of players 2010-09-10 13:45:40 -07:00
Eric House
54611df679 nuke unused variable 2010-09-10 05:55:59 -07:00
Andy2
e60495ff93 read, pass, store and display langCode. Not yet used to route
connections to crefs.
2010-09-10 01:59:37 -07:00
Andy2
b3d3673dc9 read the langcode out of dict and into common struct 2010-09-10 01:57:22 -07:00
Andy2
2ee9031fdc langcode belongs in connect, not reconnect, message 2010-09-10 01:56:58 -07:00
Andy2
20312144dd tons of changes, still rough, snapshoted here: a gtk device vs device
game works to completion with both signing up as guests (no -s) with
one local and one remote player (identical commandlines.)  Not yet
tested: if any signs up as a host, reconnecting rather than
connecting, etc.  This is just a snapshot.
2010-09-10 01:30:40 -07:00
Andy2
34a94f23a0 fix error message to not specify host or guest 2010-09-10 01:24:42 -07:00
Andy2
f7c5ff619d turn off heartbeats 2010-09-10 01:24:03 -07:00
eehouse@eehouse.org
a79f50053b Merge branch 'relay_proxy' of ssh://xwords.git.sourceforge.net/gitroot/xwords/xwords into relay_proxy 2010-09-09 04:21:02 -07:00
Eric House
89e7a506a4 reduce amount of logging 2010-09-08 20:28:14 -07:00
Eric House
90d505abea call accept() in main thread rather than in thread proc to fix
long-standing bug where main thread kept finding socket to be readable
and forking new threads to call accept() on it and then block forever.
2010-09-08 20:24:36 -07:00
Eric House
a64b67a54f reduce amount of logging 2010-09-08 20:17:32 -07:00
Eric House
f8ca35f9b6 call accept() in main thread rather than in thread proc to fix
long-standing bug where main thread kept finding socket to be readable
and forking new threads to call accept() on it and then block forever.
2010-09-08 20:16:57 -07:00
Andy2
01fe388f85 remove logging accidentally checked in 2010-09-03 06:40:17 -07:00
Andy2
e6545d8d57 set and save new booleans, etc. Relay params UI seems to work now
except for listing public rooms (still hard-coded)
2010-09-03 06:39:46 -07:00
Andy2
b742c7dbb7 add new booleans to relay address record around public rooms 2010-09-03 06:38:46 -07:00
Andy2
e20c63f38c move toward the UI I want: show public room browser or edittext for
new room name depending on checkbox, etc.  Still not fully wired.
2010-09-02 05:46:35 -07:00
Andy2
0b91e9634e save/restore new dictLang field; up stream version 2010-09-01 06:51:44 -07:00
Andy2
c6c1a93de5 copy new dictLang field java<->c 2010-09-01 06:51:09 -07:00
Andy2
6d7ff11dcc add and set new field, dictLang 2010-09-01 06:50:33 -07:00
Andy2
73746e3664 first cut at relay config section, inline this time, with refresh
button and make-public checkbox.  Neither wired up nor hidden in
non-networked case.
2010-09-01 06:49:01 -07:00
Andy2
cad2854d08 fix bug by always enabling set of widgets for local player in case
prev invocation of dialog hid it.
2010-08-31 06:21:46 -07:00
Andy2
784b5c8cdf tweak strings 2010-08-31 06:20:48 -07:00
Andy2
4d1d7ae7ce put space between "Player 1" and "(robot)" 2010-08-31 06:20:29 -07:00
Andy2
9367251b33 lots of changes, still needing cleanup and a bit of debugging, to
simplify game settings dialog and remove role: a game is now
standalone or not.  Games will be matched on the relay (or over BT, I
assume) based on how many players they provide vs. need -- and other
settings like dictionary
2010-08-31 05:43:41 -07:00
Andy2
adf9c28e0d make games list item as tall without delete button as is with. 2010-08-30 20:44:01 -07:00
Andy2
785ae531db add language name to dict names in GameConfig's menu too 2010-08-27 06:26:25 -07:00
Andy2
092236b0dd cleanup; do formatting inside DictLangCache 2010-08-27 06:25:56 -07:00
Andy2
40e266dda0 move lang strings into cache and add method to get 'em 2010-08-26 18:43:59 -07:00
eehouse@eehouse.org
ecd0280353 Merge branch 'android_branch' into relay_proxy 2010-08-26 18:36:55 -07:00
Andy2
5ddbef7829 update for b15 2010-08-26 18:33:22 -07:00
Andy2
0f3867b995 up constants/version for beta 15 2010-08-26 18:22:18 -07:00
Andy2
d1f6057987 fix stupid typo that meant crosshairs started on top row was only
three cols wide at first.
2010-08-26 18:20:24 -07:00
Andy2
0313421634 Add new class to cache lang codes for dicts to prevent expensive
operation of loading them each time.  Will have other uses later.
2010-08-26 18:14:14 -07:00
Andy2
40d8aede88 use new jni method and array of names to append language to name of dict 2010-08-25 06:34:54 -07:00
Andy2
51e2c61962 add array mapping lang code (the proprietary code stored in dicts) to
language name.  (Names should be translated.)
2010-08-25 06:34:29 -07:00
Andy2
cf6d8efb29 new jni method to get lang code. Takes a dict's raw bytes and builds
a dict object just to fetch the code, which is pretty inefficient, so
caching should be added later on the java side.
2010-08-25 06:33:16 -07:00
Andy2
4208c33ecf make lang code support non-conditional 2010-08-25 06:31:38 -07:00
Andy2
3dba8ba13b Fix bug reported by user: if robot finishes a search but fails to find
a move it's still done with its turn and must trade or pass.
2010-08-24 18:38:12 -07:00
Andy2
3b52f7bbd0 don't connect proxy unless there's at least one relay game 2010-08-23 18:53:11 -07:00
Andy2
33d60452a3 fork a thread to handle proxy connects. Later may want to use thread
pool as for game threads.
2010-08-23 18:52:52 -07:00
Andy2
b586fa1a34 add preference controlling how often proxy connects to relay. Still
need to add way to change timer when interval pref is changed and
other cleanup.
2010-08-23 18:39:47 -07:00
Andy2
a34ccb424f device now passes list of "relayID"s, consisting of connName plus
device id, to relay, one for each stored game that's communicating via
the relay.  Relay parses out each relayID.  Next relay can use these
to look up whether messages are available and reply with that, and
device can put up a notification.
2010-08-22 12:16:57 -07:00
Andy2
56b6a425e2 proxy now writes one byte to relay and reads one byte reply. 2010-08-19 18:34:28 -07:00
Andy2
48ac79be51 GamesList starts a repeating alarm that invokes a new activity that
launches the service.  Service can now do a single check with the
relay, notify if needed, and exit (but doesn't yet.)
2010-08-19 08:45:18 -07:00
Andy2
25e7889c28 checkpoint: add service that's launched at app start and spawns a
thread that stops itself immediately.  Eventually that thread will
check the relay for pending moves, put up a notification offering to
open the game that has moves pending, and schedule itself to run again
later before stopping itself.
2010-08-19 07:47:11 -07:00
Andy2
019da83d60 meant to check this in 2010-08-12 06:42:59 -07:00
Andy2
416b379781 add second class of socket to be listened on, meant for per-device
rather than per-game connection, and when adding connected sockets to
active set track the type.
2010-08-12 06:42:33 -07:00
Andy2
38ed6e4054 add missing close tag 2010-08-11 21:10:10 -07:00
eehouse@eehouse.org
a791b0e53e Merge branch 'android_branch' of ssh://xwords.git.sourceforge.net/gitroot/xwords/xwords into android_branch 2010-08-11 20:00:38 -07:00
Andy2
ac022ea5a5 add java version of new crosshairs flags; draw crosshairs 1/3
width/height of cells instead of reusing focus code to color
background.
2010-08-11 18:53:12 -07:00
Andy2
d44b08b609 remove unused and confusing duplicate flags. 2010-08-11 18:51:33 -07:00
Andy2
2d69d8f2b0 use new crosshairs flags to draw a cross in the middle third of cells 2010-08-11 18:51:09 -07:00
Andy2
09bc83429e add and set new flags for crosshairs so platforms can do better than
fill cells as is done for focus.
2010-08-11 18:50:16 -07:00
Andy2
81ad7719b1 list changes since b13 2010-08-10 21:34:44 -07:00
Andy2
fc603645d1 make changes dialog launchable from About dialog (so reachable other
than immediately after upgrade)
2010-08-10 20:33:33 -07:00
Andy2
e720fe79ab wrap in ScrollView so can scroll 2010-08-10 20:32:04 -07:00
Andy2
287ab2485f add changes summary dialog shown on first launch after an upgrade. 2010-08-10 18:48:19 -07:00
Andy2
269bd15a45 change constants for beta 14 2010-08-10 06:12:09 -07:00
Andy2
205723e03b add missing event to logging 2010-07-30 17:44:20 -07:00
Andy2
13596f8538 synchronize read and write of files, fixing a race condition between
BoardActivity shutdown (save) and GamesList refresh (open) that
resulted in zero-length byte array being passed into the jni.  It's
now possible for the list to win the race and display old data, so a
better solution would be to check-out the file in such a way that the
list couldn't read it until it was update, but at least now we won't
crash.
2010-07-30 17:40:46 -07:00
Andy2
d07d90761f remove logging 2010-07-30 17:38:07 -07:00
Andy2
b4f7a6917f wrap time in brackets for readability 2010-07-30 07:16:24 -07:00
Andy2
f9afcc0e6f add ability to tag events as UI or not. CMD_DO is not. Only UI
events in queue prevent engine from continuing.  This fixes bug where
server running engine on behalf of robot would starve the UI thread by
looping forever seeing the engine bail because a CMD_DO was in the
queue and then adding a CMD_DO to try running the engine yet again.
2010-07-30 06:43:56 -07:00
eehouse@eehouse.org
3b7abc2a31 Merge branch 'android_branch' of ssh://xwords.git.sourceforge.net/gitroot/xwords/xwords into android_branch 2010-07-29 21:13:00 -07:00
Eric House
e857b01783 ignore logs and core files 2010-07-29 21:07:20 -07:00