LTP GCOV extension - code coverage report
Current view: directory - src/cpp/prod/lib - sequence.cpp
Test: YAORB-0.2.info
Date: 2006-02-27 Instrumented lines: 947
Code covered: 82.3 % Executed lines: 779

       1                 : //==============================================================================
       2                 : // File <$/src/cpp/prod/lib/sequence.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                 : // Portability
      23                 : #include "yaorb/config.h"
      24                 : #include "src/cpp/prod/port/port_stdc.h"
      25                 : 
      26                 : #include <yaorb/CORBA.h>
      27                 : #include <yaorb/YAORB.h>
      28                 : 
      29                 : #include "src/cpp/prod/tool/DEVELOPMENT.h"
      30                 : #include "src/cpp/prod/tool/Assert.h"
      31                 : 
      32                 : 
      33                 : //=============================================================================
      34                 : // Implementation of CORBABooleanSeq
      35                 : //=============================================================================
      36                 : 
      37               1 : CORBABooleanSeq::CORBABooleanSeq()
      38                 :  : _max(0),
      39                 :    _length(0),
      40                 :    _data(NULL),
      41               1 :    _release(false)
      42                 : {
      43                 : }
      44                 : 
      45               1 : CORBABooleanSeq::CORBABooleanSeq(CORBA::ULong max)
      46                 :  : _max(max),
      47                 :    _length(max),
      48                 :    _data(NULL),
      49               1 :    _release(true)
      50                 : {
      51                 :    ASSERT(max != 0) ;
      52                 : 
      53               1 :    _data = new CORBA::Boolean[_max] ;
      54                 : }
      55                 : 
      56                 : CORBABooleanSeq::CORBABooleanSeq(
      57                 :    CORBA::ULong max,
      58                 :    CORBA::ULong length,
      59                 :    CORBA::Boolean* data,
      60               2 :    CORBA::Boolean release)
      61                 :  : _max(max),
      62                 :    _length(length),
      63                 :    _data(data),
      64               2 :    _release(release)
      65                 : {
      66                 :    ASSERT(length <= max) ;
      67                 :    ASSERT((data != NULL) || (! release)) ;
      68                 :    ASSERT((max != 0) || (! release)) ;
      69                 : }
      70                 : 
      71               2 : CORBABooleanSeq::CORBABooleanSeq(const CORBABooleanSeq& seq)
      72                 :  : _max(seq._max),
      73                 :    _length(seq._length),
      74                 :    _data(NULL),
      75               2 :    _release(false)
      76                 : {
      77               2 :    if (_max != 0)
      78                 :    {
      79               1 :       _data = new CORBA::Boolean[_max] ;
      80               1 :       _release = true ;
      81                 : 
      82                 :       memcpy(_data,
      83                 :              seq._data,
      84               1 :              _length * sizeof(CORBA::Boolean)) ;
      85                 :    }
      86                 : }
      87                 : 
      88               6 : CORBABooleanSeq::~CORBABooleanSeq()
      89                 : {
      90               6 :    if (_release)
      91                 :    {
      92                 :       ASSERT(_data != NULL) ;
      93               3 :       delete [] _data ;
      94                 :    }
      95               3 : }
      96                 : 
      97                 : CORBABooleanSeq&
      98               2 : CORBABooleanSeq::operator=(const CORBABooleanSeq& seq)
      99                 : {
     100               2 :    if (_max < seq._length)
     101                 :    {
     102               1 :       if (_release)
     103                 :       {
     104                 :          ASSERT(_data != NULL) ;
     105               0 :          delete [] _data ;
     106                 :       }
     107                 : 
     108               1 :       _max = seq._length ;
     109               1 :       _data = new CORBA::Boolean[_max] ;
     110               1 :       _release = true ;
     111                 :    }
     112                 : 
     113               2 :    _length = seq._length ;
     114                 : 
     115               2 :    if (_length != 0)
     116                 :    {
     117                 :       memcpy(_data,
     118                 :              seq._data,
     119               2 :              _length * sizeof(CORBA::Boolean)) ;
     120                 :    }
     121                 : 
     122                 :    return *this ;
     123                 : }
     124                 : 
     125                 : CORBA::ULong
     126              15 : CORBABooleanSeq::maximum() const
     127                 : {
     128                 :    return _max ;
     129                 : }
     130                 : 
     131                 : void
     132               2 : CORBABooleanSeq::length(CORBA::ULong len)
     133                 : {
     134               2 :    if (_max < len)
     135                 :    {
     136               1 :       CORBA::Boolean* new_data = new CORBA::Boolean[len] ;
     137                 : 
     138               1 :       if (_length != 0)
     139                 :       {
     140                 :          memcpy(new_data,
     141                 :                 _data,
     142               1 :                 _length * sizeof (CORBA::Boolean)) ;
     143                 :       }
     144                 : 
     145               1 :       if (_release)
     146                 :       {
     147               1 :          delete [] _data ;
     148                 :       }
     149                 : 
     150               1 :       _data = new_data ;
     151               1 :       _max = len ;
     152               1 :       _release = true ;
     153                 :    }
     154                 : 
     155               2 :    if (len > _length)
     156                 :    {
     157               2 :       _length = len ;
     158                 :    }
     159                 : }
     160                 : 
     161                 : CORBA::ULong
     162              15 : CORBABooleanSeq::length() const
     163                 : {
     164                 :    return _length ;
     165                 : }
     166                 : 
     167                 : CORBA::Boolean&
     168              83 : CORBABooleanSeq::operator[] (CORBA::ULong index)
     169                 : {
     170                 :    ASSERT(index < _length) ;
     171                 :    return _data[index] ;
     172                 : }
     173                 : 
     174                 : const CORBA::Boolean&
     175               0 : CORBABooleanSeq::operator[] (CORBA::ULong index) const
     176                 : {
     177                 :    ASSERT(index < _length) ;
     178                 :    return _data[index] ;
     179                 : }
     180                 : 
     181                 : CORBA::Boolean
     182              15 : CORBABooleanSeq::release() const
     183                 : {
     184                 :    return _release ;
     185                 : }
     186                 : 
     187                 : void
     188                 : CORBABooleanSeq::replace(
     189                 :    CORBA::ULong max,
     190                 :    CORBA::ULong length,
     191                 :    CORBA::Boolean* data,
     192               3 :    CORBA::Boolean release)
     193                 : {
     194                 :    ASSERT(length <= max) ;
     195                 :    ASSERT((data != NULL) || (! release)) ;
     196                 :    ASSERT((max != 0) || (! release)) ;
     197                 : 
     198               3 :    if (_release)
     199                 :    {
     200               0 :       delete [] _data ;
     201                 :    }
     202                 : 
     203               3 :    _max = max ;
     204               3 :    _length = length ;
     205               3 :    _data = data ;
     206               3 :    _release = release ;
     207                 : }
     208                 : 
     209                 : CORBA::Boolean*
     210              16 : CORBABooleanSeq::get_buffer(CORBA::Boolean orphan)
     211                 : {
     212              16 :    CORBA::Boolean* buf = _data ;
     213                 : 
     214              16 :    if (orphan)
     215                 :    {
     216               1 :       _max = 0 ;
     217               1 :       _length = 0 ;
     218               1 :       _data = NULL ;
     219               1 :       _release = false ;
     220                 :    }
     221                 : 
     222                 :    return buf ;
     223                 : }
     224                 : 
     225                 : const CORBA::Boolean*
     226              15 : CORBABooleanSeq::get_buffer(void) const
     227                 : {
     228                 :    return _data ;
     229                 : }
     230                 : 
     231                 : void
     232               0 : CORBABooleanSeq::cdr(YAORB::CDR* cdrs)
     233                 : {
     234                 :    ASSERT(cdrs != NULL) ;
     235                 : 
     236               0 :    cdrs->cdr_ULong(& _length) ;
     237                 : 
     238               0 :    if (_length > _max)
     239                 :    {
     240               0 :       if (_release)
     241                 :       {
     242               0 :          delete [] _data ;
     243                 :       }
     244                 : 
     245               0 :       _max = _length ;
     246               0 :       _data = new CORBA::Boolean[_max] ;
     247               0 :       _release = true ;
     248                 :    }
     249                 : 
     250               0 :    cdrs->cdr_BooleanArray(_data, _length) ;
     251                 : }
     252                 : 
     253                 : //=============================================================================
     254                 : // Implementation of CORBACharSeq
     255                 : //=============================================================================
     256                 : 
     257               1 : CORBACharSeq::CORBACharSeq()
     258                 :  : _max(0),
     259                 :    _length(0),
     260                 :    _data(NULL),
     261               1 :    _release(false)
     262                 : {
     263                 : }
     264                 : 
     265               1 : CORBACharSeq::CORBACharSeq(CORBA::ULong max)
     266                 :  : _max(max),
     267                 :    _length(max),
     268                 :    _data(NULL),
     269               1 :    _release(true)
     270                 : {
     271                 :    ASSERT(max != 0) ;
     272                 : 
     273               1 :    _data = new CORBA::Char[_max] ;
     274                 : }
     275                 : 
     276                 : CORBACharSeq::CORBACharSeq(
     277                 :    CORBA::ULong max,
     278                 :    CORBA::ULong length,
     279                 :    CORBA::Char* data,
     280               2 :    CORBA::Boolean release)
     281                 :  : _max(max),
     282                 :    _length(length),
     283                 :    _data(data),
     284               2 :    _release(release)
     285                 : {
     286                 :    ASSERT(length <= max) ;
     287                 :    ASSERT((data != NULL) || (! release)) ;
     288                 :    ASSERT((max != 0) || (! release)) ;
     289                 : }
     290                 : 
     291               2 : CORBACharSeq::CORBACharSeq(const CORBACharSeq& seq)
     292                 :  : _max(seq._max),
     293                 :    _length(seq._length),
     294                 :    _data(NULL),
     295               2 :    _release(false)
     296                 : {
     297               2 :    if (_max != 0)
     298                 :    {
     299               1 :       _data = new CORBA::Char[_max] ;
     300               1 :       _release = true ;
     301                 : 
     302                 :       memcpy(_data,
     303                 :              seq._data,
     304               1 :              _length * sizeof(CORBA::Char)) ;
     305                 :    }
     306                 : }
     307                 : 
     308               6 : CORBACharSeq::~CORBACharSeq()
     309                 : {
     310               6 :    if (_release)
     311                 :    {
     312                 :       ASSERT(_data != NULL) ;
     313               3 :       delete [] _data ;
     314                 :    }
     315               3 : }
     316                 : 
     317                 : CORBACharSeq&
     318               2 : CORBACharSeq::operator=(const CORBACharSeq& seq)
     319                 : {
     320               2 :    if (_max < seq._length)
     321                 :    {
     322               1 :       if (_release)
     323                 :       {
     324                 :          ASSERT(_data != NULL) ;
     325               0 :          delete [] _data ;
     326                 :       }
     327                 : 
     328               1 :       _max = seq._length ;
     329               1 :       _data = new CORBA::Char[_max] ;
     330               1 :       _release = true ;
     331                 :    }
     332                 : 
     333               2 :    _length = seq._length ;
     334                 : 
     335               2 :    if (_length != 0)
     336                 :    {
     337                 :       memcpy(_data,
     338                 :              seq._data,
     339               2 :              _length * sizeof(CORBA::Char)) ;
     340                 :    }
     341                 : 
     342                 :    return *this ;
     343                 : }
     344                 : 
     345                 : CORBA::ULong
     346              15 : CORBACharSeq::maximum() const
     347                 : {
     348                 :    return _max ;
     349                 : }
     350                 : 
     351                 : void
     352               2 : CORBACharSeq::length(CORBA::ULong len)
     353                 : {
     354               2 :    if (_max < len)
     355                 :    {
     356               1 :       CORBA::Char* new_data = new CORBA::Char[len] ;
     357                 : 
     358               1 :       if (_length != 0)
     359                 :       {
     360                 :          memcpy(new_data,
     361                 :                 _data,
     362               1 :                 _length * sizeof (CORBA::Char)) ;
     363                 :       }
     364                 : 
     365               1 :       if (_release)
     366                 :       {
     367               1 :          delete [] _data ;
     368                 :       }
     369                 : 
     370               1 :       _data = new_data ;
     371               1 :       _max = len ;
     372               1 :       _release = true ;
     373                 :    }
     374                 : 
     375               2 :    if (len > _length)
     376                 :    {
     377               2 :       _length = len ;
     378                 :    }
     379                 : }
     380                 : 
     381                 : CORBA::ULong
     382              15 : CORBACharSeq::length() const
     383                 : {
     384                 :    return _length ;
     385                 : }
     386                 : 
     387                 : CORBA::Char&
     388              83 : CORBACharSeq::operator[] (CORBA::ULong index)
     389                 : {
     390                 :    ASSERT(index < _length) ;
     391                 :    return _data[index] ;
     392                 : }
     393                 : 
     394                 : const CORBA::Char&
     395               0 : CORBACharSeq::operator[] (CORBA::ULong index) const
     396                 : {
     397                 :    ASSERT(index < _length) ;
     398                 :    return _data[index] ;
     399                 : }
     400                 : 
     401                 : CORBA::Boolean
     402              15 : CORBACharSeq::release() const
     403                 : {
     404                 :    return _release ;
     405                 : }
     406                 : 
     407                 : void
     408                 : CORBACharSeq::replace(
     409                 :    CORBA::ULong max,
     410                 :    CORBA::ULong length,
     411                 :    CORBA::Char* data,
     412               3 :    CORBA::Boolean release)
     413                 : {
     414                 :    ASSERT(length <= max) ;
     415                 :    ASSERT((data != NULL) || (! release)) ;
     416                 :    ASSERT((max != 0) || (! release)) ;
     417                 : 
     418               3 :    if (_release)
     419                 :    {
     420               0 :       delete [] _data ;
     421                 :    }
     422                 : 
     423               3 :    _max = max ;
     424               3 :    _length = length ;
     425               3 :    _data = data ;
     426               3 :    _release = release ;
     427                 : }
     428                 : 
     429                 : CORBA::Char*
     430              16 : CORBACharSeq::get_buffer(CORBA::Boolean orphan)
     431                 : {
     432              16 :    CORBA::Char* buf = _data ;
     433                 : 
     434              16 :    if (orphan)
     435                 :    {
     436               1 :       _max = 0 ;
     437               1 :       _length = 0 ;
     438               1 :       _data = NULL ;
     439               1 :       _release = false ;
     440                 :    }
     441                 : 
     442                 :    return buf ;
     443                 : }
     444                 : 
     445                 : const CORBA::Char*
     446              15 : CORBACharSeq::get_buffer(void) const
     447                 : {
     448                 :    return _data ;
     449                 : }
     450                 : 
     451                 : void
     452               0 : CORBACharSeq::cdr(YAORB::CDR* cdrs)
     453                 : {
     454                 :    ASSERT(cdrs != NULL) ;
     455                 : 
     456               0 :    cdrs->cdr_ULong(& _length) ;
     457                 : 
     458               0 :    if (_length > _max)
     459                 :    {
     460               0 :       if (_release)
     461                 :       {
     462               0 :          delete [] _data ;
     463                 :       }
     464                 : 
     465               0 :       _max = _length ;
     466               0 :       _data = new CORBA::Char[_max] ;
     467               0 :       _release = true ;
     468                 :    }
     469                 : 
     470               0 :    cdrs->cdr_CharArray(_data, _length) ;
     471                 : }
     472                 : 
     473                 : //=============================================================================
     474                 : // Implementation of CORBAWCharSeq
     475                 : //=============================================================================
     476                 : 
     477               1 : CORBAWCharSeq::CORBAWCharSeq()
     478                 :  : _max(0),
     479                 :    _length(0),
     480                 :    _data(NULL),
     481               1 :    _release(false)
     482                 : {
     483                 : }
     484                 : 
     485               1 : CORBAWCharSeq::CORBAWCharSeq(CORBA::ULong max)
     486                 :  : _max(max),
     487                 :    _length(max),
     488                 :    _data(NULL),
     489               1 :    _release(true)
     490                 : {
     491                 :    ASSERT(max != 0) ;
     492                 : 
     493               1 :    _data = new CORBA::WChar[_max] ;
     494                 : }
     495                 : 
     496                 : CORBAWCharSeq::CORBAWCharSeq(
     497                 :    CORBA::ULong max,
     498                 :    CORBA::ULong length,
     499                 :    CORBA::WChar* data,
     500               2 :    CORBA::Boolean release)
     501                 :  : _max(max),
     502                 :    _length(length),
     503                 :    _data(data),
     504               2 :    _release(release)
     505                 : {
     506                 :    ASSERT(length <= max) ;
     507                 :    ASSERT((data != NULL) || (! release)) ;
     508                 :    ASSERT((max != 0) || (! release)) ;
     509                 : }
     510                 : 
     511               2 : CORBAWCharSeq::CORBAWCharSeq(const CORBAWCharSeq& seq)
     512                 :  : _max(seq._max),
     513                 :    _length(seq._length),
     514                 :    _data(NULL),
     515               2 :    _release(false)
     516                 : {
     517               2 :    if (_max != 0)
     518                 :    {
     519               1 :       _data = new CORBA::WChar[_max] ;
     520               1 :       _release = true ;
     521                 : 
     522                 :       memcpy(_data,
     523                 :              seq._data,
     524               1 :              _length * sizeof(CORBA::WChar)) ;
     525                 :    }
     526                 : }
     527                 : 
     528               6 : CORBAWCharSeq::~CORBAWCharSeq()
     529                 : {
     530               6 :    if (_release)
     531                 :    {
     532                 :       ASSERT(_data != NULL) ;
     533               3 :       delete [] _data ;
     534                 :    }
     535               3 : }
     536                 : 
     537                 : CORBAWCharSeq&
     538               2 : CORBAWCharSeq::operator=(const CORBAWCharSeq& seq)
     539                 : {
     540               2 :    if (_max < seq._length)
     541                 :    {
     542               1 :       if (_release)
     543                 :       {
     544                 :          ASSERT(_data != NULL) ;
     545               0 :          delete [] _data ;
     546                 :       }
     547                 : 
     548               1 :       _max = seq._length ;
     549               1 :       _data = new CORBA::WChar[_max] ;
     550               1 :       _release = true ;
     551                 :    }
     552                 : 
     553               2 :    _length = seq._length ;
     554                 : 
     555               2 :    if (_length != 0)
     556                 :    {
     557                 :       memcpy(_data,
     558                 :              seq._data,
     559               2 :              _length * sizeof(CORBA::WChar)) ;
     560                 :    }
     561                 : 
     562                 :    return *this ;
     563                 : }
     564                 : 
     565                 : CORBA::ULong
     566              15 : CORBAWCharSeq::maximum() const
     567                 : {
     568                 :    return _max ;
     569                 : }
     570                 : 
     571                 : void
     572               2 : CORBAWCharSeq::length(CORBA::ULong len)
     573                 : {
     574               2 :    if (_max < len)
     575                 :    {
     576               1 :       CORBA::WChar* new_data = new CORBA::WChar[len] ;
     577                 : 
     578               1 :       if (_length != 0)
     579                 :       {
     580                 :          memcpy(new_data,
     581                 :                 _data,
     582               1 :                 _length * sizeof (CORBA::WChar)) ;
     583                 :       }
     584                 : 
     585               1 :       if (_release)
     586                 :       {
     587               1 :          delete [] _data ;
     588                 :       }
     589                 : 
     590               1 :       _data = new_data ;
     591               1 :       _max = len ;
     592               1 :       _release = true ;
     593                 :    }
     594                 : 
     595               2 :    if (len > _length)
     596                 :    {
     597               2 :       _length = len ;
     598                 :    }
     599                 : }
     600                 : 
     601                 : CORBA::ULong
     602              15 : CORBAWCharSeq::length() const
     603                 : {
     604                 :    return _length ;
     605                 : }
     606                 : 
     607                 : CORBA::WChar&
     608              83 : CORBAWCharSeq::operator[] (CORBA::ULong index)
     609                 : {
     610                 :    ASSERT(index < _length) ;
     611                 :    return _data[index] ;
     612                 : }
     613                 : 
     614                 : const CORBA::WChar&
     615               0 : CORBAWCharSeq::operator[] (CORBA::ULong index) const
     616                 : {
     617                 :    ASSERT(index < _length) ;
     618                 :    return _data[index] ;
     619                 : }
     620                 : 
     621                 : CORBA::Boolean
     622              15 : CORBAWCharSeq::release() const
     623                 : {
     624                 :    return _release ;
     625                 : }
     626                 : 
     627                 : void
     628                 : CORBAWCharSeq::replace(
     629                 :    CORBA::ULong max,
     630                 :    CORBA::ULong length,
     631                 :    CORBA::WChar* data,
     632               3 :    CORBA::Boolean release)
     633                 : {
     634                 :    ASSERT(length <= max) ;
     635                 :    ASSERT((data != NULL) || (! release)) ;
     636                 :    ASSERT((max != 0) || (! release)) ;
     637                 : 
     638               3 :    if (_release)
     639                 :    {
     640               0 :       delete [] _data ;
     641                 :    }
     642                 : 
     643               3 :    _max = max ;
     644               3 :    _length = length ;
     645               3 :    _data = data ;
     646               3 :    _release = release ;
     647                 : }
     648                 : 
     649                 : CORBA::WChar*
     650              16 : CORBAWCharSeq::get_buffer(CORBA::Boolean orphan)
     651                 : {
     652              16 :    CORBA::WChar* buf = _data ;
     653                 : 
     654              16 :    if (orphan)
     655                 :    {
     656               1 :       _max = 0 ;
     657               1 :       _length = 0 ;
     658               1 :       _data = NULL ;
     659               1 :       _release = false ;
     660                 :    }
     661                 : 
     662                 :    return buf ;
     663                 : }
     664                 : 
     665                 : const CORBA::WChar*
     666              15 : CORBAWCharSeq::get_buffer(void) const
     667                 : {
     668                 :    return _data ;
     669                 : }
     670                 : 
     671                 : void
     672               0 : CORBAWCharSeq::cdr(YAORB::CDR* cdrs)
     673                 : {
     674                 :    ASSERT(cdrs != NULL) ;
     675                 : 
     676               0 :    cdrs->cdr_ULong(& _length) ;
     677                 : 
     678               0 :    if (_length > _max)
     679                 :    {
     680               0 :       if (_release)
     681                 :       {
     682               0 :          delete [] _data ;
     683                 :       }
     684                 : 
     685               0 :       _max = _length ;
     686               0 :       _data = new CORBA::WChar[_max] ;
     687               0 :       _release = true ;
     688                 :    }
     689                 : 
     690               0 :    cdrs->cdr_WCharArray(_data, _length) ;
     691                 : }
     692                 : 
     693                 : //=============================================================================
     694                 : // Implementation of CORBAOctetSeq
     695                 : //=============================================================================
     696                 : 
     697               4 : CORBAOctetSeq::CORBAOctetSeq()
     698                 :  : _max(0),
     699                 :    _length(0),
     700                 :    _data(NULL),
     701               4 :    _release(false)
     702                 : {
     703                 : }
     704                 : 
     705               1 : CORBAOctetSeq::CORBAOctetSeq(CORBA::ULong max)
     706                 :  : _max(max),
     707                 :    _length(max),
     708                 :    _data(NULL),
     709               1 :    _release(true)
     710                 : {
     711                 :    ASSERT(max != 0) ;
     712                 : 
     713               1 :    _data = new CORBA::Octet[_max] ;
     714                 : }
     715                 : 
     716                 : CORBAOctetSeq::CORBAOctetSeq(
     717                 :    CORBA::ULong max,
     718                 :    CORBA::ULong length,
     719                 :    CORBA::Octet* data,
     720               2 :    CORBA::Boolean release)
     721                 :  : _max(max),
     722                 :    _length(length),
     723                 :    _data(data),
     724               2 :    _release(release)
     725                 : {
     726                 :    ASSERT(length <= max) ;
     727                 :    ASSERT((data != NULL) || (! release)) ;
     728                 :    ASSERT((max != 0) || (! release)) ;
     729                 : }
     730                 : 
     731               2 : CORBAOctetSeq::CORBAOctetSeq(const CORBAOctetSeq& seq)
     732                 :  : _max(seq._max),
     733                 :    _length(seq._length),
     734                 :    _data(NULL),
     735               2 :    _release(false)
     736                 : {
     737               2 :    if (_max != 0)
     738                 :    {
     739               1 :       _data = new CORBA::Octet[_max] ;
     740               1 :       _release = true ;
     741                 : 
     742                 :       memcpy(_data,
     743                 :              seq._data,
     744               1 :              _length * sizeof(CORBA::Octet)) ;
     745                 :    }
     746                 : }
     747                 : 
     748               7 : CORBAOctetSeq::~CORBAOctetSeq()
     749                 : {
     750               7 :    if (_release)
     751                 :    {
     752                 :       ASSERT(_data != NULL) ;
     753               4 :       delete [] _data ;
     754                 :    }
     755               3 : }
     756                 : 
     757                 : CORBAOctetSeq&
     758               2 : CORBAOctetSeq::operator=(const CORBAOctetSeq& seq)
     759                 : {
     760               2 :    if (_max < seq._length)
     761                 :    {
     762               1 :       if (_release)
     763                 :       {
     764                 :          ASSERT(_data != NULL) ;
     765               0 :          delete [] _data ;
     766                 :       }
     767                 : 
     768               1 :       _max = seq._length ;
     769               1 :       _data = new CORBA::Octet[_max] ;
     770               1 :       _release = true ;
     771                 :    }
     772                 : 
     773               2 :    _length = seq._length ;
     774                 : 
     775               2 :    if (_length != 0)
     776                 :    {
     777                 :       memcpy(_data,
     778                 :              seq._data,
     779               2 :              _length * sizeof(CORBA::Octet)) ;
     780                 :    }
     781                 : 
     782                 :    return *this ;
     783                 : }
     784                 : 
     785                 : CORBA::ULong
     786              15 : CORBAOctetSeq::maximum() const
     787                 : {
     788                 :    return _max ;
     789                 : }
     790                 : 
     791                 : void
     792               3 : CORBAOctetSeq::length(CORBA::ULong len)
     793                 : {
     794               3 :    if (_max < len)
     795                 :    {
     796               2 :       CORBA::Octet* new_data = new CORBA::Octet[len] ;
     797                 : 
     798               2 :       if (_length != 0)
     799                 :       {
     800                 :          memcpy(new_data,
     801                 :                 _data,
     802               1 :                 _length * sizeof (CORBA::Octet)) ;
     803                 :       }
     804                 : 
     805               2 :       if (_release)
     806                 :       {
     807               1 :          delete [] _data ;
     808                 :       }
     809                 : 
     810               2 :       _data = new_data ;
     811               2 :       _max = len ;
     812               2 :       _release = true ;
     813                 :    }
     814                 : 
     815               3 :    if (len > _length)
     816                 :    {
     817               3 :       _length = len ;
     818                 :    }
     819                 : }
     820                 : 
     821                 : CORBA::ULong
     822              15 : CORBAOctetSeq::length() const
     823                 : {
     824                 :    return _length ;
     825                 : }
     826                 : 
     827                 : CORBA::Octet&
     828              87 : CORBAOctetSeq::operator[] (CORBA::ULong index)
     829                 : {
     830                 :    ASSERT(index < _length) ;
     831                 :    return _data[index] ;
     832                 : }
     833                 : 
     834                 : const CORBA::Octet&
     835               0 : CORBAOctetSeq::operator[] (CORBA::ULong index) const
     836                 : {
     837                 :    ASSERT(index < _length) ;
     838                 :    return _data[index] ;
     839                 : }
     840                 : 
     841                 : CORBA::Boolean
     842              15 : CORBAOctetSeq::release() const
     843                 : {
     844                 :    return _release ;
     845                 : }
     846                 : 
     847                 : void
     848                 : CORBAOctetSeq::replace(
     849                 :    CORBA::ULong max,
     850                 :    CORBA::ULong length,
     851                 :    CORBA::Octet* data,
     852               3 :    CORBA::Boolean release)
     853                 : {
     854                 :    ASSERT(length <= max) ;
     855                 :    ASSERT((data != NULL) || (! release)) ;
     856                 :    ASSERT((max != 0) || (! release)) ;
     857                 : 
     858               3 :    if (_release)
     859                 :    {
     860               0 :       delete [] _data ;
     861                 :    }
     862                 : 
     863               3 :    _max = max ;
     864               3 :    _length = length ;
     865               3 :    _data = data ;
     866               3 :    _release = release ;
     867                 : }
     868                 : 
     869                 : CORBA::Octet*
     870              16 : CORBAOctetSeq::get_buffer(CORBA::Boolean orphan)
     871                 : {
     872              16 :    CORBA::Octet* buf = _data ;
     873                 : 
     874              16 :    if (orphan)
     875                 :    {
     876               1 :       _max = 0 ;
     877               1 :       _length = 0 ;
     878               1 :       _data = NULL ;
     879               1 :       _release = false ;
     880                 :    }
     881                 : 
     882                 :    return buf ;
     883                 : }
     884                 : 
     885                 : const CORBA::Octet*
     886              15 : CORBAOctetSeq::get_buffer(void) const
     887                 : {
     888                 :    return _data ;
     889                 : }
     890                 : 
     891                 : void
     892               2 : CORBAOctetSeq::cdr(YAORB::CDR* cdrs)
     893                 : {
     894                 :    ASSERT(cdrs != NULL) ;
     895                 : 
     896               2 :    cdrs->cdr_ULong(& _length) ;
     897                 : 
     898               2 :    if (_length > _max)
     899                 :    {
     900               2 :       if (_release)
     901                 :       {
     902               0 :          delete [] _data ;
     903                 :       }
     904                 : 
     905               2 :       _max = _length ;
     906               2 :       _data = new CORBA::Octet[_max] ;
     907               2 :       _release = true ;
     908                 :    }
     909                 : 
     910               2 :    cdrs->cdr_OctetArray(_data, _length) ;
     911                 : }
     912                 : 
     913                 : //=============================================================================
     914                 : // Implementation of CORBAShortSeq
     915                 : //=============================================================================
     916                 : 
     917               1 : CORBAShortSeq::CORBAShortSeq()
     918                 :  : _max(0),
     919                 :    _length(0),
     920                 :    _data(NULL),
     921               1 :    _release(false)
     922                 : {
     923                 : }
     924                 : 
     925               1 : CORBAShortSeq::CORBAShortSeq(CORBA::ULong max)
     926                 :  : _max(max),
     927                 :    _length(max),
     928                 :    _data(NULL),
     929               1 :    _release(true)
     930                 : {
     931                 :    ASSERT(max != 0) ;
     932                 : 
     933               1 :    _data = new CORBA::Short[_max] ;
     934                 : }
     935                 : 
     936                 : CORBAShortSeq::CORBAShortSeq(
     937                 :    CORBA::ULong max,
     938                 :    CORBA::ULong length,
     939                 :    CORBA::Short* data,
     940               2 :    CORBA::Boolean release)
     941                 :  : _max(max),
     942                 :    _length(length),
     943                 :    _data(data),
     944               2 :    _release(release)
     945                 : {
     946                 :    ASSERT(length <= max) ;
     947                 :    ASSERT((data != NULL) || (! release)) ;
     948                 :    ASSERT((max != 0) || (! release)) ;
     949                 : }
     950                 : 
     951               2 : CORBAShortSeq::CORBAShortSeq(const CORBAShortSeq& seq)
     952                 :  : _max(seq._max),
     953                 :    _length(seq._length),
     954                 :    _data(NULL),
     955               2 :    _release(false)
     956                 : {
     957               2 :    if (_max != 0)
     958                 :    {
     959               1 :       _data = new CORBA::Short[_max] ;
     960               1 :       _release = true ;
     961                 : 
     962                 :       memcpy(_data,
     963                 :              seq._data,
     964               1 :              _length * sizeof(CORBA::Short)) ;
     965                 :    }
     966                 : }
     967                 : 
     968               6 : CORBAShortSeq::~CORBAShortSeq()
     969                 : {
     970               6 :    if (_release)
     971                 :    {
     972                 :       ASSERT(_data != NULL) ;
     973               3 :       delete [] _data ;
     974                 :    }
     975               3 : }
     976                 : 
     977                 : CORBAShortSeq&
     978               2 : CORBAShortSeq::operator=(const CORBAShortSeq& seq)
     979                 : {
     980               2 :    if (_max < seq._length)
     981                 :    {
     982               1 :       if (_release)
     983                 :       {
     984                 :          ASSERT(_data != NULL) ;
     985               0 :          delete [] _data ;
     986                 :       }
     987                 : 
     988               1 :       _max = seq._length ;
     989               1 :       _data = new CORBA::Short[_max] ;
     990               1 :       _release = true ;
     991                 :    }
     992                 : 
     993               2 :    _length = seq._length ;
     994                 : 
     995               2 :    if (_length != 0)
     996                 :    {
     997                 :       memcpy(_data,
     998                 :              seq._data,
     999               2 :              _length * sizeof(CORBA::Short)) ;
    1000                 :    }
    1001                 : 
    1002                 :    return *this ;
    1003                 : }
    1004                 : 
    1005                 : CORBA::ULong
    1006              15 : CORBAShortSeq::maximum() const
    1007                 : {
    1008                 :    return _max ;
    1009                 : }
    1010                 : 
    1011                 : void
    1012               2 : CORBAShortSeq::length(CORBA::ULong len)
    1013                 : {
    1014               2 :    if (_max < len)
    1015                 :    {
    1016               1 :       CORBA::Short* new_data = new CORBA::Short[len] ;
    1017                 : 
    1018               1 :       if (_length != 0)
    1019                 :       {
    1020                 :          memcpy(new_data,
    1021                 :                 _data,
    1022               1 :                 _length * sizeof (CORBA::Short)) ;
    1023                 :       }
    1024                 : 
    1025               1 :       if (_release)
    1026                 :       {
    1027               1 :          delete [] _data ;
    1028                 :       }
    1029                 : 
    1030               1 :       _data = new_data ;
    1031               1 :       _max = len ;
    1032               1 :       _release = true ;
    1033                 :    }
    1034                 : 
    1035               2 :    if (len > _length)
    1036                 :    {
    1037               2 :       _length = len ;
    1038                 :    }
    1039                 : }
    1040                 : 
    1041                 : CORBA::ULong
    1042              15 : CORBAShortSeq::length() const
    1043                 : {
    1044                 :    return _length ;
    1045                 : }
    1046                 : 
    1047                 : CORBA::Short&
    1048              83 : CORBAShortSeq::operator[] (CORBA::ULong index)
    1049                 : {
    1050                 :    ASSERT(index < _length) ;
    1051                 :    return _data[index] ;
    1052                 : }
    1053                 : 
    1054                 : const CORBA::Short&
    1055               0 : CORBAShortSeq::operator[] (CORBA::ULong index) const
    1056                 : {
    1057                 :    ASSERT(index < _length) ;
    1058                 :    return _data[index] ;
    1059                 : }
    1060                 : 
    1061                 : CORBA::Boolean
    1062              15 : CORBAShortSeq::release() const
    1063                 : {
    1064                 :    return _release ;
    1065                 : }
    1066                 : 
    1067                 : void
    1068                 : CORBAShortSeq::replace(
    1069                 :    CORBA::ULong max,
    1070                 :    CORBA::ULong length,
    1071                 :    CORBA::Short* data,
    1072               3 :    CORBA::Boolean release)
    1073                 : {
    1074                 :    ASSERT(length <= max) ;
    1075                 :    ASSERT((data != NULL) || (! release)) ;
    1076                 :    ASSERT((max != 0) || (! release)) ;
    1077                 : 
    1078               3 :    if (_release)
    1079                 :    {
    1080               0 :       delete [] _data ;
    1081                 :    }
    1082                 : 
    1083               3 :    _max = max ;
    1084               3 :    _length = length ;
    1085               3 :    _data = data ;
    1086               3 :    _release = release ;
    1087                 : }
    1088                 : 
    1089                 : CORBA::Short*
    1090              16 : CORBAShortSeq::get_buffer(CORBA::Boolean orphan)
    1091                 : {
    1092              16 :    CORBA::Short* buf = _data ;
    1093                 : 
    1094              16 :    if (orphan)
    1095                 :    {
    1096               1 :       _max = 0 ;
    1097               1 :       _length = 0 ;
    1098               1 :       _data = NULL ;
    1099               1 :       _release = false ;
    1100                 :    }
    1101                 : 
    1102                 :    return buf ;
    1103                 : }
    1104                 : 
    1105                 : const CORBA::Short*
    1106              15 : CORBAShortSeq::get_buffer(void) const
    1107                 : {
    1108                 :    return _data ;
    1109                 : }
    1110                 : 
    1111                 : void
    1112               0 : CORBAShortSeq::cdr(YAORB::CDR* cdrs)
    1113                 : {
    1114                 :    ASSERT(cdrs != NULL) ;
    1115                 : 
    1116               0 :    cdrs->cdr_ULong(& _length) ;
    1117                 : 
    1118               0 :    if (_length > _max)
    1119                 :    {
    1120               0 :       if (_release)
    1121                 :       {
    1122               0 :          delete [] _data ;
    1123                 :       }
    1124                 : 
    1125               0 :       _max = _length ;
    1126               0 :       _data = new CORBA::Short[_max] ;
    1127               0 :       _release = true ;
    1128                 :    }
    1129                 : 
    1130               0 :    cdrs->cdr_ShortArray(_data, _length) ;
    1131                 : }
    1132                 : 
    1133                 : //=============================================================================
    1134                 : // Implementation of CORBAUShortSeq
    1135                 : //=============================================================================
    1136                 : 
    1137               1 : CORBAUShortSeq::CORBAUShortSeq()
    1138                 :  : _max(0),
    1139                 :    _length(0),
    1140                 :    _data(NULL),
    1141               1 :    _release(false)
    1142                 : {
    1143                 : }
    1144                 : 
    1145               1 : CORBAUShortSeq::CORBAUShortSeq(CORBA::ULong max)
    1146                 :  : _max(max),
    1147                 :    _length(max),
    1148                 :    _data(NULL),
    1149               1 :    _release(true)
    1150                 : {
    1151                 :    ASSERT(max != 0) ;
    1152                 : 
    1153               1 :    _data = new CORBA::UShort[_max] ;
    1154                 : }
    1155                 : 
    1156                 : CORBAUShortSeq::CORBAUShortSeq(
    1157                 :    CORBA::ULong max,
    1158                 :    CORBA::ULong length,
    1159                 :    CORBA::UShort* data,
    1160               2 :    CORBA::Boolean release)
    1161                 :  : _max(max),
    1162                 :    _length(length),
    1163                 :    _data(data),
    1164               2 :    _release(release)
    1165                 : {
    1166                 :    ASSERT(length <= max) ;
    1167                 :    ASSERT((data != NULL) || (! release)) ;
    1168                 :    ASSERT((max != 0) || (! release)) ;
    1169                 : }
    1170                 : 
    1171               2 : CORBAUShortSeq::CORBAUShortSeq(const CORBAUShortSeq& seq)
    1172                 :  : _max(seq._max),
    1173                 :    _length(seq._length),
    1174                 :    _data(NULL),
    1175               2 :    _release(false)
    1176                 : {
    1177               2 :    if (_max != 0)
    1178                 :    {
    1179               1 :       _data = new CORBA::UShort[_max] ;
    1180               1 :       _release = true ;
    1181                 : 
    1182                 :       memcpy(_data,
    1183                 :              seq._data,
    1184               1 :              _length * sizeof(CORBA::UShort)) ;
    1185                 :    }
    1186                 : }
    1187                 : 
    1188               6 : CORBAUShortSeq::~CORBAUShortSeq()
    1189                 : {
    1190               6 :    if (_release)
    1191                 :    {
    1192                 :       ASSERT(_data != NULL) ;
    1193               3 :       delete [] _data ;
    1194                 :    }
    1195               3 : }
    1196                 : 
    1197                 : CORBAUShortSeq&
    1198               2 : CORBAUShortSeq::operator=(const CORBAUShortSeq& seq)
    1199                 : {
    1200               2 :    if (_max < seq._length)
    1201                 :    {
    1202               1 :       if (_release)
    1203                 :       {
    1204                 :          ASSERT(_data != NULL) ;
    1205               0 :          delete [] _data ;
    1206                 :       }
    1207                 : 
    1208               1 :       _max = seq._length ;
    1209               1 :       _data = new CORBA::UShort[_max] ;
    1210               1 :       _release = true ;
    1211                 :    }
    1212                 : 
    1213               2 :    _length = seq._length ;
    1214                 : 
    1215               2 :    if (_length != 0)
    1216                 :    {
    1217                 :       memcpy(_data,
    1218                 :              seq._data,
    1219               2 :              _length * sizeof(CORBA::UShort)) ;
    1220                 :    }
    1221                 : 
    1222                 :    return *this ;
    1223                 : }
    1224                 : 
    1225                 : CORBA::ULong
    1226              15 : CORBAUShortSeq::maximum() const
    1227                 : {
    1228                 :    return _max ;
    1229                 : }
    1230                 : 
    1231                 : void
    1232               2 : CORBAUShortSeq::length(CORBA::ULong len)
    1233                 : {
    1234               2 :    if (_max < len)
    1235                 :    {
    1236               1 :       CORBA::UShort* new_data = new CORBA::UShort[len] ;
    1237                 : 
    1238               1 :       if (_length != 0)
    1239                 :       {
    1240                 :          memcpy(new_data,
    1241                 :                 _data,
    1242               1 :                 _length * sizeof (CORBA::UShort)) ;
    1243                 :       }
    1244                 : 
    1245               1 :       if (_release)
    1246                 :       {
    1247               1 :          delete [] _data ;
    1248                 :       }
    1249                 : 
    1250               1 :       _data = new_data ;
    1251               1 :       _max = len ;
    1252               1 :       _release = true ;
    1253                 :    }
    1254                 : 
    1255               2 :    if (len > _length)
    1256                 :    {
    1257               2 :       _length = len ;
    1258                 :    }
    1259                 : }
    1260                 : 
    1261                 : CORBA::ULong
    1262              15 : CORBAUShortSeq::length() const
    1263                 : {
    1264                 :    return _length ;
    1265                 : }
    1266                 : 
    1267                 : CORBA::UShort&
    1268              83 : CORBAUShortSeq::operator[] (CORBA::ULong index)
    1269                 : {
    1270                 :    ASSERT(index < _length) ;
    1271                 :    return _data[index] ;
    1272                 : }
    1273                 : 
    1274                 : const CORBA::UShort&
    1275               0 : CORBAUShortSeq::operator[] (CORBA::ULong index) const
    1276                 : {
    1277                 :    ASSERT(index < _length) ;
    1278                 :    return _data[index] ;
    1279                 : }
    1280                 : 
    1281                 : CORBA::Boolean
    1282              15 : CORBAUShortSeq::release() const
    1283                 : {
    1284                 :    return _release ;
    1285                 : }
    1286                 : 
    1287                 : void
    1288                 : CORBAUShortSeq::replace(
    1289                 :    CORBA::ULong max,
    1290                 :    CORBA::ULong length,
    1291                 :    CORBA::UShort* data,
    1292               3 :    CORBA::Boolean release)
    1293                 : {
    1294                 :    ASSERT(length <= max) ;
    1295                 :    ASSERT((data != NULL) || (! release)) ;
    1296                 :    ASSERT((max != 0) || (! release)) ;
    1297                 : 
    1298               3 :    if (_release)
    1299                 :    {
    1300               0 :       delete [] _data ;
    1301                 :    }
    1302                 : 
    1303               3 :    _max = max ;
    1304               3 :    _length = length ;
    1305               3 :    _data = data ;
    1306               3 :    _release = release ;
    1307                 : }
    1308                 : 
    1309                 : CORBA::UShort*
    1310              16 : CORBAUShortSeq::get_buffer(CORBA::Boolean orphan)
    1311                 : {
    1312              16 :    CORBA::UShort* buf = _data ;
    1313                 : 
    1314              16 :    if (orphan)
    1315                 :    {
    1316               1 :       _max = 0 ;
    1317               1 :       _length = 0 ;
    1318               1 :       _data = NULL ;
    1319               1 :       _release = false ;
    1320                 :    }
    1321                 : 
    1322                 :    return buf ;
    1323                 : }
    1324                 : 
    1325                 : const CORBA::UShort*
    1326              15 : CORBAUShortSeq::get_buffer(void) const
    1327                 : {
    1328                 :    return _data ;
    1329                 : }
    1330                 : 
    1331                 : void
    1332               0 : CORBAUShortSeq::cdr(YAORB::CDR* cdrs)
    1333                 : {
    1334                 :    ASSERT(cdrs != NULL) ;
    1335                 : 
    1336               0 :    cdrs->cdr_ULong(& _length) ;
    1337                 : 
    1338               0 :    if (_length > _max)
    1339                 :    {
    1340               0 :       if (_release)
    1341                 :       {
    1342               0 :          delete [] _data ;
    1343                 :       }
    1344                 : 
    1345               0 :       _max = _length ;
    1346               0 :       _data = new CORBA::UShort[_max] ;
    1347               0 :       _release = true ;
    1348                 :    }
    1349                 : 
    1350               0 :    cdrs->cdr_UShortArray(_data, _length) ;
    1351                 : }
    1352                 : 
    1353                 : //=============================================================================
    1354                 : // Implementation of CORBALongSeq
    1355                 : //=============================================================================
    1356                 : 
    1357               1 : CORBALongSeq::CORBALongSeq()
    1358                 :  : _max(0),
    1359                 :    _length(0),
    1360                 :    _data(NULL),
    1361               1 :    _release(false)
    1362                 : {
    1363                 : }
    1364                 : 
    1365               1 : CORBALongSeq::CORBALongSeq(CORBA::ULong max)
    1366                 :  : _max(max),
    1367                 :    _length(max),
    1368                 :    _data(NULL),
    1369               1 :    _release(true)
    1370                 : {
    1371                 :    ASSERT(max != 0) ;
    1372                 : 
    1373               1 :    _data = new CORBA::Long[_max] ;
    1374                 : }
    1375                 : 
    1376                 : CORBALongSeq::CORBALongSeq(
    1377                 :    CORBA::ULong max,
    1378                 :    CORBA::ULong length,
    1379                 :    CORBA::Long* data,
    1380               2 :    CORBA::Boolean release)
    1381                 :  : _max(max),
    1382                 :    _length(length),
    1383                 :    _data(data),
    1384               2 :    _release(release)
    1385                 : {
    1386                 :    ASSERT(length <= max) ;
    1387                 :    ASSERT((data != NULL) || (! release)) ;
    1388                 :    ASSERT((max != 0) || (! release)) ;
    1389                 : }
    1390                 : 
    1391               2 : CORBALongSeq::CORBALongSeq(const CORBALongSeq& seq)
    1392                 :  : _max(seq._max),
    1393                 :    _length(seq._length),
    1394                 :    _data(NULL),
    1395               2 :    _release(false)
    1396                 : {
    1397               2 :    if (_max != 0)
    1398                 :    {
    1399               1 :       _data = new CORBA::Long[_max] ;
    1400               1 :       _release = true ;
    1401                 : 
    1402                 :       memcpy(_data,
    1403                 :              seq._data,
    1404               1 :              _length * sizeof(CORBA::Long)) ;
    1405                 :    }
    1406                 : }
    1407                 : 
    1408               6 : CORBALongSeq::~CORBALongSeq()
    1409                 : {
    1410               6 :    if (_release)
    1411                 :    {
    1412                 :       ASSERT(_data != NULL) ;
    1413               3 :       delete [] _data ;
    1414                 :    }
    1415               3 : }
    1416                 : 
    1417                 : CORBALongSeq&
    1418               2 : CORBALongSeq::operator=(const CORBALongSeq& seq)
    1419                 : {
    1420               2 :    if (_max < seq._length)
    1421                 :    {
    1422               1 :       if (_release)
    1423                 :       {
    1424                 :          ASSERT(_data != NULL) ;
    1425               0 :          delete [] _data ;
    1426                 :       }
    1427                 : 
    1428               1 :       _max = seq._length ;
    1429               1 :       _data = new CORBA::Long[_max] ;
    1430               1 :       _release = true ;
    1431                 :    }
    1432                 : 
    1433               2 :    _length = seq._length ;
    1434                 : 
    1435               2 :    if (_length != 0)
    1436                 :    {
    1437                 :       memcpy(_data,
    1438                 :              seq._data,
    1439               2 :              _length * sizeof(CORBA::Long)) ;
    1440                 :    }
    1441                 : 
    1442                 :    return *this ;
    1443                 : }
    1444                 : 
    1445                 : CORBA::ULong
    1446              15 : CORBALongSeq::maximum() const
    1447                 : {
    1448                 :    return _max ;
    1449                 : }
    1450                 : 
    1451                 : void
    1452               2 : CORBALongSeq::length(CORBA::ULong len)
    1453                 : {
    1454               2 :    if (_max < len)
    1455                 :    {
    1456               1 :       CORBA::Long* new_data = new CORBA::Long[len] ;
    1457                 : 
    1458               1 :       if (_length != 0)
    1459                 :       {
    1460                 :          memcpy(new_data,
    1461                 :                 _data,
    1462               1 :                 _length * sizeof (CORBA::Long)) ;
    1463                 :       }
    1464                 : 
    1465               1 :       if (_release)
    1466                 :       {
    1467               1 :          delete [] _data ;
    1468                 :       }
    1469                 : 
    1470               1 :       _data = new_data ;
    1471               1 :       _max = len ;
    1472               1 :       _release = true ;
    1473                 :    }
    1474                 : 
    1475               2 :    if (len > _length)
    1476                 :    {
    1477               2 :       _length = len ;
    1478                 :    }
    1479                 : }
    1480                 : 
    1481                 : CORBA::ULong
    1482              15 : CORBALongSeq::length() const
    1483                 : {
    1484                 :    return _length ;
    1485                 : }
    1486                 : 
    1487                 : CORBA::Long&
    1488              83 : CORBALongSeq::operator[] (CORBA::ULong index)
    1489                 : {
    1490                 :    ASSERT(index < _length) ;
    1491                 :    return _data[index] ;
    1492                 : }
    1493                 : 
    1494                 : const CORBA::Long&
    1495               0 : CORBALongSeq::operator[] (CORBA::ULong index) const
    1496                 : {
    1497                 :    ASSERT(index < _length) ;
    1498                 :    return _data[index] ;
    1499                 : }
    1500                 : 
    1501                 : CORBA::Boolean
    1502              15 : CORBALongSeq::release() const
    1503                 : {
    1504                 :    return _release ;
    1505                 : }
    1506                 : 
    1507                 : void
    1508                 : CORBALongSeq::replace(
    1509                 :    CORBA::ULong max,
    1510                 :    CORBA::ULong length,
    1511                 :    CORBA::Long* data,
    1512               3 :    CORBA::Boolean release)
    1513                 : {
    1514                 :    ASSERT(length <= max) ;
    1515                 :    ASSERT((data != NULL) || (! release)) ;
    1516                 :    ASSERT((max != 0) || (! release)) ;
    1517                 : 
    1518               3 :    if (_release)
    1519                 :    {
    1520               0 :       delete [] _data ;
    1521                 :    }
    1522                 : 
    1523               3 :    _max = max ;
    1524               3 :    _length = length ;
    1525               3 :    _data = data ;
    1526               3 :    _release = release ;
    1527                 : }
    1528                 : 
    1529                 : CORBA::Long*
    1530              16 : CORBALongSeq::get_buffer(CORBA::Boolean orphan)
    1531                 : {
    1532              16 :    CORBA::Long* buf = _data ;
    1533                 : 
    1534              16 :    if (orphan)
    1535                 :    {
    1536               1 :       _max = 0 ;
    1537               1 :       _length = 0 ;
    1538               1 :       _data = NULL ;
    1539               1 :       _release = false ;
    1540                 :    }
    1541                 : 
    1542                 :    return buf ;
    1543                 : }
    1544                 : 
    1545                 : const CORBA::Long*
    1546              15 : CORBALongSeq::get_buffer(void) const
    1547                 : {
    1548                 :    return _data ;
    1549                 : }
    1550                 : 
    1551                 : void
    1552               0 : CORBALongSeq::cdr(YAORB::CDR* cdrs)
    1553                 : {
    1554                 :    ASSERT(cdrs != NULL) ;
    1555                 : 
    1556               0 :    cdrs->cdr_ULong(& _length) ;
    1557                 : 
    1558               0 :    if (_length > _max)
    1559                 :    {
    1560               0 :       if (_release)
    1561                 :       {
    1562               0 :          delete [] _data ;
    1563                 :       }
    1564                 : 
    1565               0 :       _max = _length ;
    1566               0 :       _data = new CORBA::Long[_max] ;
    1567               0 :       _release = true ;
    1568                 :    }
    1569                 : 
    1570               0 :    cdrs->cdr_LongArray(_data, _length) ;
    1571                 : }
    1572                 : 
    1573                 : //=============================================================================
    1574                 : // Implementation of CORBALongLongSeq
    1575                 : //=============================================================================
    1576                 : 
    1577               1 : CORBALongLongSeq::CORBALongLongSeq()
    1578                 :  : _max(0),
    1579                 :    _length(0),
    1580                 :    _data(NULL),
    1581               1 :    _release(false)
    1582                 : {
    1583                 : }
    1584                 : 
    1585               1 : CORBALongLongSeq::CORBALongLongSeq(CORBA::ULong max)
    1586                 :  : _max(max),
    1587                 :    _length(max),
    1588                 :    _data(NULL),
    1589               1 :    _release(true)
    1590                 : {
    1591                 :    ASSERT(max != 0) ;
    1592                 : 
    1593               1 :    _data = new CORBA::LongLong[_max] ;
    1594                 : }
    1595                 : 
    1596                 : CORBALongLongSeq::CORBALongLongSeq(
    1597                 :    CORBA::ULong max,
    1598                 :    CORBA::ULong length,
    1599                 :    CORBA::LongLong* data,
    1600               2 :    CORBA::Boolean release)
    1601                 :  : _max(max),
    1602                 :    _length(length),
    1603                 :    _data(data),
    1604               2 :    _release(release)
    1605                 : {
    1606                 :    ASSERT(length <= max) ;
    1607                 :    ASSERT((data != NULL) || (! release)) ;
    1608                 :    ASSERT((max != 0) || (! release)) ;
    1609                 : }
    1610                 : 
    1611               2 : CORBALongLongSeq::CORBALongLongSeq(const CORBALongLongSeq& seq)
    1612                 :  : _max(seq._max),
    1613                 :    _length(seq._length),
    1614                 :    _data(NULL),
    1615               2 :    _release(false)
    1616                 : {
    1617               2 :    if (_max != 0)
    1618                 :    {
    1619               1 :       _data = new CORBA::LongLong[_max] ;
    1620               1 :       _release = true ;
    1621                 : 
    1622                 :       memcpy(_data,
    1623                 :              seq._data,
    1624               1 :              _length * sizeof(CORBA::LongLong)) ;
    1625                 :    }
    1626                 : }
    1627                 : 
    1628               6 : CORBALongLongSeq::~CORBALongLongSeq()
    1629                 : {
    1630               6 :    if (_release)
    1631                 :    {
    1632                 :       ASSERT(_data != NULL) ;
    1633               3 :       delete [] _data ;
    1634                 :    }
    1635               3 : }
    1636                 : 
    1637                 : CORBALongLongSeq&
    1638               2 : CORBALongLongSeq::operator=(const CORBALongLongSeq& seq)
    1639                 : {
    1640               2 :    if (_max < seq._length)
    1641                 :    {
    1642               1 :       if (_release)
    1643                 :       {
    1644                 :          ASSERT(_data != NULL) ;
    1645               0 :          delete [] _data ;
    1646                 :       }
    1647                 : 
    1648               1 :       _max = seq._length ;
    1649               1 :       _data = new CORBA::LongLong[_max] ;
    1650               1 :       _release = true ;
    1651                 :    }
    1652                 : 
    1653               2 :    _length = seq._length ;
    1654                 : 
    1655               2 :    if (_length != 0)
    1656                 :    {
    1657                 :       memcpy(_data,
    1658                 :              seq._data,
    1659               2 :              _length * sizeof(CORBA::LongLong)) ;
    1660                 :    }
    1661                 : 
    1662                 :    return *this ;
    1663                 : }
    1664                 : 
    1665                 : CORBA::ULong
    1666              15 : CORBALongLongSeq::maximum() const
    1667                 : {
    1668                 :    return _max ;
    1669                 : }
    1670                 : 
    1671                 : void
    1672               2 : CORBALongLongSeq::length(CORBA::ULong len)
    1673                 : {
    1674               2 :    if (_max < len)
    1675                 :    {
    1676               1 :       CORBA::LongLong* new_data = new CORBA::LongLong[len] ;
    1677                 : 
    1678               1 :       if (_length != 0)
    1679                 :       {
    1680                 :          memcpy(new_data,
    1681                 :                 _data,
    1682               1 :                 _length * sizeof (CORBA::LongLong)) ;
    1683                 :       }
    1684                 : 
    1685               1 :       if (_release)
    1686                 :       {
    1687               1 :          delete [] _data ;
    1688                 :       }
    1689                 : 
    1690               1 :       _data = new_data ;
    1691               1 :       _max = len ;
    1692               1 :       _release = true ;
    1693                 :    }
    1694                 : 
    1695               2 :    if (len > _length)
    1696                 :    {
    1697               2 :       _length = len ;
    1698                 :    }
    1699                 : }
    1700                 : 
    1701                 : CORBA::ULong
    1702              15 : CORBALongLongSeq::length() const
    1703                 : {
    1704                 :    return _length ;
    1705                 : }
    1706                 : 
    1707                 : CORBA::LongLong&
    1708              91 : CORBALongLongSeq::operator[] (CORBA::ULong index)
    1709                 : {
    1710                 :    ASSERT(index < _length) ;
    1711                 :    return _data[index] ;
    1712                 : }
    1713                 : 
    1714                 : const CORBA::LongLong&
    1715               0 : CORBALongLongSeq::operator[] (CORBA::ULong index) const
    1716                 : {
    1717                 :    ASSERT(index < _length) ;
    1718                 :    return _data[index] ;
    1719                 : }
    1720                 : 
    1721                 : CORBA::Boolean
    1722              15 : CORBALongLongSeq::release() const
    1723                 : {
    1724                 :    return _release ;
    1725                 : }
    1726                 : 
    1727                 : void
    1728                 : CORBALongLongSeq::replace(
    1729                 :    CORBA::ULong max,
    1730                 :    CORBA::ULong length,
    1731                 :    CORBA::LongLong* data,
    1732               3 :    CORBA::Boolean release)
    1733                 : {
    1734                 :    ASSERT(length <= max) ;
    1735                 :    ASSERT((data != NULL) || (! release)) ;
    1736                 :    ASSERT((max != 0) || (! release)) ;
    1737                 : 
    1738               3 :    if (_release)
    1739                 :    {
    1740               0 :       delete [] _data ;
    1741                 :    }
    1742                 : 
    1743               3 :    _max = max ;
    1744               3 :    _length = length ;
    1745               3 :    _data = data ;
    1746               3 :    _release = release ;
    1747                 : }
    1748                 : 
    1749                 : CORBA::LongLong*
    1750              16 : CORBALongLongSeq::get_buffer(CORBA::Boolean orphan)
    1751                 : {
    1752              16 :    CORBA::LongLong* buf = _data ;
    1753                 : 
    1754              16 :    if (orphan)
    1755                 :    {
    1756               1 :       _max = 0 ;
    1757               1 :       _length = 0 ;
    1758               1 :       _data = NULL ;
    1759               1 :       _release = false ;
    1760                 :    }
    1761                 : 
    1762                 :    return buf ;
    1763                 : }
    1764                 : 
    1765                 : const CORBA::LongLong*
    1766              15 : CORBALongLongSeq::get_buffer(void) const
    1767                 : {
    1768                 :    return _data ;
    1769                 : }
    1770                 : 
    1771                 : void
    1772               0 : CORBALongLongSeq::cdr(YAORB::CDR* cdrs)
    1773                 : {
    1774                 :    ASSERT(cdrs != NULL) ;
    1775                 : 
    1776               0 :    cdrs->cdr_ULong(& _length) ;
    1777                 : 
    1778               0 :    if (_length > _max)
    1779                 :    {
    1780               0 :       if (_release)
    1781                 :       {
    1782               0 :          delete [] _data ;
    1783                 :       }
    1784                 : 
    1785               0 :       _max = _length ;
    1786               0 :       _data = new CORBA::LongLong[_max] ;
    1787               0 :       _release = true ;
    1788                 :    }
    1789                 : 
    1790               0 :    cdrs->cdr_LongLongArray(_data, _length) ;
    1791                 : }
    1792                 : 
    1793                 : //=============================================================================
    1794                 : // Implementation of CORBAULongSeq
    1795                 : //=============================================================================
    1796                 : 
    1797               1 : CORBAULongSeq::CORBAULongSeq()
    1798                 :  : _max(0),
    1799                 :    _length(0),
    1800                 :    _data(NULL),
    1801               1 :    _release(false)
    1802                 : {
    1803                 : }
    1804                 : 
    1805               1 : CORBAULongSeq::CORBAULongSeq(CORBA::ULong max)
    1806                 :  : _max(max),
    1807                 :    _length(max),
    1808                 :    _data(NULL),
    1809               1 :    _release(true)
    1810                 : {
    1811                 :    ASSERT(max != 0) ;
    1812                 : 
    1813               1 :    _data = new CORBA::ULong[_max] ;
    1814                 : }
    1815                 : 
    1816                 : CORBAULongSeq::CORBAULongSeq(
    1817                 :    CORBA::ULong max,
    1818                 :    CORBA::ULong length,
    1819                 :    CORBA::ULong* data,
    1820               2 :    CORBA::Boolean release)
    1821                 :  : _max(max),
    1822                 :    _length(length),
    1823                 :    _data(data),
    1824               2 :    _release(release)
    1825                 : {
    1826                 :    ASSERT(length <= max) ;
    1827                 :    ASSERT((data != NULL) || (! release)) ;
    1828                 :    ASSERT((max != 0) || (! release)) ;
    1829                 : }
    1830                 : 
    1831               2 : CORBAULongSeq::CORBAULongSeq(const CORBAULongSeq& seq)
    1832                 :  : _max(seq._max),
    1833                 :    _length(seq._length),
    1834                 :    _data(NULL),
    1835               2 :    _release(false)
    1836                 : {
    1837               2 :    if (_max != 0)
    1838                 :    {
    1839               1 :       _data = new CORBA::ULong[_max] ;
    1840               1 :       _release = true ;
    1841                 : 
    1842                 :       memcpy(_data,
    1843                 :              seq._data,
    1844               1 :              _length * sizeof(CORBA::ULong)) ;
    1845                 :    }
    1846                 : }
    1847                 : 
    1848               6 : CORBAULongSeq::~CORBAULongSeq()
    1849                 : {
    1850               6 :    if (_release)
    1851                 :    {
    1852                 :       ASSERT(_data != NULL) ;
    1853               3 :       delete [] _data ;
    1854                 :    }
    1855               3 : }
    1856                 : 
    1857                 : CORBAULongSeq&
    1858               2 : CORBAULongSeq::operator=(const CORBAULongSeq& seq)
    1859                 : {
    1860               2 :    if (_max < seq._length)
    1861                 :    {
    1862               1 :       if (_release)
    1863                 :       {
    1864                 :          ASSERT(_data != NULL) ;
    1865               0 :          delete [] _data ;
    1866                 :       }
    1867                 : 
    1868               1 :       _max = seq._length ;
    1869               1 :       _data = new CORBA::ULong[_max] ;
    1870               1 :       _release = true ;
    1871                 :    }
    1872                 : 
    1873               2 :    _length = seq._length ;
    1874                 : 
    1875               2 :    if (_length != 0)
    1876                 :    {
    1877                 :       memcpy(_data,
    1878                 :              seq._data,
    1879               2 :              _length * sizeof(CORBA::ULong)) ;
    1880                 :    }
    1881                 : 
    1882                 :    return *this ;
    1883                 : }
    1884                 : 
    1885                 : CORBA::ULong
    1886              15 : CORBAULongSeq::maximum() const
    1887                 : {
    1888                 :    return _max ;
    1889                 : }
    1890                 : 
    1891                 : void
    1892               2 : CORBAULongSeq::length(CORBA::ULong len)
    1893                 : {
    1894               2 :    if (_max < len)
    1895                 :    {
    1896               1 :       CORBA::ULong* new_data = new CORBA::ULong[len] ;
    1897                 : 
    1898               1 :       if (_length != 0)
    1899                 :       {
    1900                 :          memcpy(new_data,
    1901                 :                 _data,
    1902               1 :                 _length * sizeof (CORBA::ULong)) ;
    1903                 :       }
    1904                 : 
    1905               1 :       if (_release)
    1906                 :       {
    1907               1 :          delete [] _data ;
    1908                 :       }
    1909                 : 
    1910               1 :       _data = new_data ;
    1911               1 :       _max = len ;
    1912               1 :       _release = true ;
    1913                 :    }
    1914                 : 
    1915               2 :    if (len > _length)
    1916                 :    {
    1917               2 :       _length = len ;
    1918                 :    }
    1919                 : }
    1920                 : 
    1921                 : CORBA::ULong
    1922              15 : CORBAULongSeq::length() const
    1923                 : {
    1924                 :    return _length ;
    1925                 : }
    1926                 : 
    1927                 : CORBA::ULong&
    1928              83 : CORBAULongSeq::operator[] (CORBA::ULong index)
    1929                 : {
    1930                 :    ASSERT(index < _length) ;
    1931                 :    return _data[index] ;
    1932                 : }
    1933                 : 
    1934                 : const CORBA::ULong&
    1935               0 : CORBAULongSeq::operator[] (CORBA::ULong index) const
    1936                 : {
    1937                 :    ASSERT(index < _length) ;
    1938                 :    return _data[index] ;
    1939                 : }
    1940                 : 
    1941                 : CORBA::Boolean
    1942              15 : CORBAULongSeq::release() const
    1943                 : {
    1944                 :    return _release ;
    1945                 : }
    1946                 : 
    1947                 : void
    1948                 : CORBAULongSeq::replace(
    1949                 :    CORBA::ULong max,
    1950                 :    CORBA::ULong length,
    1951                 :    CORBA::ULong* data,
    1952               3 :    CORBA::Boolean release)
    1953                 : {
    1954                 :    ASSERT(length <= max) ;
    1955                 :    ASSERT((data != NULL) || (! release)) ;
    1956                 :    ASSERT((max != 0) || (! release)) ;
    1957                 : 
    1958               3 :    if (_release)
    1959                 :    {
    1960               0 :       delete [] _data ;
    1961                 :    }
    1962                 : 
    1963               3 :    _max = max ;
    1964               3 :    _length = length ;
    1965               3 :    _data = data ;
    1966               3 :    _release = release ;
    1967                 : }
    1968                 : 
    1969                 : CORBA::ULong*
    1970              16 : CORBAULongSeq::get_buffer(CORBA::Boolean orphan)
    1971                 : {
    1972              16 :    CORBA::ULong* buf = _data ;
    1973                 : 
    1974              16 :    if (orphan)
    1975                 :    {
    1976               1 :       _max = 0 ;
    1977               1 :       _length = 0 ;
    1978               1 :       _data = NULL ;
    1979               1 :       _release = false ;
    1980                 :    }
    1981                 : 
    1982                 :    return buf ;
    1983                 : }
    1984                 : 
    1985                 : const CORBA::ULong*
    1986              15 : CORBAULongSeq::get_buffer(void) const
    1987                 : {
    1988                 :    return _data ;
    1989                 : }
    1990                 : 
    1991                 : void
    1992               0 : CORBAULongSeq::cdr(YAORB::CDR* cdrs)
    1993                 : {
    1994                 :    ASSERT(cdrs != NULL) ;
    1995                 : 
    1996               0 :    cdrs->cdr_ULong(& _length) ;
    1997                 : 
    1998               0 :    if (_length > _max)
    1999                 :    {
    2000               0 :       if (_release)
    2001                 :       {
    2002               0 :          delete [] _data ;
    2003                 :       }
    2004                 : 
    2005               0 :       _max = _length ;
    2006               0 :       _data = new CORBA::ULong[_max] ;
    2007               0 :       _release = true ;
    2008                 :    }
    2009                 : 
    2010               0 :    cdrs->cdr_ULongArray(_data, _length) ;
    2011                 : }
    2012                 : 
    2013                 : //=============================================================================
    2014                 : // Implementation of CORBAULongLongSeq
    2015                 : //=============================================================================
    2016                 : 
    2017               1 : CORBAULongLongSeq::CORBAULongLongSeq()
    2018                 :  : _max(0),
    2019                 :    _length(0),
    2020                 :    _data(NULL),
    2021               1 :    _release(false)
    2022                 : {
    2023                 : }
    2024                 : 
    2025               1 : CORBAULongLongSeq::CORBAULongLongSeq(CORBA::ULong max)
    2026                 :  : _max(max),
    2027                 :    _length(max),
    2028                 :    _data(NULL),
    2029               1 :    _release(true)
    2030                 : {
    2031                 :    ASSERT(max != 0) ;
    2032                 : 
    2033               1 :    _data = new CORBA::ULongLong[_max] ;
    2034                 : }
    2035                 : 
    2036                 : CORBAULongLongSeq::CORBAULongLongSeq(
    2037                 :    CORBA::ULong max,
    2038                 :    CORBA::ULong length,
    2039                 :    CORBA::ULongLong* data,
    2040               2 :    CORBA::Boolean release)
    2041                 :  : _max(max),
    2042                 :    _length(length),
    2043                 :    _data(data),
    2044               2 :    _release(release)
    2045                 : {
    2046                 :    ASSERT(length <= max) ;
    2047                 :    ASSERT((data != NULL) || (! release)) ;
    2048                 :    ASSERT((max != 0) || (! release)) ;
    2049                 : }
    2050                 : 
    2051               2 : CORBAULongLongSeq::CORBAULongLongSeq(const CORBAULongLongSeq& seq)
    2052                 :  : _max(seq._max),
    2053                 :    _length(seq._length),
    2054                 :    _data(NULL),
    2055               2 :    _release(false)
    2056                 : {
    2057               2 :    if (_max != 0)
    2058                 :    {
    2059               1 :       _data = new CORBA::ULongLong[_max] ;
    2060               1 :       _release = true ;
    2061                 : 
    2062                 :       memcpy(_data,
    2063                 :              seq._data,
    2064               1 :              _length * sizeof(CORBA::ULongLong)) ;
    2065                 :    }
    2066                 : }
    2067                 : 
    2068               6 : CORBAULongLongSeq::~CORBAULongLongSeq()
    2069                 : {
    2070               6 :    if (_release)
    2071                 :    {
    2072                 :       ASSERT(_data != NULL) ;
    2073               3 :       delete [] _data ;
    2074                 :    }
    2075               3 : }
    2076                 : 
    2077                 : CORBAULongLongSeq&
    2078               2 : CORBAULongLongSeq::operator=(const CORBAULongLongSeq& seq)
    2079                 : {
    2080               2 :    if (_max < seq._length)
    2081                 :    {
    2082               1 :       if (_release)
    2083                 :       {
    2084                 :          ASSERT(_data != NULL) ;
    2085               0 :          delete [] _data ;
    2086                 :       }
    2087                 : 
    2088               1 :       _max = seq._length ;
    2089               1 :       _data = new CORBA::ULongLong[_max] ;
    2090               1 :       _release = true ;
    2091                 :    }
    2092                 : 
    2093               2 :    _length = seq._length ;
    2094                 : 
    2095               2 :    if (_length != 0)
    2096                 :    {
    2097                 :       memcpy(_data,
    2098                 :              seq._data,
    2099               2 :              _length * sizeof(CORBA::ULongLong)) ;
    2100                 :    }
    2101                 : 
    2102                 :    return *this ;
    2103                 : }
    2104                 : 
    2105                 : CORBA::ULong
    2106              15 : CORBAULongLongSeq::maximum() const
    2107                 : {
    2108                 :    return _max ;
    2109                 : }
    2110                 : 
    2111                 : void
    2112               2 : CORBAULongLongSeq::length(CORBA::ULong len)
    2113                 : {
    2114               2 :    if (_max < len)
    2115                 :    {
    2116               1 :       CORBA::ULongLong* new_data = new CORBA::ULongLong[len] ;
    2117                 : 
    2118               1 :       if (_length != 0)
    2119                 :       {
    2120                 :          memcpy(new_data,
    2121                 :                 _data,
    2122               1 :                 _length * sizeof (CORBA::ULongLong)) ;
    2123                 :       }
    2124                 : 
    2125               1 :       if (_release)
    2126                 :       {
    2127               1 :          delete [] _data ;
    2128                 :       }
    2129                 : 
    2130               1 :       _data = new_data ;
    2131               1 :       _max = len ;
    2132               1 :       _release = true ;
    2133                 :    }
    2134                 : 
    2135               2 :    if (len > _length)
    2136                 :    {
    2137               2 :       _length = len ;
    2138                 :    }
    2139                 : }
    2140                 : 
    2141                 : CORBA::ULong
    2142              15 : CORBAULongLongSeq::length() const
    2143                 : {
    2144                 :    return _length ;
    2145                 : }
    2146                 : 
    2147                 : CORBA::ULongLong&
    2148              91 : CORBAULongLongSeq::operator[] (CORBA::ULong index)
    2149                 : {
    2150                 :    ASSERT(index < _length) ;
    2151                 :    return _data[index] ;
    2152                 : }
    2153                 : 
    2154                 : const CORBA::ULongLong&
    2155               0 : CORBAULongLongSeq::operator[] (CORBA::ULong index) const
    2156                 : {
    2157                 :    ASSERT(index < _length) ;
    2158                 :    return _data[index] ;
    2159                 : }
    2160                 : 
    2161                 : CORBA::Boolean
    2162              15 : CORBAULongLongSeq::release() const
    2163                 : {
    2164                 :    return _release ;
    2165                 : }
    2166                 : 
    2167                 : void
    2168                 : CORBAULongLongSeq::replace(
    2169                 :    CORBA::ULong max,
    2170                 :    CORBA::ULong length,
    2171                 :    CORBA::ULongLong* data,
    2172               3 :    CORBA::Boolean release)
    2173                 : {
    2174                 :    ASSERT(length <= max) ;
    2175                 :    ASSERT((data != NULL) || (! release)) ;
    2176                 :    ASSERT((max != 0) || (! release)) ;
    2177                 : 
    2178               3 :    if (_release)
    2179                 :    {
    2180               0 :       delete [] _data ;
    2181                 :    }
    2182                 : 
    2183               3 :    _max = max ;
    2184               3 :    _length = length ;
    2185               3 :    _data = data ;
    2186               3 :    _release = release ;
    2187                 : }
    2188                 : 
    2189                 : CORBA::ULongLong*
    2190              16 : CORBAULongLongSeq::get_buffer(CORBA::Boolean orphan)
    2191                 : {
    2192              16 :    CORBA::ULongLong* buf = _data ;
    2193                 : 
    2194              16 :    if (orphan)
    2195                 :    {
    2196               1 :       _max = 0 ;
    2197               1 :       _length = 0 ;
    2198               1 :       _data = NULL ;
    2199               1 :       _release = false ;
    2200                 :    }
    2201                 : 
    2202                 :    return buf ;
    2203                 : }
    2204                 : 
    2205                 : const CORBA::ULongLong*
    2206              15 : CORBAULongLongSeq::get_buffer(void) const
    2207                 : {
    2208                 :    return _data ;
    2209                 : }
    2210                 : 
    2211                 : void
    2212               0 : CORBAULongLongSeq::cdr(YAORB::CDR* cdrs)
    2213                 : {
    2214                 :    ASSERT(cdrs != NULL) ;
    2215                 : 
    2216               0 :    cdrs->cdr_ULong(& _length) ;
    2217                 : 
    2218               0 :    if (_length > _max)
    2219                 :    {
    2220               0 :       if (_release)
    2221                 :       {
    2222               0 :          delete [] _data ;
    2223                 :       }
    2224                 : 
    2225               0 :       _max = _length ;
    2226               0 :       _data = new CORBA::ULongLong[_max] ;
    2227               0 :       _release = true ;
    2228                 :    }
    2229                 : 
    2230               0 :    cdrs->cdr_ULongLongArray(_data, _length) ;
    2231                 : }
    2232                 : 
    2233                 : //=============================================================================
    2234                 : // Implementation of CORBAFloatSeq
    2235                 : //=============================================================================
    2236                 : 
    2237               1 : CORBAFloatSeq::CORBAFloatSeq()
    2238                 :  : _max(0),
    2239                 :    _length(0),
    2240                 :    _data(NULL),
    2241               1 :    _release(false)
    2242                 : {
    2243                 : }
    2244                 : 
    2245               1 : CORBAFloatSeq::CORBAFloatSeq(CORBA::ULong max)
    2246                 :  : _max(max),
    2247                 :    _length(max),
    2248                 :    _data(NULL),
    2249               1 :    _release(true)
    2250                 : {
    2251                 :    ASSERT(max != 0) ;
    2252                 : 
    2253               1 :    _data = new CORBA::Float[_max] ;
    2254                 : }
    2255                 : 
    2256                 : CORBAFloatSeq::CORBAFloatSeq(
    2257                 :    CORBA::ULong max,
    2258                 :    CORBA::ULong length,
    2259                 :    CORBA::Float* data,
    2260               2 :    CORBA::Boolean release)
    2261                 :  : _max(max),
    2262                 :    _length(length),
    2263                 :    _data(data),
    2264               2 :    _release(release)
    2265                 : {
    2266                 :    ASSERT(length <= max) ;
    2267                 :    ASSERT((data != NULL) || (! release)) ;
    2268                 :    ASSERT((max != 0) || (! release)) ;
    2269                 : }
    2270                 : 
    2271               2 : CORBAFloatSeq::CORBAFloatSeq(const CORBAFloatSeq& seq)
    2272                 :  : _max(seq._max),
    2273                 :    _length(seq._length),
    2274                 :    _data(NULL),
    2275               2 :    _release(false)
    2276                 : {
    2277               2 :    if (_max != 0)
    2278                 :    {
    2279               1 :       _data = new CORBA::Float[_max] ;
    2280               1 :       _release = true ;
    2281                 : 
    2282                 :       memcpy(_data,
    2283                 :              seq._data,
    2284               1 :              _length * sizeof(CORBA::Float)) ;
    2285                 :    }
    2286                 : }
    2287                 : 
    2288               6 : CORBAFloatSeq::~CORBAFloatSeq()
    2289                 : {
    2290               6 :    if (_release)
    2291                 :    {
    2292                 :       ASSERT(_data != NULL) ;
    2293               3 :       delete [] _data ;
    2294                 :    }
    2295               3 : }
    2296                 : 
    2297                 : CORBAFloatSeq&
    2298               2 : CORBAFloatSeq::operator=(const CORBAFloatSeq& seq)
    2299                 : {
    2300               2 :    if (_max < seq._length)
    2301                 :    {
    2302               1 :       if (_release)
    2303                 :       {
    2304                 :          ASSERT(_data != NULL) ;
    2305               0 :          delete [] _data ;
    2306                 :       }
    2307                 : 
    2308               1 :       _max = seq._length ;
    2309               1 :       _data = new CORBA::Float[_max] ;
    2310               1 :       _release = true ;
    2311                 :    }
    2312                 : 
    2313               2 :    _length = seq._length ;
    2314                 : 
    2315               2 :    if (_length != 0)
    2316                 :    {
    2317                 :       memcpy(_data,
    2318                 :              seq._data,
    2319               2 :              _length * sizeof(CORBA::Float)) ;
    2320                 :    }
    2321                 : 
    2322                 :    return *this ;
    2323                 : }
    2324                 : 
    2325                 : CORBA::ULong
    2326              15 : CORBAFloatSeq::maximum() const
    2327                 : {
    2328                 :    return _max ;
    2329                 : }
    2330                 : 
    2331                 : void
    2332               2 : CORBAFloatSeq::length(CORBA::ULong len)
    2333                 : {
    2334               2 :    if (_max < len)
    2335                 :    {
    2336               1 :       CORBA::Float* new_data = new CORBA::Float[len] ;
    2337                 : 
    2338               1 :       if (_length != 0)
    2339                 :       {
    2340                 :          memcpy(new_data,
    2341                 :                 _data,
    2342               1 :                 _length * sizeof (CORBA::Float)) ;
    2343                 :       }
    2344                 : 
    2345               1 :       if (_release)
    2346                 :       {
    2347               1 :          delete [] _data ;
    2348                 :       }
    2349                 : 
    2350               1 :       _data = new_data ;
    2351               1 :       _max = len ;
    2352               1 :       _release = true ;
    2353                 :    }
    2354                 : 
    2355               2 :    if (len > _length)
    2356                 :    {
    2357               2 :       _length = len ;
    2358                 :    }
    2359                 : }
    2360                 : 
    2361                 : CORBA::ULong
    2362              15 : CORBAFloatSeq::length() const
    2363                 : {
    2364                 :    return _length ;
    2365                 : }
    2366                 : 
    2367                 : CORBA::Float&
    2368              83 : CORBAFloatSeq::operator[] (CORBA::ULong index)
    2369                 : {
    2370                 :    ASSERT(index < _length) ;
    2371                 :    return _data[index] ;
    2372                 : }
    2373                 : 
    2374                 : const CORBA::Float&
    2375               0 : CORBAFloatSeq::operator[] (CORBA::ULong index) const
    2376                 : {
    2377                 :    ASSERT(index < _length) ;
    2378                 :    return _data[index] ;
    2379                 : }
    2380                 : 
    2381                 : CORBA::Boolean
    2382              15 : CORBAFloatSeq::release() const
    2383                 : {
    2384                 :    return _release ;
    2385                 : }
    2386                 : 
    2387                 : void
    2388                 : CORBAFloatSeq::replace(
    2389                 :    CORBA::ULong max,
    2390                 :    CORBA::ULong length,
    2391                 :    CORBA::Float* data,
    2392               3 :    CORBA::Boolean release)
    2393                 : {
    2394                 :    ASSERT(length <= max) ;
    2395                 :    ASSERT((data != NULL) || (! release)) ;
    2396                 :    ASSERT((max != 0) || (! release)) ;
    2397                 : 
    2398               3 :    if (_release)
    2399                 :    {
    2400               0 :       delete [] _data ;
    2401                 :    }
    2402                 : 
    2403               3 :    _max = max ;
    2404               3 :    _length = length ;
    2405               3 :    _data = data ;
    2406               3 :    _release = release ;
    2407                 : }
    2408                 : 
    2409                 : CORBA::Float*
    2410              16 : CORBAFloatSeq::get_buffer(CORBA::Boolean orphan)
    2411                 : {
    2412              16 :    CORBA::Float* buf = _data ;
    2413                 : 
    2414              16 :    if (orphan)
    2415                 :    {
    2416               1 :       _max = 0 ;
    2417               1 :       _length = 0 ;
    2418               1 :       _data = NULL ;
    2419               1 :       _release = false ;
    2420                 :    }
    2421                 : 
    2422                 :    return buf ;
    2423                 : }
    2424                 : 
    2425                 : const CORBA::Float*
    2426              15 : CORBAFloatSeq::get_buffer(void) const
    2427                 : {
    2428                 :    return _data ;
    2429                 : }
    2430                 : 
    2431                 : void
    2432               0 : CORBAFloatSeq::cdr(YAORB::CDR* cdrs)
    2433                 : {
    2434                 :    ASSERT(cdrs != NULL) ;
    2435                 : 
    2436               0 :    cdrs->cdr_ULong(& _length) ;
    2437                 : 
    2438               0 :    if (_length > _max)
    2439                 :    {
    2440               0 :       if (_release)
    2441                 :       {
    2442               0 :          delete [] _data ;
    2443                 :       }
    2444                 : 
    2445               0 :       _max = _length ;
    2446               0 :       _data = new CORBA::Float[_max] ;
    2447               0 :       _release = true ;
    2448                 :    }
    2449                 : 
    2450               0 :    cdrs->cdr_FloatArray(_data, _length) ;
    2451                 : }
    2452                 : 
    2453                 : //=============================================================================
    2454                 : // Implementation of CORBADoubleSeq
    2455                 : //=============================================================================
    2456                 : 
    2457               1 : CORBADoubleSeq::CORBADoubleSeq()
    2458                 :  : _max(0),
    2459                 :    _length(0),
    2460                 :    _data(NULL),
    2461               1 :    _release(false)
    2462                 : {
    2463                 : }
    2464                 : 
    2465               1 : CORBADoubleSeq::CORBADoubleSeq(CORBA::ULong max)
    2466                 :  : _max(max),
    2467                 :    _length(max),
    2468                 :    _data(NULL),
    2469               1 :    _release(true)
    2470                 : {
    2471                 :    ASSERT(max != 0) ;
    2472                 : 
    2473               1 :    _data = new CORBA::Double[_max] ;
    2474                 : }
    2475                 : 
    2476                 : CORBADoubleSeq::CORBADoubleSeq(
    2477                 :    CORBA::ULong max,
    2478                 :    CORBA::ULong length,
    2479                 :    CORBA::Double* data,
    2480               2 :    CORBA::Boolean release)
    2481                 :  : _max(max),
    2482                 :    _length(length),
    2483                 :    _data(data),
    2484               2 :    _release(release)
    2485                 : {
    2486                 :    ASSERT(length <= max) ;
    2487                 :    ASSERT((data != NULL) || (! release)) ;
    2488                 :    ASSERT((max != 0) || (! release)) ;
    2489                 : }
    2490                 : 
    2491               2 : CORBADoubleSeq::CORBADoubleSeq(const CORBADoubleSeq& seq)
    2492                 :  : _max(seq._max),
    2493                 :    _length(seq._length),
    2494                 :    _data(NULL),
    2495               2 :    _release(false)
    2496                 : {
    2497               2 :    if (_max != 0)
    2498                 :    {
    2499               1 :       _data = new CORBA::Double[_max] ;
    2500               1 :       _release = true ;
    2501                 : 
    2502                 :       memcpy(_data,
    2503                 :              seq._data,
    2504               1 :              _length * sizeof(CORBA::Double)) ;
    2505                 :    }
    2506                 : }
    2507                 : 
    2508               6 : CORBADoubleSeq::~CORBADoubleSeq()
    2509                 : {
    2510               6 :    if (_release)
    2511                 :    {
    2512                 :       ASSERT(_data != NULL) ;
    2513               3 :       delete [] _data ;
    2514                 :    }
    2515               3 : }
    2516                 : 
    2517                 : CORBADoubleSeq&
    2518               2 : CORBADoubleSeq::operator=(const CORBADoubleSeq& seq)
    2519                 : {
    2520               2 :    if (_max < seq._length)
    2521                 :    {
    2522               1 :       if (_release)
    2523                 :       {
    2524                 :          ASSERT(_data != NULL) ;
    2525               0 :          delete [] _data ;
    2526                 :       }
    2527                 : 
    2528               1 :       _max = seq._length ;
    2529               1 :       _data = new CORBA::Double[_max] ;
    2530               1 :       _release = true ;
    2531                 :    }
    2532                 : 
    2533               2 :    _length = seq._length ;
    2534                 : 
    2535               2 :    if (_length != 0)
    2536                 :    {
    2537                 :       memcpy(_data,
    2538                 :              seq._data,
    2539               2 :              _length * sizeof(CORBA::Double)) ;
    2540                 :    }
    2541                 : 
    2542                 :    return *this ;
    2543                 : }
    2544                 : 
    2545                 : CORBA::ULong
    2546              15 : CORBADoubleSeq::maximum() const
    2547                 : {
    2548                 :    return _max ;
    2549                 : }
    2550                 : 
    2551                 : void
    2552               2 : CORBADoubleSeq::length(CORBA::ULong len)
    2553                 : {
    2554               2 :    if (_max < len)
    2555                 :    {
    2556               1 :       CORBA::Double* new_data = new CORBA::Double[len] ;
    2557                 : 
    2558               1 :       if (_length != 0)
    2559                 :       {
    2560                 :          memcpy(new_data,
    2561                 :                 _data,
    2562               1 :                 _length * sizeof (CORBA::Double)) ;
    2563                 :       }
    2564                 : 
    2565               1 :       if (_release)
    2566                 :       {
    2567               1 :          delete [] _data ;
    2568                 :       }
    2569                 : 
    2570               1 :       _data = new_data ;
    2571               1 :       _max = len ;
    2572               1 :       _release = true ;
    2573                 :    }
    2574                 : 
    2575               2 :    if (len > _length)
    2576                 :    {
    2577               2 :       _length = len ;
    2578                 :    }
    2579                 : }
    2580                 : 
    2581                 : CORBA::ULong
    2582              15 : CORBADoubleSeq::length() const
    2583                 : {
    2584                 :    return _length ;
    2585                 : }
    2586                 : 
    2587                 : CORBA::Double&
    2588              83 : CORBADoubleSeq::operator[] (CORBA::ULong index)
    2589                 : {
    2590                 :    ASSERT(index < _length) ;
    2591                 :    return _data[index] ;
    2592                 : }
    2593                 : 
    2594                 : const CORBA::Double&
    2595               0 : CORBADoubleSeq::operator[] (CORBA::ULong index) const
    2596                 : {
    2597                 :    ASSERT(index < _length) ;
    2598                 :    return _data[index] ;
    2599                 : }
    2600                 : 
    2601                 : CORBA::Boolean
    2602              15 : CORBADoubleSeq::release() const
    2603                 : {
    2604                 :    return _release ;
    2605                 : }
    2606                 : 
    2607                 : void
    2608                 : CORBADoubleSeq::replace(
    2609                 :    CORBA::ULong max,
    2610                 :    CORBA::ULong length,
    2611                 :    CORBA::Double* data,
    2612               3 :    CORBA::Boolean release)
    2613                 : {
    2614                 :    ASSERT(length <= max) ;
    2615                 :    ASSERT((data != NULL) || (! release)) ;
    2616                 :    ASSERT((max != 0) || (! release)) ;
    2617                 : 
    2618               3 :    if (_release)
    2619                 :    {
    2620               0 :       delete [] _data ;
    2621                 :    }
    2622                 : 
    2623               3 :    _max = max ;
    2624               3 :    _length = length ;
    2625               3 :    _data = data ;
    2626               3 :    _release = release ;
    2627                 : }
    2628                 : 
    2629                 : CORBA::Double*
    2630              16 : CORBADoubleSeq::get_buffer(CORBA::Boolean orphan)
    2631                 : {
    2632              16 :    CORBA::Double* buf = _data ;
    2633                 : 
    2634              16 :    if (orphan)
    2635                 :    {
    2636               1 :       _max = 0 ;
    2637               1 :       _length = 0 ;
    2638               1 :       _data = NULL ;
    2639               1 :       _release = false ;
    2640                 :    }
    2641                 : 
    2642                 :    return buf ;
    2643                 : }
    2644                 : 
    2645                 : const CORBA::Double*
    2646              15 : CORBADoubleSeq::get_buffer(void) const
    2647                 : {
    2648                 :    return _data ;
    2649                 : }
    2650                 : 
    2651                 : void
    2652               0 : CORBADoubleSeq::cdr(YAORB::CDR* cdrs)
    2653                 : {
    2654                 :    ASSERT(cdrs != NULL) ;
    2655                 : 
    2656               0 :    cdrs->cdr_ULong(& _length) ;
    2657                 : 
    2658               0 :    if (_length > _max)
    2659                 :    {
    2660               0 :       if (_release)
    2661                 :       {
    2662               0 :          delete [] _data ;
    2663                 :       }
    2664                 : 
    2665               0 :       _max = _length ;
    2666               0 :       _data = new CORBA::Double[_max] ;
    2667               0 :       _release = true ;
    2668                 :    }
    2669                 : 
    2670               0 :    cdrs->cdr_DoubleArray(_data, _length) ;
    2671                 : }
    2672                 : 
    2673                 : //=============================================================================
    2674                 : // Implementation of CORBALongDoubleSeq
    2675                 : //=============================================================================
    2676                 : 
    2677               1 : CORBALongDoubleSeq::CORBALongDoubleSeq()
    2678                 :  : _max(0),
    2679                 :    _length(0),
    2680                 :    _data(NULL),
    2681               1 :    _release(false)
    2682                 : {
    2683                 : }
    2684                 : 
    2685               1 : CORBALongDoubleSeq::CORBALongDoubleSeq(CORBA::ULong max)
    2686                 :  : _max(max),
    2687                 :    _length(max),
    2688                 :    _data(NULL),
    2689               1 :    _release(true)
    2690                 : {
    2691                 :    ASSERT(max != 0) ;
    2692                 : 
    2693               1 :    _data = new CORBA::LongDouble[_max] ;
    2694                 : }
    2695                 : 
    2696                 : CORBALongDoubleSeq::CORBALongDoubleSeq(
    2697                 :    CORBA::ULong max,
    2698                 :    CORBA::ULong length,
    2699                 :    CORBA::LongDouble* data,
    2700               2 :    CORBA::Boolean release)
    2701                 :  : _max(max),
    2702                 :    _length(length),
    2703                 :    _data(data),
    2704               2 :    _release(release)
    2705                 : {
    2706                 :    ASSERT(length <= max) ;
    2707                 :    ASSERT((data != NULL) || (! release)) ;
    2708                 :    ASSERT((max != 0) || (! release)) ;
    2709                 : }
    2710                 : 
    2711               2 : CORBALongDoubleSeq::CORBALongDoubleSeq(const CORBALongDoubleSeq& seq)
    2712                 :  : _max(seq._max),
    2713                 :    _length(seq._length),
    2714                 :    _data(NULL),
    2715               2 :    _release(false)
    2716                 : {
    2717               2 :    if (_max != 0)
    2718                 :    {
    2719               1 :       _data = new CORBA::LongDouble[_max] ;
    2720               1 :       _release = true ;
    2721                 : 
    2722                 :       memcpy(_data,
    2723                 :              seq._data,
    2724               1 :              _length * sizeof(CORBA::LongDouble)) ;
    2725                 :    }
    2726                 : }
    2727                 : 
    2728               6 : CORBALongDoubleSeq::~CORBALongDoubleSeq()
    2729                 : {
    2730               6 :    if (_release)
    2731                 :    {
    2732                 :       ASSERT(_data != NULL) ;
    2733               3 :       delete [] _data ;
    2734                 :    }
    2735               3 : }
    2736                 : 
    2737                 : CORBALongDoubleSeq&
    2738               2 : CORBALongDoubleSeq::operator=(const CORBALongDoubleSeq& seq)
    2739                 : {
    2740               2 :    if (_max < seq._length)
    2741                 :    {
    2742               1 :       if (_release)
    2743                 :       {
    2744                 :          ASSERT(_data != NULL) ;
    2745               0 :          delete [] _data ;
    2746                 :       }
    2747                 : 
    2748               1 :       _max = seq._length ;
    2749               1 :       _data = new CORBA::LongDouble[_max] ;
    2750               1 :       _release = true ;
    2751                 :    }
    2752                 : 
    2753               2 :    _length = seq._length ;
    2754                 : 
    2755               2 :    if (_length != 0)
    2756                 :    {
    2757                 :       memcpy(_data,
    2758                 :              seq._data,
    2759               2 :              _length * sizeof(CORBA::LongDouble)) ;
    2760                 :    }
    2761                 : 
    2762                 :    return *this ;
    2763                 : }
    2764                 : 
    2765                 : CORBA::ULong
    2766              15 : CORBALongDoubleSeq::maximum() const
    2767                 : {
    2768                 :    return _max ;
    2769                 : }
    2770                 : 
    2771                 : void
    2772               2 : CORBALongDoubleSeq::length(CORBA::ULong len)
    2773                 : {
    2774               2 :    if (_max < len)
    2775                 :    {
    2776               1 :       CORBA::LongDouble* new_data = new CORBA::LongDouble[len] ;
    2777                 : 
    2778               1 :       if (_length != 0)
    2779                 :       {
    2780                 :          memcpy(new_data,
    2781                 :                 _data,
    2782               1 :                 _length * sizeof (CORBA::LongDouble)) ;
    2783                 :       }
    2784                 : 
    2785               1 :       if (_release)
    2786                 :       {
    2787               1 :          delete [] _data ;
    2788                 :       }
    2789                 : 
    2790               1 :       _data = new_data ;
    2791               1 :       _max = len ;
    2792               1 :       _release = true ;
    2793                 :    }
    2794                 : 
    2795               2 :    if (len > _length)
    2796                 :    {
    2797               2 :       _length = len ;
    2798                 :    }
    2799                 : }
    2800                 : 
    2801                 : CORBA::ULong
    2802              15 : CORBALongDoubleSeq::length() const
    2803                 : {
    2804                 :    return _length ;
    2805                 : }
    2806                 : 
    2807                 : CORBA::LongDouble&
    2808              83 : CORBALongDoubleSeq::operator[] (CORBA::ULong index)
    2809                 : {
    2810                 :    ASSERT(index < _length) ;
    2811                 :    return _data[index] ;
    2812                 : }
    2813                 : 
    2814                 : const CORBA::LongDouble&
    2815               0 : CORBALongDoubleSeq::operator[] (CORBA::ULong index) const
    2816                 : {
    2817                 :    ASSERT(index < _length) ;
    2818                 :    return _data[index] ;
    2819                 : }
    2820                 : 
    2821                 : CORBA::Boolean
    2822              15 : CORBALongDoubleSeq::release() const
    2823                 : {
    2824                 :    return _release ;
    2825                 : }
    2826                 : 
    2827                 : void
    2828                 : CORBALongDoubleSeq::replace(
    2829                 :    CORBA::ULong max,
    2830                 :    CORBA::ULong length,
    2831                 :    CORBA::LongDouble* data,
    2832               3 :    CORBA::Boolean release)
    2833                 : {
    2834                 :    ASSERT(length <= max) ;
    2835                 :    ASSERT((data != NULL) || (! release)) ;
    2836                 :    ASSERT((max != 0) || (! release)) ;
    2837                 : 
    2838               3 :    if (_release)
    2839                 :    {
    2840               0 :       delete [] _data ;
    2841                 :    }
    2842                 : 
    2843               3 :    _max = max ;
    2844               3 :    _length = length ;
    2845               3 :    _data = data ;
    2846               3 :    _release = release ;
    2847                 : }
    2848                 : 
    2849                 : CORBA::LongDouble*
    2850              16 : CORBALongDoubleSeq::get_buffer(CORBA::Boolean orphan)
    2851                 : {
    2852              16 :    CORBA::LongDouble* buf = _data ;
    2853                 : 
    2854              16 :    if (orphan)
    2855                 :    {
    2856               1 :       _max = 0 ;
    2857               1 :       _length = 0 ;
    2858               1 :       _data = NULL ;
    2859               1 :       _release = false ;
    2860                 :    }
    2861                 : 
    2862                 :    return buf ;
    2863                 : }
    2864                 : 
    2865                 : const CORBA::LongDouble*
    2866              15 : CORBALongDoubleSeq::get_buffer(void) const
    2867                 : {
    2868                 :    return _data ;
    2869                 : }
    2870                 : 
    2871                 : void
    2872               0 : CORBALongDoubleSeq::cdr(YAORB::CDR* cdrs)
    2873                 : {
    2874                 :    ASSERT(cdrs != NULL) ;
    2875                 : 
    2876               0 :    cdrs->cdr_ULong(& _length) ;
    2877                 : 
    2878               0 :    if (_length > _max)
    2879                 :    {
    2880               0 :       if (_release)
    2881                 :       {
    2882               0 :          delete [] _data ;
    2883                 :       }
    2884                 : 
    2885               0 :       _max = _length ;
    2886               0 :       _data = new CORBA::LongDouble[_max] ;
    2887               0 :       _release = true ;
    2888                 :    }
    2889                 : 
    2890               0 :    cdrs->cdr_LongDoubleArray(_data, _length) ;
    2891                 : }
    2892                 : 
    2893                 : //=============================================================================
    2894                 : // Implementation of CORBAVoidSequence
    2895                 : //=============================================================================
    2896                 : 
    2897                 : CORBAVoidSequence::CORBAVoidSequence(
    2898                 :    int TSize,
    2899                 :    TAlloc allocFn,
    2900                 :    TCopy copyFn,
    2901                 :    TCDR cdrFn,
    2902              25 :    TFree freeFn)
    2903                 :  : _TSize(TSize),
    2904                 :    _allocFn(allocFn),
    2905                 :    _copyFn(copyFn),
    2906                 :    _cdrFn(cdrFn),
    2907                 :    _freeFn(freeFn),
    2908                 :    _max(0),
    2909                 :    _length(0),
    2910                 :    _data(NULL),
    2911              25 :    _release(false)
    2912                 : {
    2913                 :    ASSERT(_allocFn != NULL) ;
    2914                 :    ASSERT(_copyFn != NULL) ;
    2915                 :    ASSERT(_cdrFn != NULL) ;
    2916                 :    ASSERT(_freeFn != NULL) ;
    2917                 : }
    2918                 : 
    2919                 : CORBAVoidSequence::CORBAVoidSequence(
    2920                 :    int TSize,
    2921                 :    TAlloc allocFn,
    2922                 :    TCopy copyFn,
    2923                 :    TCDR cdrFn,
    2924                 :    TFree freeFn,
    2925               2 :    CORBA::ULong max)
    2926                 :  : _TSize(TSize),
    2927                 :    _allocFn(allocFn),
    2928                 :    _copyFn(copyFn),
    2929                 :    _cdrFn(cdrFn),
    2930                 :    _freeFn(freeFn),
    2931                 :    _max(max),
    2932                 :    _length(max),
    2933                 :    _data(NULL),
    2934               2 :    _release(true)
    2935                 : {
    2936                 :    ASSERT(max != 0) ;
    2937                 :    ASSERT(_allocFn != NULL) ;
    2938                 :    ASSERT(_copyFn != NULL) ;
    2939                 :    ASSERT(_cdrFn != NULL) ;
    2940                 :    ASSERT(_freeFn != NULL) ;
    2941                 : 
    2942               2 :    _data = (*_allocFn)(_max) ;
    2943                 : }
    2944                 : 
    2945                 : CORBAVoidSequence::CORBAVoidSequence(
    2946                 :    int TSize,
    2947                 :    TAlloc allocFn,
    2948                 :    TCopy copyFn,
    2949                 :    TCDR cdrFn,
    2950                 :    TFree freeFn,
    2951                 :    CORBA::ULong max,
    2952                 :    CORBA::ULong length,
    2953                 :    void* data,
    2954               5 :    CORBA::Boolean release)
    2955                 :  : _TSize(TSize),
    2956                 :    _allocFn(allocFn),
    2957                 :    _copyFn(copyFn),
    2958                 :    _cdrFn(cdrFn),
    2959                 :    _freeFn(freeFn),
    2960                 :    _max(max),
    2961                 :    _length(length),
    2962                 :    _data(data),
    2963               5 :    _release(release)
    2964                 : {
    2965                 :    ASSERT(_allocFn != NULL) ;
    2966                 :    ASSERT(_copyFn != NULL) ;
    2967                 :    ASSERT(_cdrFn != NULL) ;
    2968                 :    ASSERT(_freeFn != NULL) ;
    2969                 : }
    2970                 : 
    2971                 : CORBAVoidSequence::CORBAVoidSequence(
    2972                 :    int TSize,
    2973                 :    TAlloc allocFn,
    2974                 :    TCopy copyFn,
    2975                 :    TCDR cdrFn,
    2976                 :    TFree freeFn,
    2977               5 :    const CORBAVoidSequence& seq)
    2978                 :  : _TSize(TSize),
    2979                 :    _allocFn(allocFn),
    2980                 :    _copyFn(copyFn),
    2981                 :    _cdrFn(cdrFn),
    2982                 :    _freeFn(freeFn),
    2983                 :    _max(seq._max),
    2984                 :    _length(seq._length),
    2985                 :    _data(NULL),
    2986               5 :    _release(false)
    2987                 : {
    2988                 :    ASSERT(_TSize == seq._TSize) ;
    2989                 :    ASSERT(_allocFn != NULL) ;
    2990                 :    ASSERT(_copyFn != NULL) ;
    2991                 :    ASSERT(_cdrFn != NULL) ;
    2992                 :    ASSERT(_freeFn != NULL) ;
    2993                 : 
    2994               5 :    if (_max != 0)
    2995                 :    {
    2996               5 :       _data = (*_allocFn)(_max) ;
    2997               5 :       _release = true ;
    2998                 : 
    2999               5 :       CORBA::Octet *src = (CORBA::Octet*) seq._data ;
    3000               5 :       CORBA::Octet *dst = (CORBA::Octet*) _data ;
    3001                 :       unsigned int index ;
    3002                 : 
    3003              37 :       for (index = 0 ;
    3004                 :            index < _length ;
    3005                 :            index++, src += seq._TSize, dst += _TSize)
    3006                 :       {
    3007              32 :          (*_copyFn)(src, dst) ;
    3008                 :       }
    3009                 :    }
    3010                 : }
    3011                 : 
    3012                 : CORBAVoidSequence&
    3013                 : CORBAVoidSequence::operator=(
    3014               0 :    const CORBAVoidSequence& seq)
    3015                 : {
    3016                 :    ASSERT(_TSize == seq._TSize) ;
    3017                 : 
    3018               0 :    if (_max < seq._length)
    3019                 :    {
    3020               0 :       if (_release)
    3021                 :       {
    3022                 :          ASSERT(_data != NULL) ;
    3023               0 :          (*_freeFn)(_data) ;
    3024                 :       }
    3025                 : 
    3026               0 :       _max = seq._length ;
    3027               0 :       _data = (*_allocFn)(_max) ;
    3028               0 :       _release = true ;
    3029                 :    }
    3030                 : 
    3031               0 :    _length = seq._length ;
    3032                 : 
    3033               0 :    if (_length != 0)
    3034                 :    {
    3035               0 :       CORBA::Octet *src = (CORBA::Octet*) seq._data ;
    3036               0 :       CORBA::Octet *dst = (CORBA::Octet*) _data ;
    3037                 :       unsigned int index ;
    3038                 : 
    3039               0 :       for (index = 0 ;
    3040                 :            index < _length ;
    3041                 :            index++, src += seq._TSize, dst += _TSize)
    3042                 :       {
    3043               0 :          (*_copyFn)(src, dst) ;
    3044                 :       }
    3045                 :    }
    3046                 : 
    3047                 :    return *this ;
    3048                 : }
    3049                 : 
    3050              28 : CORBAVoidSequence::~CORBAVoidSequence()
    3051                 : {
    3052              28 :    if (_release)
    3053                 :    {
    3054                 :       ASSERT(_data != NULL) ;
    3055               6 :       (*_freeFn)(_data) ;
    3056                 :    }
    3057              22 : }
    3058                 : 
    3059              58 : CORBA::ULong CORBAVoidSequence::length(void) const
    3060                 : {
    3061                 :    return _length ;
    3062                 : }
    3063                 : 
    3064              17 : void CORBAVoidSequence::length(CORBA::ULong len)
    3065                 : {
    3066              17 :    if (_max < len)
    3067                 :    {
    3068                 :       CORBA::ULong new_len = len ;
    3069                 :       void* new_data = NULL ;
    3070               4 :       new_data = (*_allocFn)(new_len) ;
    3071                 : 
    3072               4 :       if (_length != 0)
    3073                 :       {
    3074               0 :          CORBA::Octet *src = (CORBA::Octet*) _data ;
    3075               0 :          CORBA::Octet *dst = (CORBA::Octet*) new_data ;
    3076                 :          unsigned int index ;
    3077                 : 
    3078               0 :          for (index = 0 ;
    3079                 :               index < _length ;
    3080                 :               index++, src += _TSize, dst += _TSize)
    3081                 :          {
    3082               0 :             (*_copyFn)(src, dst) ;
    3083                 :          }
    3084                 :       }
    3085                 : 
    3086               4 :       if (_release)
    3087                 :       {
    3088                 :          ASSERT(_data != NULL) ;
    3089               0 :          (*_freeFn)(_data) ;
    3090                 :       }
    3091                 : 
    3092               4 :       _data = new_data ;
    3093               4 :       _max = new_len ;
    3094               4 :       _release = true ;
    3095                 :    }
    3096                 : 
    3097              17 :    _length = len ;
    3098                 : }
    3099                 : 
    3100              54 : void* CORBAVoidSequence::operator[](CORBA::ULong index) const
    3101                 : {
    3102              54 :    CORBA::Octet *elem = (CORBA::Octet*) _data ;
    3103                 : 
    3104                 :    ASSERT(index < _max) ;
    3105                 : 
    3106                 :    elem += index * _TSize ;
    3107                 :    return elem ;
    3108                 : }
    3109                 : 
    3110              19 : void CORBAVoidSequence::cdr(YAORB::CDR *cdrs)
    3111                 : {
    3112                 :    ASSERT(cdrs != NULL) ;
    3113              19 :    CORBA::ULong len = 0 ;
    3114                 : 
    3115              19 :    switch (cdrs->Op())
    3116                 :    {
    3117                 :       case YAORB::CDR_READ :
    3118                 :       {
    3119              15 :          cdrs->cdr_ULong(& len) ;
    3120              15 :          length(len) ;
    3121              15 :          break ;
    3122                 :       }
    3123                 :       case YAORB::CDR_WRITE :
    3124                 :       {
    3125               4 :          len = length() ;
    3126               4 :          cdrs->cdr_ULong(& len) ;
    3127                 :          break ;
    3128                 :       }
    3129                 :    }
    3130                 : 
    3131                 :    unsigned int index ;
    3132              19 :    CORBA::Octet *elem = (CORBA::Octet*) _data ;
    3133                 : 
    3134              23 :    for (index = 0 ;
    3135                 :         index < _length ;
    3136                 :         index++, elem += _TSize)
    3137                 :    {
    3138               4 :       (*_cdrFn)(cdrs, elem) ;
    3139                 :    }
    3140                 : }
    3141                 : 
    3142               0 : void CORBAVoidSequence::cdr(YAORB::CDR *cdrs) const
    3143                 : {
    3144                 :    ASSERT(cdrs != NULL) ;
    3145                 :    ASSERT(cdrs->Op() == YAORB::CDR_WRITE) ;
    3146                 :    CORBAVoidSequence *that = (CORBAVoidSequence*) this ;
    3147               0 :    that->cdr(cdrs) ;
    3148                 : }
    3149                 : 

Generated by: LTP GCOV extension version 1.4