Skip to content

Commit

Permalink
this is really stupid but I just need a test harness for now
Browse files Browse the repository at this point in the history
  • Loading branch information
bitemyapp committed May 14, 2013
0 parents commit eb33283
Show file tree
Hide file tree
Showing 7 changed files with 558 additions and 0 deletions.
12 changes: 12 additions & 0 deletions .gitignore
@@ -0,0 +1,12 @@
/target
/lib
/classes
/checkouts
pom.xml
pom.xml.asc
*.jar
*.class
.lein-deps-sum
.lein-failures
.lein-plugins
.lein-repl-history
13 changes: 13 additions & 0 deletions README.md
@@ -0,0 +1,13 @@
# revise

A Clojure library designed to ... well, that part is up to you.

## Usage

FIXME

## License

Copyright © 2013 FIXME

Distributed under the Eclipse Public License, the same as Clojure.
3 changes: 3 additions & 0 deletions doc/intro.md
@@ -0,0 +1,3 @@
# Introduction to revise

TODO: write [great documentation](http://jacobian.org/writing/great-documentation/what-to-write/)
9 changes: 9 additions & 0 deletions project.clj
@@ -0,0 +1,9 @@
(defproject revise "0.0.1-SNAPSHOT"
:description "RethinkDB client for Clojure"
:url "github.com/bitemyapp/revise/"
:license {:name "Eclipse Public License"
:url "http://www.eclipse.org/legal/epl-v10.html"}
:main revise.core
:dependencies [[org.clojure/clojure "1.5.1"]
[gloss "0.2.2-beta4"]
[org.flatland/protobuf "0.7.1"]])
443 changes: 443 additions & 0 deletions resources/proto/rethinkdb.proto

Large diffs are not rendered by default.

71 changes: 71 additions & 0 deletions src/revise/core.clj
@@ -0,0 +1,71 @@
(ns revise.core
(:use [clojure.java.io]
[flatland.protobuf.core]
[gloss.core]
[gloss.io])
(:import [java.net Socket]
[java.io PrintWriter InputStreamReader BufferedReader OutputStream])
(:gen-class :main true))

(import Rethinkdb$VersionDummy)

(def version-frame (compile-frame {:a :int32-le}))
(defn gen-ver [val]
(contiguous (encode version-frame {:a val})))

(def VersionDummy (protodef Rethinkdb$VersionDummy))

(def host {:name "localhost" :port 28015})

(def magic-number 1063369270)
(def version (protobuf-dump (protobuf VersionDummy :Version magic-number)))
(def ver-frame (gen-ver magic-number))
;; (println (str "ver-frame: " (.get ver-frame)))
;; 0x3f61ba36

(declare conn-handler)

(defn connect [server]
(let [socket (Socket. (:name server) (:port server))
in (BufferedReader. (InputStreamReader. (.getInputStream socket)))
out (PrintWriter. (.getOutputStream socket))
conn (ref {:in in :out out})]
(doto (Thread. #(conn-handler conn)) (.start))
conn))

(defn write [conn msg]
; (println (str "being sent: " msg))
(doto (:out @conn)
(.write msg)
(.flush)))

(defn conn-handler [conn]
(while (nil? (:exit @conn))
(let [msg (.readLine (:in @conn))]
(when msg
(println msg)))))

;; (def rdb (connect host))

(def sock (java.net.Socket. "localhost" 28015))

(def write-stream (writer sock))
(def read-stream (reader sock))

(defn read-loop []
(loop [buffer ""]
;;(println (str "Looping.. -> " buffer))
(let [nbuf (parseMessage buffer)
nchr (.read read-stream) ]
(if-not (= nchr -1)
(recur (str nbuf (char nchr)))))))

(defn write-s [message]
(.write write-stream message)
(println (str "-> " message))
(.flush write-stream))

(defn -main [& args]
;; (write rdb magic-number)
(write-s magic-number)
(read-loop))
7 changes: 7 additions & 0 deletions test/revise/core_test.clj
@@ -0,0 +1,7 @@
(ns revise.core-test
(:use clojure.test
revise.core))

(deftest a-test
(testing "FIXME, I fail."
(is (= 0 1))))

0 comments on commit eb33283

Please sign in to comment.