From e09d3bae99a59d5494e429cd1e662101d0b6fd72 Mon Sep 17 00:00:00 2001 From: Efim Poberezkin Date: Mon, 25 Jan 2021 20:14:33 +0400 Subject: [PATCH] agent store: move SQLite Types -> Util (#30) --- src/Simplex/Messaging/Agent.hs | 2 +- src/Simplex/Messaging/Agent/Env/SQLite.hs | 2 +- src/Simplex/Messaging/Agent/Store/SQLite.hs | 1 - .../Messaging/Agent/Store/SQLite/Types.hs | 29 ------------------- .../Messaging/Agent/Store/SQLite/Util.hs | 15 +++++++++- tests/AgentTests.hs | 2 +- .../AgentTests/{SQLite.hs => SQLiteTests.hs} | 4 +-- 7 files changed, 19 insertions(+), 36 deletions(-) delete mode 100644 src/Simplex/Messaging/Agent/Store/SQLite/Types.hs rename tests/AgentTests/{SQLite.hs => SQLiteTests.hs} (99%) diff --git a/src/Simplex/Messaging/Agent.hs b/src/Simplex/Messaging/Agent.hs index 31d31866b..839f5e31f 100644 --- a/src/Simplex/Messaging/Agent.hs +++ b/src/Simplex/Messaging/Agent.hs @@ -21,7 +21,7 @@ import Data.Text.Encoding import Simplex.Messaging.Agent.Client import Simplex.Messaging.Agent.Env.SQLite import Simplex.Messaging.Agent.Store -import Simplex.Messaging.Agent.Store.SQLite.Types +import Simplex.Messaging.Agent.Store.SQLite.Util (SQLiteStore) import Simplex.Messaging.Agent.Store.Types import Simplex.Messaging.Agent.Transmission import Simplex.Messaging.Client (SMPServerTransmission) diff --git a/src/Simplex/Messaging/Agent/Env/SQLite.hs b/src/Simplex/Messaging/Agent/Env/SQLite.hs index fb75716a2..79e1615b3 100644 --- a/src/Simplex/Messaging/Agent/Env/SQLite.hs +++ b/src/Simplex/Messaging/Agent/Env/SQLite.hs @@ -10,7 +10,7 @@ import Crypto.Random import Network.Socket import Numeric.Natural import Simplex.Messaging.Agent.Store.SQLite -import Simplex.Messaging.Agent.Store.SQLite.Types +import Simplex.Messaging.Agent.Store.SQLite.Util (SQLiteStore) import Simplex.Messaging.Client import UnliftIO.STM diff --git a/src/Simplex/Messaging/Agent/Store/SQLite.hs b/src/Simplex/Messaging/Agent/Store/SQLite.hs index 721b0a333..be2230555 100644 --- a/src/Simplex/Messaging/Agent/Store/SQLite.hs +++ b/src/Simplex/Messaging/Agent/Store/SQLite.hs @@ -21,7 +21,6 @@ import Data.Maybe import qualified Database.SQLite.Simple as DB import Simplex.Messaging.Agent.Store import Simplex.Messaging.Agent.Store.SQLite.Schema -import Simplex.Messaging.Agent.Store.SQLite.Types import Simplex.Messaging.Agent.Store.SQLite.Util import Simplex.Messaging.Agent.Store.Types import Simplex.Messaging.Agent.Transmission diff --git a/src/Simplex/Messaging/Agent/Store/SQLite/Types.hs b/src/Simplex/Messaging/Agent/Store/SQLite/Types.hs deleted file mode 100644 index 2fa9cc0ac..000000000 --- a/src/Simplex/Messaging/Agent/Store/SQLite/Types.hs +++ /dev/null @@ -1,29 +0,0 @@ -{-# LANGUAGE DataKinds #-} -{-# LANGUAGE DuplicateRecordFields #-} -{-# LANGUAGE FlexibleContexts #-} -{-# LANGUAGE FlexibleInstances #-} -{-# LANGUAGE GADTs #-} -{-# LANGUAGE MultiParamTypeClasses #-} -{-# LANGUAGE ScopedTypeVariables #-} -{-# LANGUAGE UndecidableInstances #-} -{-# OPTIONS_GHC -fno-warn-orphans #-} - -module Simplex.Messaging.Agent.Store.SQLite.Types where - -import Data.Int (Int64) -import qualified Database.SQLite.Simple as DB -import UnliftIO.STM - -data SQLiteStore = SQLiteStore - { dbFilename :: String, - conn :: DB.Connection, - serversLock :: TMVar (), - rcvQueuesLock :: TMVar (), - sndQueuesLock :: TMVar (), - connectionsLock :: TMVar (), - messagesLock :: TMVar () - } - -type QueueRowId = Int64 - -type ConnectionRowId = Int64 diff --git a/src/Simplex/Messaging/Agent/Store/SQLite/Util.hs b/src/Simplex/Messaging/Agent/Store/SQLite/Util.hs index a0fb3aef2..1a2415df1 100644 --- a/src/Simplex/Messaging/Agent/Store/SQLite/Util.hs +++ b/src/Simplex/Messaging/Agent/Store/SQLite/Util.hs @@ -31,7 +31,6 @@ import Database.SQLite.Simple.QQ (sql) import Database.SQLite.Simple.ToField import Network.Socket import Simplex.Messaging.Agent.Store -import Simplex.Messaging.Agent.Store.SQLite.Types import Simplex.Messaging.Agent.Store.Types import Simplex.Messaging.Agent.Transmission import Simplex.Messaging.Protocol as SMP @@ -40,6 +39,20 @@ import Text.Read import qualified UnliftIO.Exception as E import UnliftIO.STM +data SQLiteStore = SQLiteStore + { dbFilename :: String, + conn :: DB.Connection, + serversLock :: TMVar (), + rcvQueuesLock :: TMVar (), + sndQueuesLock :: TMVar (), + connectionsLock :: TMVar (), + messagesLock :: TMVar () + } + +type QueueRowId = Int64 + +type ConnectionRowId = Int64 + addRcvQueueQuery :: Query addRcvQueueQuery = [sql| diff --git a/tests/AgentTests.hs b/tests/AgentTests.hs index dc07dac2d..d1580b1fb 100644 --- a/tests/AgentTests.hs +++ b/tests/AgentTests.hs @@ -7,7 +7,7 @@ module AgentTests where -import AgentTests.SQLite +import AgentTests.SQLiteTests (storeTests) import Data.ByteString.Char8 (ByteString) import qualified Data.ByteString.Char8 as B import SMPAgentClient diff --git a/tests/AgentTests/SQLite.hs b/tests/AgentTests/SQLiteTests.hs similarity index 99% rename from tests/AgentTests/SQLite.hs rename to tests/AgentTests/SQLiteTests.hs index 8b4d68e3a..28b6a032e 100644 --- a/tests/AgentTests/SQLite.hs +++ b/tests/AgentTests/SQLiteTests.hs @@ -2,14 +2,14 @@ {-# LANGUAGE DuplicateRecordFields #-} {-# LANGUAGE OverloadedStrings #-} -module AgentTests.SQLite where +module AgentTests.SQLiteTests where import Control.Monad.Except import Data.Word (Word32) import qualified Database.SQLite.Simple as DB import Simplex.Messaging.Agent.Store import Simplex.Messaging.Agent.Store.SQLite -import Simplex.Messaging.Agent.Store.SQLite.Types +import Simplex.Messaging.Agent.Store.SQLite.Util (SQLiteStore, conn, dbFilename) import Simplex.Messaging.Agent.Store.Types import Simplex.Messaging.Agent.Transmission import System.Random