cakedb 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. data/lib/cakedb.rb +35 -15
  2. metadata +1 -1
data/lib/cakedb.rb CHANGED
@@ -4,7 +4,7 @@ require 'socket'
4
4
 
5
5
  class CakeDB
6
6
  def initialize( server="127.0.0.1", port=8888 )
7
- puts "Connection Initiated"
7
+ #puts "Connection Initiated"
8
8
  @server = TCPSocket.new(server, port)
9
9
  @sids = {}
10
10
  end
@@ -23,7 +23,7 @@ class CakeDB
23
23
 
24
24
  def write(stream,payload)
25
25
  sid = get_sid(stream)
26
- puts sid
26
+ #puts sid
27
27
  @server.write [(payload.bytesize + 2),2,sid].pack("L>S>S>")
28
28
  @server.write payload
29
29
  @server.flush
@@ -38,20 +38,24 @@ class CakeDB
38
38
  return details
39
39
  end
40
40
 
41
- def read(stream, ts)
41
+ def read(stream, ts, tsend=nil, mode=4)
42
42
  #Issue the query
43
- sid = @sids[stream]
44
- puts sid
45
- @server.write [10,4,sid,ts].pack("L>S>S>Q>")
43
+ sid = get_sid(stream)
44
+ headersz = 10
45
+ if tsend
46
+ headersz=18
47
+ end
48
+ @server.write [headersz,mode,sid,ts].pack("L>S>S>Q>")
46
49
  @server.flush
50
+ result = Array.new
47
51
 
48
52
  #How much data we gotta get?
49
53
  recv_total = @server.recv(4).unpack("L>")[0]
54
+ puts "total is #{recv_total}"
50
55
  if recv_total > 0
51
56
  counter = 0
52
57
  #Recive the result
53
58
  while recv_total > 0
54
- counter+=1
55
59
  #Get the header - 12 bytes
56
60
  header_whole = @server.recv(12)
57
61
  header = header_whole.unpack("Q>L>")
@@ -65,25 +69,41 @@ class CakeDB
65
69
  end
66
70
 
67
71
  #recieve the data, header says how much
68
- result = @server.recv(header[1])
72
+ result[counter] = @server.recv(header[1])
69
73
 
70
74
  #Keep reading till we have everything we expect
71
- while(result.bytesize < header[1])
72
- result += @server.recv(header[1] - result.bytesize)
73
- puts "Incomplete read: #{result.bytesize} / #{header[1]}"
75
+ while(result[counter].bytesize < header[1])
76
+ result[counter] += @server.recv(header[1] - resultt[counter].bytesize)
77
+ puts "Incomplete read: #{resultt[counter].bytesize} / #{header[1]}"
74
78
  end
75
- if result.bytesize != header[1]
79
+ if result[counter].bytesize != header[1]
76
80
  puts "Incomplete read on payload receive"
77
- puts "Raw Data: #{result}"
81
+ puts "Raw Data: #{resultt[counter]}"
78
82
  puts "Length: #{header[1]} bytes"
79
- puts "Raw Data length: #{result.bytesize - 12}"
83
+ puts "Raw Data length: #{resultt[counter].bytesize - 12}"
80
84
  puts "Total Length: #{recv_total}"
81
85
  exit(1)
82
86
  end
83
- return result
87
+ recv_total = recv_total - header[1] - 12
88
+ counter+=1
84
89
  end
90
+ return result
85
91
  else
86
92
  # I SEE NOTHING!
87
93
  end
88
94
  end
95
+
96
+ def allSince(stream, ts)
97
+ #allSince is mode 4
98
+ return read(stream, ts, nil, 4)
99
+ end
100
+
101
+ def lastAt(stream, ts)
102
+ #lastAt is mode 6
103
+ return read(stream, ts, nil, 6)
104
+ end
105
+ #Perform a range query
106
+ def rangeQuery(stream, ts, tsend)
107
+ return read(stream, ts, tsend, 3)
108
+ end
89
109
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cakedb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: