source: XMLIO_V2/dev/common/src/buffer_ym.hpp @ 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

File size: 1.4 KB
Line 
1#ifndef __BUFFER_YM_HPP__
2#define __BUFFER_YM_HPP__
3
4
5#include "xmlioserver_spl.hpp"
6
7namespace xmlioserver
8{
9  namespace ym
10  {
11 
12    class CBuffer
13    {
14   
15      public:
16     
17      CBuffer(size_t size) ;
18      CBuffer(void* buffer,size_t size) ;
19
20      void realloc(size_t size) ;
21      void realloc(void* buffer,size_t size) ;
22     
23      template<class T>
24      bool put(const T& data) ;
25
26      template<class T>
27      bool put(const T* data, size_t n) ;
28
29      template<class T>
30      bool put_ptr(const T*& data_ptr, size_t n) ;
31     
32      template<class T>
33      bool get(T& data) ;
34
35      template<class T>
36      bool get(T* data, size_t n) ;
37
38      template<class T>
39      bool get_ptr(T*& data, size_t n) ;
40
41     
42 
43      template<class T>
44      bool put_template(const T& data) ;
45
46      template<class T>
47      bool put_template(const T* data, size_t n) ;
48
49      template<class T>
50      bool put_ptr_template(const T*& data, size_t n) ;
51     
52      template<class T>
53      bool get_template(T& data) ;
54
55      template<class T>
56      bool get_template(T* data, size_t n) ;
57
58      template<class T>
59      bool get_ptr_template(T*& data, size_t n) ;
60     
61      size_t remain(void) ;
62                           
63      ~CBuffer() ;
64       char* buffer ;
65       char* read ;
66       char* write ;
67       size_t count ;
68       bool own ; 
69       size_t size ;   
70    } ;
71   
72   
73 
74 
75  }
76}
77
78#include "buffer_ym_impl.hpp"
79
80
81#endif
Note: See TracBrowser for help on using the repository browser.