on master help sign in
WIP: use individual message markers to mitigate error

-project-m36-daemon: ProjectM36/Daemon/Main.hs:23:18-92: Non-exhaustive patterns in lambda

commit4e1d107a1c19f5778725b0c3e99976adec6856c9 authorAgentM <agentm@themactionfaction.com> dateTue 17 Nov 2015, 00:34 (11 years ago) parentff20471
3 files changed+36−27
ProjectM36/Client.hs+2−4 ProjectM36/Daemon/Main.hs+12−11 ProjectM36/Daemon/RemoteCallTypes.hs+22−12
ProjectM36/Client.hs+2−4
@@ -44,7 +44,7 @@ import ProjectM36.TransactionGraph
4444import ProjectM36.TransactionGraph.Persist
4545import ProjectM36.Attribute
4646import ProjectM36.Persist (DiskSync(..))
47−import ProjectM36.Daemon.RemoteCallTypes (RemoteExecution(..))
47+import ProjectM36.Daemon.RemoteCallTypes
4848import Network.Transport.TCP (createTransport, defaultTCPParameters, encodeEndPointAddress)
4949import Control.Distributed.Process.Node (newLocalNode, initRemoteTable, runProcess, LocalNode)
5050import Control.Distributed.Process.Extras.Internal.Types (whereisRemote)
@@ -55,7 +55,7 @@ import Data.UUID (UUID)
5555import Data.UUID.V4 (nextRandom)
5656import Control.Concurrent.STM
5757import Data.Word
58−import Control.Distributed.Process (ProcessId, Process, getSelfPid)
58+import Control.Distributed.Process (ProcessId, Process)
5959import Control.Exception (IOException)
6060import Control.Concurrent.MVar
6161import qualified Data.Map as M
@@ -168,8 +168,6 @@ runProcessResult localNode proc = do
168168remoteCall :: (Serializable a, Serializable b) => Connection -> a -> IO b
169169remoteCall (InProcessConnection _ _) _ = error "remoteCall called on local connection"
170170remoteCall (RemoteProcessConnection localNode serverProcessId) arg = runProcessResult localNode $ do
171− pid <- getSelfPid
172− liftIO $ putStrLn (show serverProcessId)
173171 ret <- safeCall serverProcessId arg
174172 case ret of
175173 Left err -> error (show err)
ProjectM36/Daemon/Main.hs+12−11
@@ -2,7 +2,7 @@
22import ProjectM36.Client
33import ProjectM36.Daemon.ParseArgs (parseConfig, persistenceStrategy, databaseName)
44import ProjectM36.Daemon.EntryPoints (handleExecuteRelationalExpr, handleExecuteDatabaseContextExpr, handleLogin, handleExecuteHeadName, handleExecuteGraphExpr, handleExecuteTypeForRelationalExpr, handleRetrieveInclusionDependencies,handleRetrievePlanForDatabaseContextExpr, handleRetrieveTransactionGraph, handleRetrieveHeadTransactionUUID)
5−import ProjectM36.Daemon.RemoteCallTypes (RemoteExecution(..))
5+import ProjectM36.Daemon.RemoteCallTypes
66
77import System.Exit (exitFailure, exitSuccess)
88import Control.Concurrent (threadDelay)
@@ -18,16 +18,17 @@ import qualified Control.Distributed.Process.Extras.Internal.Types as DIT
1818
1919serverDefinition :: ProcessDefinition Connection
2020serverDefinition = defaultProcess {
21− apiHandlers = [handleCall (\conn Login -> handleLogin conn),
22− handleCall (\conn ExecuteHeadName -> handleExecuteHeadName conn),
23− handleCall (\conn (ExecuteRelationalExpr expr) -> handleExecuteRelationalExpr conn expr),
24− handleCall (\conn (ExecuteDatabaseContextExpr expr) -> handleExecuteDatabaseContextExpr conn expr),
25− handleCall (\conn (ExecuteGraphExpr expr) -> handleExecuteGraphExpr conn expr),
26− handleCall (\conn (ExecuteTypeForRelationalExpr expr) -> handleExecuteTypeForRelationalExpr conn expr),
27− handleCall (\conn RetrieveInclusionDependencies -> handleRetrieveInclusionDependencies conn),
28− handleCall (\conn (RetrievePlanForDatabaseContextExpr dbExpr) -> handleRetrievePlanForDatabaseContextExpr conn dbExpr),
29− handleCall (\conn RetrieveHeadTransactionUUID -> handleRetrieveHeadTransactionUUID conn),
30− handleCall (\conn RetrieveTransactionGraph -> handleRetrieveTransactionGraph conn)
21+ apiHandlers = [
22+ handleCall (\conn ExecuteHeadName -> handleExecuteHeadName conn),
23+ handleCall (\conn (ExecuteRelationalExpr expr) -> handleExecuteRelationalExpr conn expr),
24+ handleCall (\conn (ExecuteDatabaseContextExpr expr) -> handleExecuteDatabaseContextExpr conn expr),
25+ handleCall (\conn (ExecuteGraphExpr expr) -> handleExecuteGraphExpr conn expr),
26+ handleCall (\conn (ExecuteTypeForRelationalExpr expr) -> handleExecuteTypeForRelationalExpr conn expr),
27+ handleCall (\conn RetrieveInclusionDependencies -> handleRetrieveInclusionDependencies conn),
28+ handleCall (\conn (RetrievePlanForDatabaseContextExpr dbExpr) -> handleRetrievePlanForDatabaseContextExpr conn dbExpr),
29+ handleCall (\conn RetrieveHeadTransactionUUID -> handleRetrieveHeadTransactionUUID conn),
30+ handleCall (\conn RetrieveTransactionGraph -> handleRetrieveTransactionGraph conn),
31+ handleCall (\conn Login -> handleLogin conn)
3132 ],
3233 unhandledMessagePolicy = Log
3334 }
ProjectM36/Daemon/RemoteCallTypes.hs+22−12
@@ -5,15 +5,25 @@ import ProjectM36.TransactionGraph
55import GHC.Generics
66import Data.Binary
77
8−data RemoteExecution = Login |
9− Logout |
10− ExecuteRelationalExpr RelationalExpr |
11− ExecuteDatabaseContextExpr DatabaseExpr |
12− ExecuteGraphExpr TransactionGraphOperator |
13− ExecuteHeadName |
14− ExecuteTypeForRelationalExpr RelationalExpr |
15− RetrieveInclusionDependencies |
16− RetrievePlanForDatabaseContextExpr DatabaseExpr |
17− RetrieveTransactionGraph |
18− RetrieveHeadTransactionUUID
19− deriving (Binary, Generic)
8+data Login = Login
9+ deriving (Binary, Generic)
10+data Logout = Logout
11+ deriving (Binary, Generic)
12+data ExecuteRelationalExpr = ExecuteRelationalExpr RelationalExpr
13+ deriving (Binary, Generic)
14+data ExecuteDatabaseContextExpr = ExecuteDatabaseContextExpr DatabaseExpr
15+ deriving (Binary, Generic)
16+data ExecuteGraphExpr = ExecuteGraphExpr TransactionGraphOperator
17+ deriving (Binary, Generic)
18+data ExecuteHeadName = ExecuteHeadName
19+ deriving (Binary, Generic)
20+data ExecuteTypeForRelationalExpr = ExecuteTypeForRelationalExpr RelationalExpr
21+ deriving (Binary, Generic)
22+data RetrieveInclusionDependencies = RetrieveInclusionDependencies
23+ deriving (Binary, Generic)
24+data RetrievePlanForDatabaseContextExpr = RetrievePlanForDatabaseContextExpr DatabaseExpr
25+ deriving (Binary, Generic)
26+data RetrieveTransactionGraph = RetrieveTransactionGraph
27+ deriving (Binary, Generic)
28+data RetrieveHeadTransactionUUID = RetrieveHeadTransactionUUID
29+ deriving (Binary, Generic)