]> rtime.felk.cvut.cz Git - orte.git/blob - orte/liborte/RTPSInfoSRC.c
Add shell.nix
[orte.git] / orte / liborte / RTPSInfoSRC.c
1 /*
2  *  $Id: RTPSInfoSRC.c,v 0.0.0.1      2003/09/10
3  *
4  *  DEBUG:  section 44                  message INFO SRC
5  *
6  *  -------------------------------------------------------------------
7  *                                ORTE
8  *                      Open Real-Time Ethernet
9  *
10  *                      Copyright (C) 2001-2006
11  *  Department of Control Engineering FEE CTU Prague, Czech Republic
12  *                      http://dce.felk.cvut.cz
13  *                      http://www.ocera.org
14  *
15  *  Author:              Petr Smolik    petr@smoliku.cz
16  *  Advisor:             Pavel Pisa
17  *  Project Responsible: Zdenek Hanzalek
18  *  --------------------------------------------------------------------
19  *
20  *  This program is free software; you can redistribute it and/or modify
21  *  it under the terms of the GNU General Public License as published by
22  *  the Free Software Foundation; either version 2 of the License, or
23  *  (at your option) any later version.
24  *
25  *  This program is distributed in the hope that it will be useful,
26  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
27  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
28  *  GNU General Public License for more details.
29  *
30  */
31
32 #include "orte_all.h"
33
34 /**********************************************************************************/
35 void
36 RTPSInfoSRC(CDR_Codec *cdrCodec, MessageInterpret *mi)
37 {
38   IPAddress          ipa;
39   ProtocolVersion    protocol;
40   VendorId           vid;
41   HostId             hid;
42   AppId              aid;
43   char               sIPAddress[MAX_STRING_IPADDRESS_LENGTH];
44   CDR_Endianness     data_endian;
45
46   /* appIPAddress */
47   CDR_get_ulong(cdrCodec, (CORBA_unsigned_long *)&ipa);
48
49   /* ProtocolVersion */
50   CDR_get_octet(cdrCodec, (CORBA_octet *)&protocol.major);
51   CDR_get_octet(cdrCodec, (CORBA_octet *)&protocol.minor);
52
53   /* Vendor Id */
54   CDR_get_octet(cdrCodec, (CORBA_octet *)&vid.major);
55   CDR_get_octet(cdrCodec, (CORBA_octet *)&vid.minor);
56
57   /* next data are sent in big endianing */
58   data_endian = cdrCodec->data_endian;
59   cdrCodec->data_endian = FLAG_BIG_ENDIAN;
60
61   /* HostId */
62   CDR_get_ulong(cdrCodec, (CORBA_unsigned_long *)&hid);
63
64   /* AppId */
65   CDR_get_ulong(cdrCodec, (CORBA_unsigned_long *)&aid);
66
67   cdrCodec->data_endian = data_endian;
68
69   debug(44, 3) ("  RTPSInfoSRC: \n");
70   debug(44, 4) ("    appIPAddress:%s\n", IPAddressToString(ipa, sIPAddress));
71   debug(44, 4) ("    pv:%lu,%lu vid:%lu,%lu hid:0x%x aid:0x%x\n",
72                 protocol.major, protocol.minor, vid.major, vid.minor, hid, aid);
73
74   mi->sourceHostId = hid;
75   mi->sourceAppId = aid;
76   mi->sourceVersion = protocol;
77   mi->sourceVendorId = vid;
78   mi->unicastReplyIPAddress = ipa;
79   mi->unicastReplyPort = PORT_INVALID;
80   mi->multicastReplyIPAddress = IPADDRESS_INVALID;
81   mi->multicastReplyPort = PORT_INVALID;
82   mi->haveTimestamp = ORTE_FALSE;
83 }