Implement submit encode
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
||||
"bytes"
|
||||
"encoding/ascii85"
|
||||
"encoding/binary"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
type (
|
||||
@@ -65,33 +66,41 @@ type (
|
||||
)
|
||||
|
||||
func (p *SUBMIT_SM) Encode(buf *bytes.Buffer) error {
|
||||
if buf == nil {
|
||||
return fmt.Errorf("cannot encode into nil buffer")
|
||||
}
|
||||
p.header.Encode(buf)
|
||||
n := ascii85.Encode(buf.Bytes(), []byte(p.service_type))
|
||||
buf.Truncate(n)
|
||||
binary.Write(buf, binary.BigEndian, byte(len(p.service_type)))
|
||||
|
||||
// service_type string
|
||||
// source_addr_ton byte
|
||||
// source_addr_npi byte
|
||||
// source_addr string
|
||||
// dest_addr_ton byte
|
||||
// dest_addr_npi byte
|
||||
// destination_addr string
|
||||
// esm_class byte
|
||||
// protocol_id byte
|
||||
// priority_flag byte
|
||||
// schedule_delivery_time string
|
||||
// validity_period string
|
||||
// registered_delivery byte
|
||||
// replace_if_present byte
|
||||
// data_coding byte
|
||||
// sm_default_msg_id byte
|
||||
// sm_length byte
|
||||
// short_message string
|
||||
|
||||
binary.Write(buf, binary.BigEndian, p.source_addr_ton)
|
||||
binary.Write(buf, binary.BigEndian, p.source_addr_npi)
|
||||
n = ascii85.Encode(buf.Bytes(), []byte(p.source_addr))
|
||||
buf.Truncate(n)
|
||||
binary.Write(buf, binary.BigEndian, p.dest_addr_ton)
|
||||
binary.Write(buf, binary.BigEndian, p.dest_addr_npi)
|
||||
n = ascii85.Encode(buf.Bytes(), []byte(p.destination_addr))
|
||||
buf.Truncate(n)
|
||||
binary.Write(buf, binary.BigEndian, p.esm_class)
|
||||
binary.Write(buf, binary.BigEndian, p.protocol_id)
|
||||
binary.Write(buf, binary.BigEndian, p.priority_flag)
|
||||
n = ascii85.Encode(buf.Bytes(), []byte(p.schedule_delivery_time))
|
||||
buf.Truncate(n)
|
||||
n = ascii85.Encode(buf.Bytes(), []byte(p.validity_period))
|
||||
buf.Truncate(n)
|
||||
binary.Write(buf, binary.BigEndian, p.registered_delivery)
|
||||
binary.Write(buf, binary.BigEndian, p.replace_if_present)
|
||||
binary.Write(buf, binary.BigEndian, p.data_coding)
|
||||
binary.Write(buf, binary.BigEndian, p.sm_default_msg_id)
|
||||
binary.Write(buf, binary.BigEndian, p.sm_length)
|
||||
// TODO: Implement encodings bsed on p.data_coding
|
||||
n = ascii85.Encode(buf.Bytes(), []byte(p.short_message))
|
||||
buf.Truncate(n)
|
||||
return nil
|
||||
}
|
||||
func (p *SUBMIT_SM) Decode(buf *bytes.Buffer) error {
|
||||
if buf == nil {
|
||||
return fmt.Errorf("cannot decode nil buffer")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
func (p *SUBMIT_SM) Size() int {
|
||||
|
||||
Reference in New Issue
Block a user