-
Notifications
You must be signed in to change notification settings - Fork 7
/
tibrvsend.py
97 lines (70 loc) · 2.19 KB
/
tibrvsend.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
##
# tibrvsend.py
# rewrite TIBRV example: tibrvsend.c
#
# LAST MODIFIED: V1.0 2016-12-22 ARIEN arien.chen@gmail.com
#
import sys
import getopt
from pytibrv.api import *
from pytibrv.status import *
from pytibrv.msg import *
from pytibrv.tport import *
def usage():
print('TIBRV Sender : tibrvsend.py')
print('')
print('tibrvsend.py [--service service] [--network network]')
print(' [--daemon daemon] <subject> <message>')
print()
sys.exit(1)
def get_params(argv):
try:
opts, args = getopt.getopt(argv, '', ['service=', 'network=', 'daemon='])
except getopt.GetoptError:
usage()
service = None
network = None
daemon = None
for opt, arg in opts:
if opt == '--service':
service = arg
elif opt == '--network':
network = arg
elif opt == '--daemon':
daemon = arg
else:
usage()
if len(args) != 2:
usage()
return service, network, daemon, args[0], args[1]
# MAIN PROGRAM
def main(argv):
progname = argv[0]
service, network, daemon, subj, msg_data = get_params(argv[1:])
err = tibrv_Open()
if err != TIBRV_OK:
print('{}: Failed to open TIB/RV: {}'.format('', progname, tibrvStatus_GetText(err)))
sys.exit(1)
err, tx = tibrvTransport_Create(service, network, daemon)
if err != TIBRV_OK:
print('{}: Failed to initialize transport: {}'.format('', progname, tibrvStatus_GetText(err)))
sys.exit(1)
tibrvTransport_SetDescription(tx, progname)
err, msg = tibrvMsg_Create()
if err != TIBRV_OK:
print('{}: Failed to create message: {}'.format('', progname, tibrvStatus_GetText(err)))
sys.exit(1)
err = tibrvMsg_UpdateString(msg, 'DATA', msg_data)
if err == TIBRV_OK:
err = tibrvMsg_SetSendSubject(msg, subj)
if err == TIBRV_OK:
err = tibrvTransport_Send(tx, msg)
if err != TIBRV_OK:
print('{}: {} in sending "{}" to "{}"'. format(progname, tibrvStatus_GetText(err), msg_data, subj))
tibrvMsg_Destroy(msg)
tibrvTransport_Destroy(tx)
tibrv_Close()
sys.exit(0)
return
if __name__ == "__main__":
main(sys.argv)