1 : //==============================================================================
2 : // File <$/src/cpp/prod/protocol/iiop/iiop.cpp>
3 : // This file is part of YaOrb : Yet Another Object Request Broker,
4 : // Copyright (c) 2000-2003, Marc Alff.
5 : //
6 : // This program is free software; you can redistribute it and/or
7 : // modify it under the terms of the GNU General Public License
8 : // as published by the Free Software Foundation; either version 2
9 : // of the License, or (at your option) any later version.
10 : //
11 : // This program is distributed in the hope that it will be useful,
12 : // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 : // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 : // GNU General Public License for more details.
15 : //
16 : // You should have received a copy of the GNU General Public License
17 : // along with this program; if not, write to the Free Software
18 : // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19 : //
20 : //==============================================================================
21 :
22 : #include <yaorb/CORBA.h>
23 : #include <yaorb/YAORB.h>
24 :
25 : #include "src/cpp/prod/protocol/cdr/msg.h"
26 : #include "src/cpp/prod/protocol/iiop/iiop.h"
27 :
28 : //==============================================================================
29 : // Implementation of IIOP::ProfileBody
30 : //==============================================================================
31 :
32 4 : IIOP::ProfileBody::ProfileBody()
33 : : _iiop_version(),
34 : _host(""),
35 : _port(0),
36 : _object_key(),
37 4 : _components()
38 : {
39 0 : }
40 :
41 : IIOP::ProfileBody::ProfileBody(
42 0 : const IIOP::ProfileBody& pb)
43 : : _iiop_version(pb._iiop_version),
44 : _host(pb._host),
45 : _port(pb._port),
46 : _object_key(pb._object_key),
47 0 : _components(pb._components)
48 : {
49 0 : }
50 :
51 : IIOP::ProfileBody&
52 : IIOP::ProfileBody::operator=(
53 0 : const IIOP::ProfileBody& pb)
54 : {
55 0 : _iiop_version = pb._iiop_version ;
56 0 : _host = pb._host ;
57 0 : _port = pb._port ;
58 0 : _object_key = pb._object_key ;
59 : _components = pb._components ;
60 :
61 : return *this ;
62 : }
63 :
64 4 : IIOP::ProfileBody::~ProfileBody()
65 : {
66 0 : }
67 :
68 4 : void IIOP::ProfileBody::cdr(YAORB::CDR* cdrs)
69 : {
70 4 : cdrs->cdr_Octet(& _iiop_version._major) ;
71 4 : cdrs->cdr_Octet(& _iiop_version._minor) ;
72 :
73 4 : if (_iiop_version._major != 1)
74 : {
75 0 : ThrowMarshal(cdrs) ;
76 : }
77 :
78 4 : if ( (_iiop_version._minor != 0)
79 : && (_iiop_version._minor != 1)
80 : && (_iiop_version._minor != 2)
81 : )
82 : {
83 0 : ThrowMarshal(cdrs) ;
84 : }
85 :
86 4 : cdrs->cdr_String_var(& _host) ;
87 4 : cdrs->cdr_UShort(& _port) ;
88 4 : _object_key.cdr(cdrs) ;
89 :
90 4 : if (_iiop_version._minor != 0)
91 : {
92 : _components.cdr(cdrs) ;
93 : }
94 : else
95 : {
96 : _components.length(0) ;
97 : }
98 : }
99 :
|