Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
client
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Deploy
Releases
Package registry
Container Registry
Model registry
Operate
Terraform modules
Analyze
Contributor analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
elixxir
client
Commits
e38b41d4
Commit
e38b41d4
authored
2 years ago
by
Jonah Husson
Browse files
Options
Downloads
Patches
Plain Diff
More fixes from MR
parent
c5d813a5
No related branches found
No related tags found
2 merge requests
!510
Release
,
!228
New bindings for api2.0
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
bindings/fileTransfer.go
+10
-29
10 additions, 29 deletions
bindings/fileTransfer.go
bindings/restlikeSingle.go
+7
-4
7 additions, 4 deletions
bindings/restlikeSingle.go
bindings/single.go
+28
-18
28 additions, 18 deletions
bindings/single.go
with
45 additions
and
51 deletions
bindings/fileTransfer.go
+
10
−
29
View file @
e38b41d4
...
@@ -35,7 +35,7 @@ type ReceivedFile struct {
...
@@ -35,7 +35,7 @@ type ReceivedFile struct {
Preview
[]
byte
Preview
[]
byte
Name
string
Name
string
Type
string
Type
string
Size
u
int
32
Size
int
}
}
// FileSend is a public struct which represents a file to be transferred
// FileSend is a public struct which represents a file to be transferred
...
@@ -61,8 +61,8 @@ type FileSend struct {
...
@@ -61,8 +61,8 @@ type FileSend struct {
// }
// }
type
Progress
struct
{
type
Progress
struct
{
Completed
bool
Completed
bool
Transmitted
u
int
16
Transmitted
int
Total
u
int
16
Total
int
Err
error
Err
error
}
}
...
@@ -88,33 +88,14 @@ type FileTransferReceiveProgressCallback interface {
...
@@ -88,33 +88,14 @@ type FileTransferReceiveProgressCallback interface {
// InitFileTransfer creates a bindings-level File Transfer manager
// InitFileTransfer creates a bindings-level File Transfer manager
// Accepts client ID, ReceiveFileCallback and a ReporterFunc
// Accepts client ID, ReceiveFileCallback and a ReporterFunc
func
InitFileTransfer
(
clientID
,
e2eID
int
,
cb
ReceiveFileCallback
)
(
*
FileTransfer
,
error
)
{
func
InitFileTransfer
(
e2eID
int
)
(
*
FileTransfer
,
error
)
{
// Get bindings client from singleton
// Get bindings client from singleton
//c, err := cmixTrackerSingleton.get(clientID)
//if err != nil {
// return nil, err
//}
e2eCl
,
err
:=
e2eTrackerSingleton
.
get
(
e2eID
)
e2eCl
,
err
:=
e2eTrackerSingleton
.
get
(
e2eID
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
// Create the callback to wrap the ReceiveFileCallback
//rcb := func(tid *ftCrypto.TransferID, fileName, fileType string,
// sender *id.ID, size uint32, preview []byte) {
// f := &ReceivedFile{
// TransferID: tid.Bytes(),
// SenderID: sender.Marshal(),
// Preview: preview,
// Name: fileName,
// Type: fileType,
// Size: size,
// }
// cb.Callback(json.Marshal(f))
//}
// Client info
// Client info
e2eCl
.
api
.
GetTransmissionIdentity
()
myID
:=
e2eCl
.
api
.
GetTransmissionIdentity
()
.
ID
myID
:=
e2eCl
.
api
.
GetTransmissionIdentity
()
.
ID
rng
:=
e2eCl
.
api
.
GetRng
()
rng
:=
e2eCl
.
api
.
GetRng
()
...
@@ -149,8 +130,8 @@ func (f *FileTransfer) Send(payload, recipientID []byte, retry float32,
...
@@ -149,8 +130,8 @@ func (f *FileTransfer) Send(payload, recipientID []byte, retry float32,
st
fileTransfer
.
SentTransfer
,
t
fileTransfer
.
FilePartTracker
,
err
error
)
{
st
fileTransfer
.
SentTransfer
,
t
fileTransfer
.
FilePartTracker
,
err
error
)
{
prog
:=
&
Progress
{
prog
:=
&
Progress
{
Completed
:
completed
,
Completed
:
completed
,
Transmitted
:
arrived
,
Transmitted
:
int
(
arrived
)
,
Total
:
total
,
Total
:
int
(
total
)
,
Err
:
err
,
Err
:
err
,
}
}
pm
,
err
:=
json
.
Marshal
(
prog
)
pm
,
err
:=
json
.
Marshal
(
prog
)
...
@@ -218,8 +199,8 @@ func (f *FileTransfer) RegisterSentProgressCallback(tidBytes []byte,
...
@@ -218,8 +199,8 @@ func (f *FileTransfer) RegisterSentProgressCallback(tidBytes []byte,
st
fileTransfer
.
SentTransfer
,
t
fileTransfer
.
FilePartTracker
,
err
error
)
{
st
fileTransfer
.
SentTransfer
,
t
fileTransfer
.
FilePartTracker
,
err
error
)
{
prog
:=
&
Progress
{
prog
:=
&
Progress
{
Completed
:
completed
,
Completed
:
completed
,
Transmitted
:
arrived
,
Transmitted
:
int
(
arrived
)
,
Total
:
total
,
Total
:
int
(
total
)
,
Err
:
err
,
Err
:
err
,
}
}
pm
,
err
:=
json
.
Marshal
(
prog
)
pm
,
err
:=
json
.
Marshal
(
prog
)
...
@@ -239,8 +220,8 @@ func (f *FileTransfer) RegisterReceivedProgressCallback(tidBytes []byte, callbac
...
@@ -239,8 +220,8 @@ func (f *FileTransfer) RegisterReceivedProgressCallback(tidBytes []byte, callbac
rt
fileTransfer
.
ReceivedTransfer
,
t
fileTransfer
.
FilePartTracker
,
err
error
)
{
rt
fileTransfer
.
ReceivedTransfer
,
t
fileTransfer
.
FilePartTracker
,
err
error
)
{
prog
:=
&
Progress
{
prog
:=
&
Progress
{
Completed
:
completed
,
Completed
:
completed
,
Transmitted
:
received
,
Transmitted
:
int
(
received
)
,
Total
:
total
,
Total
:
int
(
total
)
,
Err
:
err
,
Err
:
err
,
}
}
pm
,
err
:=
json
.
Marshal
(
prog
)
pm
,
err
:=
json
.
Marshal
(
prog
)
...
...
This diff is collapsed.
Click to expand it.
bindings/restlikeSingle.go
+
7
−
4
View file @
e38b41d4
...
@@ -14,11 +14,14 @@ type RestlikeCallback interface {
...
@@ -14,11 +14,14 @@ type RestlikeCallback interface {
Callback
([]
byte
,
error
)
Callback
([]
byte
,
error
)
}
}
type
RequestParams
struct
{
}
// RequestRestLike sends a restlike request to a given contact
// RequestRestLike sends a restlike request to a given contact
// Accepts marshalled contact object as recipient, byte slice payload & headers, method enum and a URI
// Accepts marshalled contact object as recipient, byte slice payload & headers, method enum and a URI
// Returns json marshalled restlike.Message & error
// Returns json marshalled restlike.Message & error
func
RequestRestLike
(
client
ID
int
,
recipient
,
request
[]
byte
)
([]
byte
,
error
)
{
func
RequestRestLike
(
e2e
ID
int
,
recipient
,
request
[]
byte
)
([]
byte
,
error
)
{
c
,
err
:=
client
TrackerSingleton
.
get
(
client
ID
)
c
,
err
:=
e2e
TrackerSingleton
.
get
(
e2e
ID
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
...
@@ -50,8 +53,8 @@ func RequestRestLike(clientID int, recipient, request []byte) ([]byte, error) {
...
@@ -50,8 +53,8 @@ func RequestRestLike(clientID int, recipient, request []byte) ([]byte, error) {
// AsyncRequestRestLike sends an asynchronous restlike request to a given contact
// AsyncRequestRestLike sends an asynchronous restlike request to a given contact
// Accepts marshalled contact object as recipient, byte slice payload & headers, method enum, URI, and a RestlikeCallback
// Accepts marshalled contact object as recipient, byte slice payload & headers, method enum, URI, and a RestlikeCallback
// Returns an error, and the RestlikeCallback will be called with the results of json marshalling the response when received
// Returns an error, and the RestlikeCallback will be called with the results of json marshalling the response when received
func
AsyncRequestRestLike
(
client
ID
int
,
recipient
,
request
[]
byte
,
cb
RestlikeCallback
)
error
{
func
AsyncRequestRestLike
(
e2e
ID
int
,
recipient
,
request
[]
byte
,
cb
RestlikeCallback
)
error
{
c
,
err
:=
client
TrackerSingleton
.
get
(
client
ID
)
c
,
err
:=
e2e
TrackerSingleton
.
get
(
e2e
ID
)
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
...
...
This diff is collapsed.
Click to expand it.
bindings/single.go
+
28
−
18
View file @
e38b41d4
...
@@ -13,8 +13,8 @@ import (
...
@@ -13,8 +13,8 @@ import (
// TransmitSingleUse accepts a marshalled recipient contact object, tag, payload, SingleUseResponse callback func & a
// TransmitSingleUse accepts a marshalled recipient contact object, tag, payload, SingleUseResponse callback func & a
// Client. Transmits payload to recipient via single use
// Client. Transmits payload to recipient via single use
func
TransmitSingleUse
(
client
ID
int
,
recipient
[]
byte
,
tag
string
,
payload
[]
byte
,
responseCB
SingleUseResponse
)
([]
byte
,
error
)
{
func
TransmitSingleUse
(
e2e
ID
int
,
recipient
[]
byte
,
tag
string
,
payload
[]
byte
,
responseCB
SingleUseResponse
)
([]
byte
,
error
)
{
c
l
,
err
:=
client
TrackerSingleton
.
get
(
client
ID
)
e2eC
l
,
err
:=
e2e
TrackerSingleton
.
get
(
e2e
ID
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
...
@@ -26,27 +26,32 @@ func TransmitSingleUse(clientID int, recipient []byte, tag string, payload []byt
...
@@ -26,27 +26,32 @@ func TransmitSingleUse(clientID int, recipient []byte, tag string, payload []byt
rcb
:=
&
singleUseResponse
{
response
:
responseCB
}
rcb
:=
&
singleUseResponse
{
response
:
responseCB
}
rids
,
eid
,
err
:=
single
.
TransmitRequest
(
recipientContact
,
tag
,
payload
,
rcb
,
single
.
GetDefaultRequestParams
(),
c
l
.
api
.
GetCmix
(),
c
l
.
api
.
GetRng
()
.
GetStream
(),
c
l
.
api
.
GetStorage
()
.
GetE2EGroup
())
rids
,
eid
,
err
:=
single
.
TransmitRequest
(
recipientContact
,
tag
,
payload
,
rcb
,
single
.
GetDefaultRequestParams
(),
e2eC
l
.
api
.
GetCmix
(),
e2eC
l
.
api
.
GetRng
()
.
GetStream
(),
e2eC
l
.
api
.
GetStorage
()
.
GetE2EGroup
())
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
sr
:=
SingleUseSendReport
{
sr
:=
SingleUseSendReport
{
EphID
:
eid
,
EphID
:
eid
.
EphId
.
Int64
(),
RoundsList
:
makeRoundsList
(
rids
),
ReceptionID
:
eid
.
Source
.
Marshal
(),
RoundsList
:
makeRoundsList
(
rids
),
}
}
return
json
.
Marshal
(
sr
)
return
json
.
Marshal
(
sr
)
}
}
// Listen starts a single use listener on a given tag using the passed in client and SingleUseCallback func
// Listen starts a single use listener on a given tag using the passed in client and SingleUseCallback func
func
Listen
(
client
ID
int
,
tag
string
,
cb
SingleUseCallback
)
(
StopFunc
,
error
)
{
func
Listen
(
e2e
ID
int
,
tag
string
,
cb
SingleUseCallback
)
(
StopFunc
,
error
)
{
c
l
,
err
:=
client
TrackerSingleton
.
get
(
client
ID
)
e2eC
l
,
err
:=
e2e
TrackerSingleton
.
get
(
e2e
ID
)
if
err
!=
nil
{
if
err
!=
nil
{
return
nil
,
err
return
nil
,
err
}
}
listener
:=
singleUseListener
{
scb
:
cb
}
listener
:=
singleUseListener
{
scb
:
cb
}
l
:=
single
.
Listen
(
tag
,
cl
.
api
.
GetUser
()
.
ReceptionID
,
cl
.
api
.
GetUser
()
.
E2eDhPrivateKey
,
cl
.
api
.
GetCmix
(),
cl
.
api
.
GetStorage
()
.
GetE2EGroup
(),
listener
)
dhpk
,
err
:=
e2eCl
.
api
.
GetReceptionIdentity
()
.
GetDHKeyPrivate
()
if
err
!=
nil
{
return
nil
,
err
}
l
:=
single
.
Listen
(
tag
,
e2eCl
.
api
.
GetReceptionIdentity
()
.
ID
,
dhpk
,
e2eCl
.
api
.
GetCmix
(),
e2eCl
.
api
.
GetStorage
()
.
GetE2EGroup
(),
listener
)
return
l
.
Stop
,
nil
return
l
.
Stop
,
nil
}
}
...
@@ -60,7 +65,8 @@ func Listen(clientID int, tag string, cb SingleUseCallback) (StopFunc, error) {
...
@@ -60,7 +65,8 @@ func Listen(clientID int, tag string, cb SingleUseCallback) (StopFunc, error) {
// "Source":"emV6aW1hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD"}}
// "Source":"emV6aW1hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD"}}
type
SingleUseSendReport
struct
{
type
SingleUseSendReport
struct
{
RoundsList
RoundsList
EphID
receptionID
.
EphemeralIdentity
ReceptionID
[]
byte
EphID
int64
}
}
// SingleUseResponseReport is the bindings struct used to represent information passed
// SingleUseResponseReport is the bindings struct used to represent information passed
...
@@ -75,7 +81,8 @@ type SingleUseSendReport struct {
...
@@ -75,7 +81,8 @@ type SingleUseSendReport struct {
type
SingleUseResponseReport
struct
{
type
SingleUseResponseReport
struct
{
RoundsList
RoundsList
Payload
[]
byte
Payload
[]
byte
ReceptionID
receptionID
.
EphemeralIdentity
ReceptionID
[]
byte
EphID
int64
Err
error
Err
error
}
}
...
@@ -90,9 +97,10 @@ type SingleUseResponseReport struct {
...
@@ -90,9 +97,10 @@ type SingleUseResponseReport struct {
// "Source":"emV6aW1hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD"}}
// "Source":"emV6aW1hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD"}}
type
SingleUseCallbackReport
struct
{
type
SingleUseCallbackReport
struct
{
RoundsList
RoundsList
Payload
[]
byte
Payload
[]
byte
Partner
*
id
.
ID
Partner
*
id
.
ID
EphID
receptionID
.
EphemeralIdentity
EphID
int64
ReceptionID
[]
byte
}
}
// Function types
// Function types
...
@@ -132,10 +140,11 @@ func (sl singleUseListener) Callback(req *single.Request, eid receptionID.Epheme
...
@@ -132,10 +140,11 @@ func (sl singleUseListener) Callback(req *single.Request, eid receptionID.Epheme
// Todo: what other info from req needs to get to bindings
// Todo: what other info from req needs to get to bindings
scr
:=
SingleUseCallbackReport
{
scr
:=
SingleUseCallbackReport
{
Payload
:
req
.
GetPayload
(),
Payload
:
req
.
GetPayload
(),
RoundsList
:
makeRoundsList
(
rids
),
RoundsList
:
makeRoundsList
(
rids
),
Partner
:
req
.
GetPartner
(),
Partner
:
req
.
GetPartner
(),
EphID
:
eid
,
EphID
:
eid
.
EphId
.
Int64
(),
ReceptionID
:
eid
.
Source
.
Marshal
(),
}
}
sl
.
scb
.
Callback
(
json
.
Marshal
(
scr
))
sl
.
scb
.
Callback
(
json
.
Marshal
(
scr
))
...
@@ -157,7 +166,8 @@ func (sr singleUseResponse) Callback(payload []byte, receptionID receptionID.Eph
...
@@ -157,7 +166,8 @@ func (sr singleUseResponse) Callback(payload []byte, receptionID receptionID.Eph
}
}
sendReport
:=
SingleUseResponseReport
{
sendReport
:=
SingleUseResponseReport
{
RoundsList
:
makeRoundsList
(
rids
),
RoundsList
:
makeRoundsList
(
rids
),
ReceptionID
:
receptionID
,
ReceptionID
:
receptionID
.
Source
.
Marshal
(),
EphID
:
receptionID
.
EphId
.
Int64
(),
Payload
:
payload
,
Payload
:
payload
,
Err
:
err
,
Err
:
err
,
}
}
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment