source: XMLIO_V2/dev/common/src/buffer_out.cpp @ 300

Last change on this file since 300 was 300, checked in by ymipsl, 12 years ago

nouvelle version de developpement de xios

  • nouvelle interface fortran
  • recodage complet de la couche de communication
  • et bien d'autres choses...

YM

  • Property svn:eol-style set to native
File size: 1.2 KB
Line 
1#include "xmlioserver_spl.hpp"
2#include "buffer_out.hpp"
3
4
5namespace xmlioserver
6{
7  namespace ym
8  {
9    CBufferOut::CBufferOut(void* buffer,size_t size)
10    {
11      own=false ;
12      realloc(buffer,size) ;
13    }
14   
15    CBufferOut::CBufferOut(void)
16    {
17      own=false ;
18      realloc(0,0) ;     
19    }
20
21    CBufferOut::CBufferOut(size_t size)
22    {
23      own=false ;
24      realloc(size) ;
25    }
26
27    void CBufferOut::realloc(size_t size)
28    {
29      realloc(new char[size],size) ;
30      own=true ;
31    }
32
33    void CBufferOut::realloc(void* buffer,size_t size)
34    {
35      if (own) delete [] begin ;
36      begin=(char*)buffer ;
37      size_=size ;
38      end=begin+size_ ;
39      count_=0 ;
40      current=begin ;
41      own=false ;
42    }
43
44    bool CBufferOut::advance(size_t n) { return advance<char>(n); }
45
46    void* CBufferOut::ptr(void)
47    {
48      return current ;
49    }
50   
51    size_t CBufferOut::remain(void)
52    {
53      return size_-count_ ;
54    }   
55
56    size_t CBufferOut::count(void)
57    {
58      return count_ ;
59    }
60
61    size_t CBufferOut::size(void)
62    {
63      return size_ ;
64    }
65       
66    CBufferOut::~CBufferOut()
67    {
68      if (own) delete [] begin ;
69    }
70   
71  }
72}
73   
74     
75   
Note: See TracBrowser for help on using the repository browser.