Skip to content

Commit 4d73b1b

Browse files
committed
some util methods
1 parent 70b027a commit 4d73b1b

File tree

3 files changed

+36
-0
lines changed

3 files changed

+36
-0
lines changed

bsonutil.go

+8
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,14 @@ func SimpleBSONConvert(d interface{}) (SimpleBSON, error) {
1818
return SimpleBSON{int32(len(raw)), raw}, nil
1919
}
2020

21+
func SimpleBSONConvertOrPanic(d interface{}) SimpleBSON {
22+
raw, err := bson.Marshal(d)
23+
if err != nil {
24+
panic(err)
25+
}
26+
return SimpleBSON{int32(len(raw)), raw}
27+
}
28+
2129
func (sb SimpleBSON) ToBSOND() (bson.D, error) {
2230
t := bson.D{}
2331
err := bson.Unmarshal(sb.BSON, &t)

wire_insert.go

+15
Original file line numberDiff line numberDiff line change
@@ -61,3 +61,18 @@ func parseInsertMessage(header MessageHeader, buf []byte) (Message, error) {
6161

6262
return m, nil
6363
}
64+
65+
func NewInsertMessage(namespace string, docs ...SimpleBSON) *InsertMessage {
66+
im := &InsertMessage{}
67+
68+
im.header.RequestID = 17 // TODO
69+
im.header.ResponseTo = 0
70+
im.header.OpCode = OP_INSERT
71+
72+
im.Flags = 0
73+
im.Namespace = namespace
74+
75+
im.Docs = docs
76+
77+
return im
78+
}

wire_query.go

+13
Original file line numberDiff line numberDiff line change
@@ -73,3 +73,16 @@ func parseQueryMessage(header MessageHeader, buf []byte) (Message, error) {
7373

7474
return qm, nil
7575
}
76+
77+
func NewQueryMessage(ns string, flags int32, skip int32, toReturn int32, query SimpleBSON, project SimpleBSON) *QueryMessage {
78+
qm := &QueryMessage{}
79+
qm.header.RequestID = 17 // TODO
80+
qm.header.OpCode = OP_QUERY
81+
qm.Flags = flags
82+
qm.Namespace = ns
83+
qm.Skip = skip
84+
qm.NReturn = toReturn
85+
qm.Query = query
86+
qm.Project = project
87+
return qm
88+
}

0 commit comments

Comments
 (0)