1*11c03c6dSDamjan Jovanovic /************************************************************** 2*11c03c6dSDamjan Jovanovic * 3*11c03c6dSDamjan Jovanovic * Licensed to the Apache Software Foundation (ASF) under one 4*11c03c6dSDamjan Jovanovic * or more contributor license agreements. See the NOTICE file 5*11c03c6dSDamjan Jovanovic * distributed with this work for additional information 6*11c03c6dSDamjan Jovanovic * regarding copyright ownership. The ASF licenses this file 7*11c03c6dSDamjan Jovanovic * to you under the Apache License, Version 2.0 (the 8*11c03c6dSDamjan Jovanovic * "License"); you may not use this file except in compliance 9*11c03c6dSDamjan Jovanovic * with the License. You may obtain a copy of the License at 10*11c03c6dSDamjan Jovanovic * 11*11c03c6dSDamjan Jovanovic * http://www.apache.org/licenses/LICENSE-2.0 12*11c03c6dSDamjan Jovanovic * 13*11c03c6dSDamjan Jovanovic * Unless required by applicable law or agreed to in writing, 14*11c03c6dSDamjan Jovanovic * software distributed under the License is distributed on an 15*11c03c6dSDamjan Jovanovic * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*11c03c6dSDamjan Jovanovic * KIND, either express or implied. See the License for the 17*11c03c6dSDamjan Jovanovic * specific language governing permissions and limitations 18*11c03c6dSDamjan Jovanovic * under the License. 19*11c03c6dSDamjan Jovanovic * 20*11c03c6dSDamjan Jovanovic *************************************************************/ 21*11c03c6dSDamjan Jovanovic 22*11c03c6dSDamjan Jovanovic 23*11c03c6dSDamjan Jovanovic 24*11c03c6dSDamjan Jovanovic #ifndef CSV_CSV_OSTREAM_HXX 25*11c03c6dSDamjan Jovanovic #define CSV_CSV_OSTREAM_HXX 26*11c03c6dSDamjan Jovanovic 27*11c03c6dSDamjan Jovanovic // USED SERVICES 28*11c03c6dSDamjan Jovanovic // BASE CLASSES 29*11c03c6dSDamjan Jovanovic // COMPONENTS 30*11c03c6dSDamjan Jovanovic // PARAMETERS 31*11c03c6dSDamjan Jovanovic 32*11c03c6dSDamjan Jovanovic 33*11c03c6dSDamjan Jovanovic 34*11c03c6dSDamjan Jovanovic #ifndef CSV_NO_IOSTREAMS 35*11c03c6dSDamjan Jovanovic 36*11c03c6dSDamjan Jovanovic #include <iostream> 37*11c03c6dSDamjan Jovanovic 38*11c03c6dSDamjan Jovanovic 39*11c03c6dSDamjan Jovanovic namespace csv 40*11c03c6dSDamjan Jovanovic { 41*11c03c6dSDamjan Jovanovic 42*11c03c6dSDamjan Jovanovic typedef std::ios ios; 43*11c03c6dSDamjan Jovanovic typedef std::ostream ostream; 44*11c03c6dSDamjan Jovanovic 45*11c03c6dSDamjan Jovanovic } // namespace csv 46*11c03c6dSDamjan Jovanovic 47*11c03c6dSDamjan Jovanovic 48*11c03c6dSDamjan Jovanovic #else 49*11c03c6dSDamjan Jovanovic 50*11c03c6dSDamjan Jovanovic #include <cosv/tpl/dyn.hxx> 51*11c03c6dSDamjan Jovanovic 52*11c03c6dSDamjan Jovanovic namespace csv 53*11c03c6dSDamjan Jovanovic { 54*11c03c6dSDamjan Jovanovic 55*11c03c6dSDamjan Jovanovic class StreamStr; 56*11c03c6dSDamjan Jovanovic 57*11c03c6dSDamjan Jovanovic class ios 58*11c03c6dSDamjan Jovanovic { 59*11c03c6dSDamjan Jovanovic public: 60*11c03c6dSDamjan Jovanovic enum seek_dir 61*11c03c6dSDamjan Jovanovic { 62*11c03c6dSDamjan Jovanovic beg=0, 63*11c03c6dSDamjan Jovanovic cur=1, 64*11c03c6dSDamjan Jovanovic end=2 65*11c03c6dSDamjan Jovanovic }; 66*11c03c6dSDamjan Jovanovic }; 67*11c03c6dSDamjan Jovanovic 68*11c03c6dSDamjan Jovanovic class ostream : public ios 69*11c03c6dSDamjan Jovanovic { 70*11c03c6dSDamjan Jovanovic public: 71*11c03c6dSDamjan Jovanovic typedef ostream self; 72*11c03c6dSDamjan Jovanovic 73*11c03c6dSDamjan Jovanovic virtual ~ostream(); 74*11c03c6dSDamjan Jovanovic 75*11c03c6dSDamjan Jovanovic self & operator<<( 76*11c03c6dSDamjan Jovanovic const char * i_s ); 77*11c03c6dSDamjan Jovanovic self & operator<<( 78*11c03c6dSDamjan Jovanovic char i_c ); 79*11c03c6dSDamjan Jovanovic self & operator<<( 80*11c03c6dSDamjan Jovanovic unsigned char i_c ); 81*11c03c6dSDamjan Jovanovic self & operator<<( 82*11c03c6dSDamjan Jovanovic signed char i_c ); 83*11c03c6dSDamjan Jovanovic 84*11c03c6dSDamjan Jovanovic self & operator<<( 85*11c03c6dSDamjan Jovanovic short i_n ); 86*11c03c6dSDamjan Jovanovic self & operator<<( 87*11c03c6dSDamjan Jovanovic unsigned short i_n ); 88*11c03c6dSDamjan Jovanovic self & operator<<( 89*11c03c6dSDamjan Jovanovic int i_n ); 90*11c03c6dSDamjan Jovanovic self & operator<<( 91*11c03c6dSDamjan Jovanovic unsigned int i_n ); 92*11c03c6dSDamjan Jovanovic self & operator<<( 93*11c03c6dSDamjan Jovanovic long i_n ); 94*11c03c6dSDamjan Jovanovic self & operator<<( 95*11c03c6dSDamjan Jovanovic unsigned long i_n ); 96*11c03c6dSDamjan Jovanovic 97*11c03c6dSDamjan Jovanovic self & operator<<( 98*11c03c6dSDamjan Jovanovic float i_n ); 99*11c03c6dSDamjan Jovanovic self & operator<<( 100*11c03c6dSDamjan Jovanovic double i_n ); 101*11c03c6dSDamjan Jovanovic 102*11c03c6dSDamjan Jovanovic self & seekp( 103*11c03c6dSDamjan Jovanovic intt i_nOffset, 104*11c03c6dSDamjan Jovanovic seek_dir i_eStart = ios::beg ); 105*11c03c6dSDamjan Jovanovic protected: 106*11c03c6dSDamjan Jovanovic ostream( 107*11c03c6dSDamjan Jovanovic uintt i_nStartSize ); 108*11c03c6dSDamjan Jovanovic const StreamStr & Data() const; 109*11c03c6dSDamjan Jovanovic 110*11c03c6dSDamjan Jovanovic private: 111*11c03c6dSDamjan Jovanovic Dyn<StreamStr> pData; 112*11c03c6dSDamjan Jovanovic }; 113*11c03c6dSDamjan Jovanovic 114*11c03c6dSDamjan Jovanovic 115*11c03c6dSDamjan Jovanovic 116*11c03c6dSDamjan Jovanovic inline const StreamStr & Data() const117*11c03c6dSDamjan Jovanovicostream::Data() const 118*11c03c6dSDamjan Jovanovic { return *pData; } 119*11c03c6dSDamjan Jovanovic 120*11c03c6dSDamjan Jovanovic 121*11c03c6dSDamjan Jovanovic } // namespace csv 122*11c03c6dSDamjan Jovanovic 123*11c03c6dSDamjan Jovanovic 124*11c03c6dSDamjan Jovanovic #endif 125*11c03c6dSDamjan Jovanovic 126*11c03c6dSDamjan Jovanovic 127*11c03c6dSDamjan Jovanovic 128*11c03c6dSDamjan Jovanovic 129*11c03c6dSDamjan Jovanovic #endif 130