Commit Graph

1321 Commits

Author SHA1 Message Date
Evgeny Poberezkin
2e6ba85308 SMP client library (#9)
* functions to send SMP commands and receive responses

* refactor agent: use SMPClient

* fix tests, remove ServerClient.hs

* refactor processCommand

* fix Agent.hs

* fix SMPClient, tests

* "forever" to SMPClient process
2021-02-26 18:09:26 +04:00
Evgeny Poberezkin
02a15f9f25 agent tests (#8) 2021-02-26 18:09:26 +04:00
Evgeny Poberezkin
253f4e39c9 JOIN command (#4)
* parse JOIN command

* parse JOIN command

* serialize NEW command

* parse and serialize CON response

* process JOIN command: SEND confirmation (WIP)

* process response to the confirmation from JOIN command

* remove comment
2021-01-11 18:31:10 +00:00
Efim Poberezkin
7f22dcd496 agent store: add updateQueueStatus tests 2021-01-11 19:34:30 +04:00
Efim Poberezkin
f5aaab3861 agent store: fix updateQueueStatus 2021-01-10 23:43:57 +04:00
Efim Poberezkin
b9cdc6a09d agent store: add updateQueueStatus; TODO finalize, tests 2021-01-10 16:08:19 +04:00
Evgeny Poberezkin
ef028c135d agent SQLiteStore: method stubs 2021-01-09 20:54:41 +00:00
Evgeny Poberezkin
394803b3cf remove/fix compiler warnings 2021-01-09 20:48:07 +00:00
Evgeny Poberezkin
ea6496ca24 better MonadUnliftIO instance for ExceptT; fix tests 2021-01-09 20:35:19 +00:00
Evgeny Poberezkin
d1c5e9df7b agent: ErrorType constructor for store errors, exceptions are caught 2021-01-09 19:55:42 +00:00
Evgeny Poberezkin
3dbdb948ae agent: respond with INV (TODO: store exception blows up; select does not work without port 2021-01-09 19:23:32 +00:00
Evgeny Poberezkin
a1c4ce6448 refactor store: simplify 2021-01-09 13:04:13 +00:00
Evgeny Poberezkin
0d0a12f778 refactor store: m (Either e a) => ExceptT e m a 2021-01-09 11:18:52 +00:00
Evgeny Poberezkin
75f58f8ba4 remove unnecessary bindings 2021-01-09 08:31:21 +00:00
Efim Poberezkin
af5bd101cb agent store: make create connection methods return () 2021-01-08 15:51:33 +04:00
Efim Poberezkin
19238c6cc4 agent store: add deleteConn and tests 2021-01-07 17:58:46 +04:00
Efim Poberezkin
e692cb0119 add addRcvQueue and tests 2021-01-07 14:00:53 +04:00
Evgeny Poberezkin
51cc602bdb agent store: refactor addSndQueue 2021-01-06 20:22:00 +00:00
Efim Poberezkin
5a6b1c67a9 add test testAddSndQueue 2021-01-06 23:01:53 +04:00
Efim Poberezkin
94d0be5d27 add test for addSndQueue 2021-01-06 22:35:04 +04:00
Efim Poberezkin
61092e8371 add implemented addSndQueue 2021-01-06 22:11:55 +04:00
Efim Poberezkin
1c32fccb39 [WIP] add addSndQueue 2021-01-06 18:03:55 +04:00
Evgeny Poberezkin
6e6ad0fb9b agent store: getConn with tests 2021-01-05 20:31:01 +00:00
Evgeny Poberezkin
a555c4e510 agent store: getSndQueue 2021-01-05 19:42:50 +00:00
Evgeny Poberezkin
4a19602be6 agent store: getRcvQueue 2021-01-05 19:34:47 +00:00
Efim Poberezkin
a28462d496 add select functions drafts 2021-01-05 19:44:44 +04:00
Evgeny Poberezkin
5d2e77f41d test: agent SQLite createRcvConnection 2021-01-04 20:25:02 +00:00
Efim Poberezkin
2e761b20f6 remove commented queries 2021-01-04 18:01:11 +04:00
Efim Poberezkin
9a1ffb349a add insertSndQueue, insertSndConnection and implementation of createSndConn 2021-01-04 17:48:29 +04:00
Evgeny Poberezkin
15cf2e9fff upsertServer: use select to get server ID 2021-01-04 10:39:20 +00:00
Evgeny Poberezkin
650971fa02 method to insert connection (#3) 2021-01-03 18:05:50 +00:00
Evgeny Poberezkin
3d4f43a051 add NOT NULL constraints 2021-01-03 12:47:12 +00:00
Evgeny Poberezkin
6526e421e8 insertWithLock 2021-01-03 11:44:07 +00:00
Evgeny Poberezkin
48967167c4 add table mutexes for insert queries (to get inserted ID thread-safely via single connection) 2021-01-03 11:31:06 +00:00
Evgeny Poberezkin
d260a464d6 add error handling, function to process SMP responses 2021-01-03 10:42:41 +00:00
Evgeny Poberezkin
24bca7650e throw exception from Transport.StartTCPClient when no provided address works (and on empty list of addresses) 2021-01-02 16:55:43 +00:00
Evgeny Poberezkin
80b4ff365d TCP client: try all resolved addresses, not just the first 2020-12-30 21:25:49 +00:00
Evgeny Poberezkin
f3cd3eac58 add protocol version in TCP welcome 2020-12-30 18:50:50 +00:00
Efim Poberezkin
3c1834f93f implement addServer command 2020-12-30 18:54:17 +04:00
Evgeny Poberezkin
44b58a5bf0 fix: agent communicates with local SMP server 2020-12-29 21:21:51 +00:00
Evgeny Poberezkin
cdf8695bef send NEW command to SMP server (response is not received for some reason...) 2020-12-29 20:51:09 +00:00
Efim Poberezkin
d6e1aeacdf write null sender queue on initial connection insert 2020-12-29 22:19:20 +04:00
Efim Poberezkin
92d170f178 add queries drafts for insertion of server, queue, connection 2020-12-29 21:30:00 +04:00
Evgeny Poberezkin
fdf35ba214 stub function to process client commands 2020-12-29 13:32:45 +00:00
Evgeny Poberezkin
9d15035fb3 client/agent transmission types, parse NEW/INV commands 2020-12-29 13:11:46 +00:00
Evgeny Poberezkin
dabef7f0d1 use quasiqoutes for queries 2020-12-28 21:23:28 +00:00
Evgeny Poberezkin
cf38b4dddf agent: Transmission type 2020-12-28 20:42:47 +00:00
Efim Poberezkin
c47f583574 add unique constraints todo 2020-12-28 23:50:04 +04:00
Efim Poberezkin
dea5c6478a change fields to blobs 2020-12-28 23:32:05 +04:00
Efim Poberezkin
205c6bf117 add servers table to database 2020-12-28 22:06:01 +04:00