Skip to content

Commit

Permalink
make-storage now takes opts as argument. -t added
Browse files Browse the repository at this point in the history
  • Loading branch information
paulosuzart committed Aug 28, 2012
1 parent 4846293 commit 9e21582
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 21 deletions.
24 changes: 12 additions & 12 deletions src/clacts/core.clj
Expand Up @@ -57,37 +57,37 @@
(defn handler
"TCP Handler. Decodes the issued command and calls the appropriate
function to excetion some action."
[storage commands]
[storage]
(fn
[ch ci]
(siphon broad-put ch)
(receive-all ch
(fn [cmd]
(println "Processing command: " cmd "From " ci)
(if-let [f ((-> cmd first keyword) commands)]
(f (rest cmd) ch storage)
(handle-err ch ci))))))

(def commands
{:PUT put
:LSA lsa
:LSC lsc})
(letfn [(handle [f] (f (rest cmd) ch storage))]
(condp = (first cmd)
"PUT" (handle put)
"LSA" (handle lsa)
"LSC" (handle lsc)
(handle-err ch ci)))))))

(defn -main
[& args]
(let [[opts _ ban] (cli args
["-p" "--port" "Port to listen to connections"
:default 10200 :parse-fn #(Integer/parseInt %)]
["-s" "--storage" "Type of storage. Use sqlite or datomic"
:default "sqlite"]
:default "sqlite"]
["-t" "--transactor" "Transactor server:port. For datomic only."
:default "localhost:4334"]
["-h" "--help" "Show this help" :default false :flag true])]
(when (:help opts)
(println ban)
(System/exit 0))
(try
(let [storage (make-storage (:storage opts))]
(let [storage (make-storage opts)]
(setup storage)
(start-tcp-server (handler storage commands) {:port (:port opts), :frame prt/CMDS})
(start-tcp-server (handler storage) {:port (:port opts), :frame prt/CMDS})
(println (format "Ready to get facts! Go for it on PORT %s." (:port opts)))
(println (format "Persistence storage is %s." (:storage opts))))
(catch Exception e
Expand Down
19 changes: 10 additions & 9 deletions src/clacts/storage.clj
Expand Up @@ -89,10 +89,8 @@

; =============== Datomic

(defonce uri "datomic:free://localhost:4334/clact")
(defonce datomic-schema "datomic/clact-schema.dtm")


(defn- extract [e]
{:author (:clact/author e)
:via (:clact/via e)
Expand All @@ -102,12 +100,12 @@
(defn- as-e [db r]
(d/entity db (first r)))

(defn load-schema [s conn]
(defn- load-schema [s conn]
(let [s-tx (read-string (slurp s))]
@(d/transact conn s-tx)))

(defrecord DatomicStorage
[schema transactor-config conn]
[schema conn]
StorageMediumP

(setup [this]
Expand Down Expand Up @@ -138,15 +136,18 @@

;;Auxiliary function to generation a connection before the Storage itself

(defn- make-datomic [schema transactor-config]
(defn- make-datomic [schema uri]
(println uri)
(d/create-database uri)
(DatomicStorage. schema transactor-config (d/connect uri)))
(DatomicStorage. schema (d/connect uri)))

; =============== The rest

(defn make-storage [s]
(condp = s
(defn make-storage [opts]
(condp = (:storage opts)
"sqlite" (SQLiteStorage. db-check-file setup-db)
"datomic" (make-datomic datomic-schema nil)
"datomic" (make-datomic
datomic-schema
(format "datomic:free://%s/clact" (:transactor opts)))
nil))

0 comments on commit 9e21582

Please sign in to comment.