File: NormFileSendRecv.java

package info (click to toggle)
norm 1.5.9%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 9,664 kB
  • sloc: cpp: 123,494; xml: 7,536; tcl: 5,460; makefile: 3,441; python: 1,898; java: 1,750; ansic: 642; sh: 21; csh: 8
file content (103 lines) | stat: -rw-r--r-- 3,035 bytes parent folder | download | duplicates (4)
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
95
96
97
98
99
100
101
102
103
import mil.navy.nrl.norm.*;
import mil.navy.nrl.norm.enums.NormEventType;
import mil.navy.nrl.norm.enums.NormObjectType;

/**
 * The ... class ...
 * <p/>
 * Created by scmijt
 * Date: Feb 14, 2010
 * Time: 11:10:50 AM
 */
public class NormFileSendRecv extends Thread {
    NormInstance instance;
    NormSession session;
    String fileToSend;

    public NormFileSendRecv(String cacheDirectory, String fileToSend) throws Throwable {
        instance = new NormInstance();
        instance.setCacheDirectory(cacheDirectory);

        session = instance.createSession("224.1.2.3", 6003,
                NormNode.NORM_NODE_ANY);
        session.setLoopback(true);

        this.fileToSend=fileToSend;

        start();

        sendFile();
        
        session.destroySession();
        instance.destroyInstance();

    }

    public void run() {
        try {
            receive();
        } catch (Throwable throwable) {
            throwable.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }
    }

    public void receive() throws Throwable {
        session.startReceiver(1024 * 1024);
        NormEvent event;
        while ((event = instance.getNextEvent()) != null) {
            NormEventType eventType = event.getType();
            NormObject normObject = event.getObject();

            System.out.println("NORM: Received something !!!!");

            System.out.println(eventType);

            switch (eventType) {
                case NORM_RX_OBJECT_INFO:
                    byte[] info = normObject.getInfo();
                    String infoStr = new String(info, "US-ASCII");
                    System.out.println("Info: " + infoStr);
                    break;

                case NORM_RX_OBJECT_COMPLETED:
                    if (normObject.getType() == NormObjectType.NORM_OBJECT_FILE) {
                        NormFile normFile = (NormFile)normObject;
                        String filename = normFile.getName();

                        System.out.println("NormFileObject: " + filename);
                    }
                    break;
            }
        }

        session.stopReceiver();

    }

    public void sendFile()  throws Throwable {
        session.startSender(1, 1024 * 1024, 1400, (short)64, (short)16);

        // Enqueue some data
      //  byte buffer[] = "Hello to the other norm node!!!!!!".getBytes();
      //  session.dataEnqueue(buffer, 0, buffer.length);

        // Enqueue a file
        session.fileEnqueue(fileToSend);

        NormEvent event;
        while ((event = instance.getNextEvent()) != null) {
            NormEventType eventType = event.getType();
            System.out.println(eventType);
        }

        session.stopSender();
    }

    public static void main(String[] args) throws Throwable {
        if (args.length != 2) {
            System.err.println("Usage: NormFileSendRecv <rxCachePath> <sendFile>");
            return;
        }
        new NormFileSendRecv(args[0], args[1]);
    }
}