1*8a106958SDamjan Jovanovic /************************************************************** 2*8a106958SDamjan Jovanovic * 3*8a106958SDamjan Jovanovic * Licensed to the Apache Software Foundation (ASF) under one 4*8a106958SDamjan Jovanovic * or more contributor license agreements. See the NOTICE file 5*8a106958SDamjan Jovanovic * distributed with this work for additional information 6*8a106958SDamjan Jovanovic * regarding copyright ownership. The ASF licenses this file 7*8a106958SDamjan Jovanovic * to you under the Apache License, Version 2.0 (the 8*8a106958SDamjan Jovanovic * "License"); you may not use this file except in compliance 9*8a106958SDamjan Jovanovic * with the License. You may obtain a copy of the License at 10*8a106958SDamjan Jovanovic * 11*8a106958SDamjan Jovanovic * http://www.apache.org/licenses/LICENSE-2.0 12*8a106958SDamjan Jovanovic * 13*8a106958SDamjan Jovanovic * Unless required by applicable law or agreed to in writing, 14*8a106958SDamjan Jovanovic * software distributed under the License is distributed on an 15*8a106958SDamjan Jovanovic * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*8a106958SDamjan Jovanovic * KIND, either express or implied. See the License for the 17*8a106958SDamjan Jovanovic * specific language governing permissions and limitations 18*8a106958SDamjan Jovanovic * under the License. 19*8a106958SDamjan Jovanovic * 20*8a106958SDamjan Jovanovic *************************************************************/ 21*8a106958SDamjan Jovanovic 22*8a106958SDamjan Jovanovic 23*8a106958SDamjan Jovanovic 24*8a106958SDamjan Jovanovic #ifndef CSV_MBSTREAM_HXX 25*8a106958SDamjan Jovanovic #define CSV_MBSTREAM_HXX 26*8a106958SDamjan Jovanovic 27*8a106958SDamjan Jovanovic // USED SERVICES 28*8a106958SDamjan Jovanovic // BASE CLASSES 29*8a106958SDamjan Jovanovic #include <cosv/bstream.hxx> 30*8a106958SDamjan Jovanovic // COMPONENTS 31*8a106958SDamjan Jovanovic // PARAMETERS 32*8a106958SDamjan Jovanovic 33*8a106958SDamjan Jovanovic 34*8a106958SDamjan Jovanovic namespace csv 35*8a106958SDamjan Jovanovic { 36*8a106958SDamjan Jovanovic 37*8a106958SDamjan Jovanovic class mbstream : public bstream 38*8a106958SDamjan Jovanovic { 39*8a106958SDamjan Jovanovic public: 40*8a106958SDamjan Jovanovic // LIFECYCLE 41*8a106958SDamjan Jovanovic mbstream( 42*8a106958SDamjan Jovanovic uintt i_nSize); 43*8a106958SDamjan Jovanovic ~mbstream(); 44*8a106958SDamjan Jovanovic // OPERATIONS 45*8a106958SDamjan Jovanovic void resize( 46*8a106958SDamjan Jovanovic uintt i_nSize ); 47*8a106958SDamjan Jovanovic // INQUIRY 48*8a106958SDamjan Jovanovic uintt size() const; 49*8a106958SDamjan Jovanovic const void * data() const; 50*8a106958SDamjan Jovanovic 51*8a106958SDamjan Jovanovic private: 52*8a106958SDamjan Jovanovic // Interface bistream: 53*8a106958SDamjan Jovanovic virtual uintt do_read( 54*8a106958SDamjan Jovanovic void * out_pDest, 55*8a106958SDamjan Jovanovic uintt i_nNrofBytes); 56*8a106958SDamjan Jovanovic virtual bool inq_eod() const; 57*8a106958SDamjan Jovanovic // Interface bostream: 58*8a106958SDamjan Jovanovic virtual uintt do_write( 59*8a106958SDamjan Jovanovic const void * i_pSrc, 60*8a106958SDamjan Jovanovic uintt i_nNrofBytes); 61*8a106958SDamjan Jovanovic // Interface bstream: 62*8a106958SDamjan Jovanovic virtual uintt do_seek( 63*8a106958SDamjan Jovanovic intt i_nDistance, 64*8a106958SDamjan Jovanovic seek_dir i_eStartPoint = ::csv::beg ); 65*8a106958SDamjan Jovanovic virtual uintt inq_position() const; 66*8a106958SDamjan Jovanovic 67*8a106958SDamjan Jovanovic // DYN 68*8a106958SDamjan Jovanovic DYN char * dpOwnedMemorySpace; 69*8a106958SDamjan Jovanovic uintt nSize; 70*8a106958SDamjan Jovanovic uintt nCurPosition; 71*8a106958SDamjan Jovanovic }; 72*8a106958SDamjan Jovanovic 73*8a106958SDamjan Jovanovic 74*8a106958SDamjan Jovanovic // IMPLEMENTATION 75*8a106958SDamjan Jovanovic 76*8a106958SDamjan Jovanovic inline uintt size() const77*8a106958SDamjan Jovanovicmbstream::size() const 78*8a106958SDamjan Jovanovic { return nSize; } 79*8a106958SDamjan Jovanovic inline const void * data() const80*8a106958SDamjan Jovanovicmbstream::data() const 81*8a106958SDamjan Jovanovic { return dpOwnedMemorySpace; } 82*8a106958SDamjan Jovanovic 83*8a106958SDamjan Jovanovic 84*8a106958SDamjan Jovanovic } // namespace csv 85*8a106958SDamjan Jovanovic 86*8a106958SDamjan Jovanovic 87*8a106958SDamjan Jovanovic #endif 88