3a4614f977
Correct function naming, actually get a test passing.
Ian Gulliver
2016-01-08 15:27:34 -08:00
883c07e16c
Correct naming convention.
gh-pages
Ian Gulliver
2016-01-08 15:25:52 -08:00
c9cb04d420
Make Shutdown() do something.
Ian Gulliver
2016-01-08 15:22:47 -08:00
918243b296
Make hogfather.PublicChat.Start() private.
Ian Gulliver
2016-01-08 15:15:56 -08:00
f40f4292a7
Hogfather externs.
Ian Gulliver
2016-01-08 15:15:39 -08:00
4471dfd05c
typeEventLogoutDetail
Ian Gulliver
2016-01-08 14:40:33 -08:00
327ec69b05
Static uuid()
Ian Gulliver
2016-01-07 21:12:11 -08:00
c744a2cde6
Type annotations for EventTarget imports.
Ian Gulliver
2016-01-07 21:09:38 -08:00
f569e12dbf
removeEventListener() and dispatchEvent()
Ian Gulliver
2016-01-07 21:09:20 -08:00
87b4e4257a
Drop the www
Ian Gulliver
2016-01-07 21:02:00 -08:00
b2bac74955
Disable deprecated pagespeed
Ian Gulliver
2016-01-07 20:58:29 -08:00
a782d7170c
addEventListener()
Ian Gulliver
2016-01-07 20:57:24 -08:00
7dcae7e88f
Remove duplicate function.
Ian Gulliver
2016-01-07 20:55:25 -08:00
c9626a7616
Add isConnected()
Ian Gulliver
2016-01-07 20:51:46 -08:00
5eb3674833
Batch saving to localStorage on initial subscribe; makes a big difference when we have lots of messages.
Ian Gulliver
2016-01-05 22:47:31 -08:00
5280b710d2
Shortcut calling onMessage for everything in cache.
Ian Gulliver
2016-01-05 20:44:28 -08:00
77227df9aa
Don't re-write the message cache while we're processing it.
Ian Gulliver
2016-01-05 19:12:57 -08:00
59fab5e3c6
localStorage cache for subject messages.
Ian Gulliver
2016-01-05 18:51:27 -08:00
49f14e54cf
Stop some pathological datastore behavior when a client is fetching many messages.
Ian Gulliver
2016-01-05 18:12:59 -08:00
6ee8dc4f05
Switch to a PRNG implementation that doesn't have a birthday problem.
Ian Gulliver
2015-12-30 22:01:25 -08:00
8cfa55c722
Add requestAccess(), denyRequest(), addOwner(), and addWriter(). Also add request, request_denied and acl_change events.
Ian Gulliver
2015-12-29 19:11:56 -08:00
fb85596501
Better error description. Add a TODO to fix pin() error handling.
Ian Gulliver
2015-12-29 15:14:14 -08:00
13ff0dc5d1
Update text to reflect better error descriptions.
Ian Gulliver
2015-12-29 15:13:58 -08:00
3b3755f7f5
Add amOwner() and amWriter(). Reject sendMessage() if we lack write access.
Ian Gulliver
2015-12-29 12:00:35 -08:00
415c6ad1fd
Lint fixes.
Ian Gulliver
2015-12-29 11:48:33 -08:00
976a5bd49f
Factor out ACL code. Keep a manifest copy of hogfather messages.
Ian Gulliver
2015-12-29 11:42:54 -08:00
78b92347a7
Start enforcing writer restrictions.
Ian Gulliver
2015-12-29 10:43:47 -08:00
9aa04cfbca
Hogfather now emits message events.
Ian Gulliver
2015-12-27 21:40:00 -08:00
17d7c470fd
Lint cleanups.
Ian Gulliver
2015-12-27 21:21:23 -08:00
076238eb99
Include cosmo metadata in returned messages.
Ian Gulliver
2015-12-27 21:19:33 -08:00
fdd1b85539
Allow uuid() to be called statically.
Ian Gulliver
2015-12-27 21:08:36 -08:00
53840a0cdd
Add getMessages() and sendMessage()
Ian Gulliver
2015-12-27 20:48:50 -08:00
199dd020ba
Add getID()
Ian Gulliver
2015-12-27 20:06:27 -08:00
1acbeaee12
Delay hogfather promise resolution until subscription syncs up.
Ian Gulliver
2015-12-27 17:12:12 -08:00
6789c42703
Rip out hogfather's early complexity and move toward implementing the public chat first.
Ian Gulliver
2015-12-27 17:04:46 -08:00
3f37741ae7
Avoid log spam on invalid instance channels.
Ian Gulliver
2015-12-27 16:43:19 -08:00
7be8b4e9b6
Add Hogfather.Create() factory.
Ian Gulliver
2015-12-25 14:23:04 -08:00
30a3e89bfc
Fix several cases of assuming that a Profile always has a numeric ID, rather than a named key, which is untrue.
Ian Gulliver
2015-12-24 15:26:43 -08:00
b90d3d7b44
More hogfather structure.
Ian Gulliver
2015-12-24 15:12:25 -08:00
6e879ce1d5
Add hogfather basic structure.
Ian Gulliver
2015-12-24 15:00:26 -08:00
8b6f5c916d
First Hogfather test.
Ian Gulliver
2015-10-17 16:04:37 +02:00
69aa0e711a
Start of hogfather code.
Ian Gulliver
2015-10-17 15:55:43 +02:00
cec8a6c9d3
Fix the remaining lint errors.
Ian Gulliver
2015-10-16 16:23:29 +02:00
f77007e047
Fix some lint errors from previous commit.
Ian Gulliver
2015-10-15 21:55:55 +02:00
a59f7f97f3
Add support for "local" subjects, which don't get pushed to the serve and get destroyed on unsubscribe.
Ian Gulliver
2015-10-15 19:05:39 +02:00
9b5a55b737
Add two event listener tests, mostly as examples.
Ian Gulliver
2015-10-14 17:04:01 +02:00
be831f40d3
Fix the thread locking model to be harder to screw up.
Ian Gulliver
2015-07-06 04:12:33 +00:00
d52d5df148
Add a sanity assertion.
Ian Gulliver
2015-07-06 01:43:56 +00:00
34154d3939
Remove duplicate line.
Ian Gulliver
2015-07-06 01:21:04 +00:00
ecdfce7970
Hide some additional includes.
Ian Gulliver
2015-07-06 01:20:16 +00:00
0e5723b9d0
Checkpoint: add helgrind target, switch to timespec_get(), add cosmo_random()
Ian Gulliver
2015-07-06 01:11:40 +00:00
9e8891884b
Add cosmo_get_profile(), test_subscribe_acl
Ian Gulliver
2015-07-05 02:59:07 +00:00
afc201f69c
Actually verify message ordering in test_message_ordering
Ian Gulliver
2015-07-04 21:32:08 +00:00
fdc74ed53c
Add test_message_ordering. Make all functions static so we know if any aren't in use.
Ian Gulliver
2015-07-03 22:17:06 +00:00
bd103b15bf
Fix result of send_message() when chaos monkey intervenes post-request.
Ian Gulliver
2015-07-03 22:16:42 +00:00
a416119ea3
Add subscribe_barrier test
Ian Gulliver
2015-07-02 19:51:06 +00:00
6585fb3445
Add another promise test.
Ian Gulliver
2015-07-02 04:37:23 +00:00
ac4437b7b2
Restructure promise API, use it in cosmo, add test.
Ian Gulliver
2015-07-01 04:48:25 +00:00
13fe1a07ce
Actually start calling promises.
Ian Gulliver
2015-06-28 12:22:23 -07:00
f2a3b3c677
TODO about locking issues
Ian Gulliver
2015-06-28 11:56:41 -07:00
d1a4510d2b
Refactoring for sanity, avoid some unnecessary copies.
Ian Gulliver
2015-06-28 11:55:09 -07:00
a3b6977088
More promise plumbing.
Ian Gulliver
2015-06-28 11:43:17 -07:00
4b79ef06de
Plumbing for promise integration.
Ian Gulliver
2015-06-28 11:18:05 -07:00
b29690734a
Move command queue to our own linked list, so we can attach promises. Fix OS X build.
Ian Gulliver
2015-06-28 09:54:03 -07:00
f3e38ec8a6
Add double subscribe test.
Ian Gulliver
2015-06-24 04:26:51 +00:00
e5e81673ff
Add getmessages test.
Ian Gulliver
2015-06-24 04:20:43 +00:00
92d40db1cd
Add a TODO
Ian Gulliver
2015-06-24 04:05:46 +00:00
1482d81883
Strengthen some SSL options, pave the way for future options and public key pinning.
Ian Gulliver
2015-06-24 04:01:32 +00:00
e04f06e2e5
Autogenerate client IDs to make instantiation easier. Set us up for client ID rotation later.
Ian Gulliver
2015-06-24 03:01:24 +00:00
db9b63cec8
Switch to uuid names for Event keys, because appengine reuses model ids.
Ian Gulliver
2015-06-22 20:56:27 -07:00
f3bde736f7
Log timestamp of torture run start.
Ian Gulliver
2015-06-23 03:45:00 +00:00
e29838a58e
Fix reconnect test failure.
Ian Gulliver
2015-06-20 17:42:54 +00:00
494a1060f9
Debug log callbacks fired.
Ian Gulliver
2015-06-20 15:37:21 +00:00
a994c7e7ec
Clean up debug logging story.
Ian Gulliver
2015-06-20 15:32:57 +00:00
7ab52899de
Test-only fix, torture improvements.
Ian Gulliver
2015-06-20 06:22:38 +00:00
e382392170
Torture test script.
Ian Gulliver
2015-06-20 05:48:45 +00:00
0603c2c601
Merge branch 'master' of github.com:flamingcowtv/cosmopolite
Ian Gulliver
2015-06-20 05:45:39 +00:00
33ce1fe805
More resilient method for determining when we've reconnected.
Ian Gulliver
2015-06-20 05:45:26 +00:00
a8d0661626
Forgot the cron handler.
Ian Gulliver
2015-06-19 22:43:41 -07:00
33f368910f
Better method for tracking reconnect of polling clients.
Ian Gulliver
2015-06-19 22:43:20 -07:00
9a726558ca
Add complex object test.
Ian Gulliver
2015-06-20 02:56:03 +00:00
aa5751c89d
Bulk subscribe support (mainly just to mirror JS)
Ian Gulliver
2015-06-20 01:16:50 +00:00
65c118ce6c
Debugging support.
Ian Gulliver
2015-06-19 22:57:11 +00:00
f434b5ff7b
Rename and reorder tests to match test.js
Ian Gulliver
2015-06-19 22:35:16 +00:00
457cc92e1e
Add login callback.
Ian Gulliver
2015-06-19 22:27:28 +00:00
a850c79817
Hide cosmo struct definition from the public API.
Ian Gulliver
2015-06-19 22:18:24 +00:00
d89d1cc2f6
disconnect callback
Ian Gulliver
2015-06-18 05:43:05 +00:00
d0d0ed1e21
Add a connect callback.
Ian Gulliver
2015-06-18 04:27:17 +00:00
c72f2ff30e
Add resubscription after reconnect, with a test.
Ian Gulliver
2015-06-18 04:11:13 +00:00
f89e936f55
Don't delete all events, just the ones that are acked.
Ian Gulliver
2015-06-15 21:31:21 -07:00
1102701bea
Merge branch 'master' of github.com:flamingcowtv/cosmopolite
Ian Gulliver
2015-06-15 21:25:25 -07:00
0ead64a41d
Tell polling clients when we've recreated their connection and they need to resubscribe.
Ian Gulliver
2015-06-15 21:25:00 -07:00
601c82427a
Framework for resubscribing on reconnect, some parsing cleanups.
Ian Gulliver
2015-06-16 04:24:43 +00:00
2790b6bce1
Subscription state tracking, some parsing cleanups.
Ian Gulliver
2015-06-16 02:15:17 +00:00
1325ad570e
Event cleanup pipeline.
Ian Gulliver
2015-06-14 21:48:36 -07:00
4a6cb1f9bd
Boom, real passing tests.
Ian Gulliver
2015-06-15 03:26:41 +00:00
0df573171d
Change lots of keys to IDs for length.
Ian Gulliver
2015-06-14 19:56:13 -07:00
71514b7655
Move events from keys to ids.
Ian Gulliver
2015-06-14 19:33:40 -07:00
a006375441
Polling and acks.
Ian Gulliver
2015-06-15 02:27:03 +00:00