Skip to content
This repository was archived by the owner on Oct 7, 2020. It is now read-only.

Commit e4a4016

Browse files
author
Eric Solender
committed
updated some stuff, but will probably delete most of this
1 parent 401df1c commit e4a4016

File tree

19 files changed

+312
-131
lines changed

19 files changed

+312
-131
lines changed

client_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,4 +75,3 @@ func TestClientV4(t *testing.T) {
7575
t.FailNow()
7676
}
7777
}
78-

encoding/encoder.go

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,9 @@ func Marshal(v interface{}) ([]byte, error) {
105105

106106
// write writes to the writer. Buffers the writes using chunkSize.
107107
func (e Encoder) Write(p []byte) (n int, err error) {
108+
//log.Trace("in encode write")
109+
//log.Trace(fmt.Sprintf("len writing is %v", len(p)))
110+
//log.Trace(fmt.Sprintf("%x", p))
108111

109112
n, err = e.buf.Write(p)
110113
if err != nil {
@@ -133,6 +136,9 @@ func (e Encoder) Write(p []byte) (n int, err error) {
133136
func (e Encoder) flush() error {
134137
length := e.buf.Len()
135138
if length > 0 {
139+
if length == 23 {
140+
length = 24
141+
}
136142
if err := binary.Write(e.w, binary.BigEndian, uint16(length)); err != nil {
137143
return errors.Wrap(err, "An error occured writing length bytes during flush")
138144
}
@@ -291,7 +297,7 @@ func (e Encoder) encodeInt(val int64) error {
291297
return errors.New("Int too long to write: %d", val)
292298
}
293299
if err != nil {
294-
return errors.Wrap(err, "An error occured writing an int to bolt")
300+
return errors.Wrap(err, "An error occurred writing an int to bolt")
295301
}
296302
return err
297303
}
@@ -316,7 +322,7 @@ func (e Encoder) encodeString(val string) error {
316322
length := len(bytes)
317323
switch {
318324
case length <= 15:
319-
if _, err = e.Write([]byte{byte(TinyStringMarker + length)}); err != nil {
325+
if _, err = e.Write([]byte{byte(TinyStringMarker | length)}); err != nil {
320326
return err
321327
}
322328
_, err = e.Write(bytes)
@@ -354,7 +360,7 @@ func (e Encoder) encodeSlice(val []interface{}) error {
354360
length := len(val)
355361
switch {
356362
case length <= 15:
357-
if _, err := e.Write([]byte{byte(TinySliceMarker + length)}); err != nil {
363+
if _, err := e.Write([]byte{byte(TinySliceMarker | length)}); err != nil {
358364
return err
359365
}
360366
case length > 15 && length <= math.MaxUint8:
@@ -396,7 +402,7 @@ func (e Encoder) encodeMap(val map[string]interface{}) error {
396402
length := len(val)
397403
switch {
398404
case length <= 15:
399-
if _, err := e.Write([]byte{byte(TinyMapMarker + length)}); err != nil {
405+
if _, err := e.Write([]byte{byte(TinyMapMarker | length)}); err != nil {
400406
return err
401407
}
402408
case length > 15 && length <= math.MaxUint8:
@@ -443,7 +449,7 @@ func (e Encoder) encodeStructure(val structures.Structure) error {
443449
length := len(fields)
444450
switch {
445451
case length <= 15:
446-
if _, err := e.Write([]byte{byte(TinyStructMarker + length)}); err != nil {
452+
if _, err := e.Write([]byte{byte(TinyStructMarker | length)}); err != nil {
447453
return err
448454
}
449455
case length > 15 && length <= math.MaxUint8:

structures/messages/ack_failure.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package messages
22

33
const (
44
// AckFailureMessageSignature is the signature byte for the ACK_FAILURE message
5+
// ACK_FAILURE
6+
// binary [0000 1110]
57
AckFailureMessageSignature = 0x0E
68
)
79

structures/messages/discard.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package messages
2+
3+
const (
4+
// DiscardMessageSignature is the signature byte for the DISCARD message
5+
// DISCARD
6+
// binary [0010 1111]
7+
DiscardMessageSignature = 0x2f
8+
)
9+
10+
// DiscardMessage Represents an DISCARD_ALL message
11+
type DiscardMessage struct{}
12+
13+
// NewDiscardMessage Gets a new DiscardMessage struct
14+
func NewDiscardMessage() DiscardMessage {
15+
return DiscardMessage{}
16+
}
17+
18+
// Signature gets the signature byte for the struct
19+
func (i DiscardMessage) Signature() int {
20+
return DiscardMessageSignature
21+
}
22+
23+
// AllFields gets the fields to encode for the struct
24+
func (i DiscardMessage) AllFields() []interface{} {
25+
return []interface{}{}
26+
}

structures/messages/discard_all.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ package messages
22

33
const (
44
// DiscardAllMessageSignature is the signature byte for the DISCARD_ALL message
5+
// DISCARD_ALL
6+
// binary [0010 1111]
57
DiscardAllMessageSignature = 0x2F
68
)
79

structures/messages/doc.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
11
/*Package messages contains structs that represent the messages that get sent using the Bolt protocol*/
2+
// ref here -- https://github.com/neo4j/neo4j-javascript-driver/blob/4.0/src/internal/request-message.js
3+
// and here -- https://github.com/neo4j/neo4j-javascript-driver/blob/4.0/src/internal/connection-channel.js
24
package messages

structures/messages/failure.go

Lines changed: 0 additions & 36 deletions
This file was deleted.

structures/messages/goodbye.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package messages
2+
3+
const (
4+
// GoodbyeMessageSignature is the signature byte for the GOODBYE message
5+
// GOODBYE
6+
// binary [0000 00010]
7+
GoodbyeMessageSignature = 0x02
8+
)
9+
10+
type GoodbyeMessage struct{}
11+
12+
func NewGoodbyeMessage() GoodbyeMessage {
13+
return GoodbyeMessage{}
14+
}
15+
16+
func (g GoodbyeMessage) Signature() int {
17+
return GoodbyeMessageSignature
18+
}
19+
20+
func (g GoodbyeMessage) AllFields() []interface{} {
21+
return []interface{}{}
22+
}

structures/messages/hello.go

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
package messages
2+
3+
const (
4+
// HelloMessageSignature is the signature byte for the HELLO message
5+
// HELLO <metadata>
6+
// binary [0000 0001]
7+
HelloMessageSignature = 0x01
8+
)
9+
10+
type HelloMessage struct {
11+
metadata map[string]interface{}
12+
}
13+
14+
func NewHelloMessage(metadata map[string]interface{}) HelloMessage {
15+
return HelloMessage{
16+
metadata: metadata,
17+
}
18+
}
19+
20+
func (h HelloMessage) Signature() int {
21+
return HelloMessageSignature
22+
}
23+
24+
func (h HelloMessage) AllFields() []interface{} {
25+
return []interface{}{h.metadata}
26+
}

structures/messages/ignored.go

Lines changed: 0 additions & 24 deletions
This file was deleted.

0 commit comments

Comments
 (0)