MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
mbstrbuf.h
Go to the documentation of this file.
1 /* $Header: /var/cvs/mbdyn/mbdyn/mbdyn-1.0/libraries/libmbutil/mbstrbuf.h,v 1.8 2017/01/12 14:44:05 masarati Exp $ */
2 /*
3  * MBDyn (C) is a multibody analysis code.
4  * http://www.mbdyn.org
5  *
6  * Copyright (C) 1996-2017
7  *
8  * Pierangelo Masarati <masarati@aero.polimi.it>
9  * Paolo Mantegazza <mantegazza@aero.polimi.it>
10  *
11  * Dipartimento di Ingegneria Aerospaziale - Politecnico di Milano
12  * via La Masa, 34 - 20156 Milano, Italy
13  * http://www.aero.polimi.it
14  *
15  * Changing this copyright notice is forbidden.
16  *
17  * This program is free software; you can redistribute it and/or modify
18  * it under the terms of the GNU General Public License as published by
19  * the Free Software Foundation (version 2 of the License).
20  *
21  *
22  * This program is distributed in the hope that it will be useful,
23  * but WITHOUT ANY WARRANTY; without even the implied warranty of
24  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
25  * GNU General Public License for more details.
26  *
27  * You should have received a copy of the GNU General Public License
28  * along with this program; if not, write to the Free Software
29  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
30  */
31 
32 #ifndef MBSTRBUF_H
33 #define MBSTRBUF_H
34 
35 #include <iostream>
36 
37 class mbstrbuf {
38  friend std::ostream& operator << (std::ostream&, const mbstrbuf&);
39 
40 private:
41  unsigned len;
42  unsigned cursor;
43  char *buf;
44 
45 public:
46  mbstrbuf(unsigned l = 0) : len(l), cursor(0), buf(0) {
47  if (len > 0) {
48  buf = new char[len];
49  }
50  };
51 
52  std::ostream& stats(std::ostream& out);
53 
54  void make_room(unsigned newlen);
55  void return_cursor(unsigned newcursor = 0);
56  void print_str(const char *str);
57  void print_double(const char *fmt, double d);
58  const char *get_buf(void) const;
59  unsigned get_len(void) const;
60 };
61 
62 std::ostream& operator << (std::ostream& out, const mbstrbuf& buf);
63 
64 #endif // MBSTRBUF_H
mbstrbuf(unsigned l=0)
Definition: mbstrbuf.h:46
void print_double(const char *fmt, double d)
Definition: mbstrbuf.cc:83
void print_str(const char *str)
Definition: mbstrbuf.cc:65
unsigned cursor
Definition: mbstrbuf.h:42
std::ostream & operator<<(std::ostream &out, const mbstrbuf &buf)
Definition: mbstrbuf.cc:111
friend std::ostream & operator<<(std::ostream &, const mbstrbuf &)
Definition: mbstrbuf.cc:111
unsigned get_len(void) const
Definition: mbstrbuf.cc:105
void make_room(unsigned newlen)
Definition: mbstrbuf.cc:47
unsigned len
Definition: mbstrbuf.h:41
const char * get_buf(void) const
Definition: mbstrbuf.cc:99
char * buf
Definition: mbstrbuf.h:43
void return_cursor(unsigned newcursor=0)
Definition: mbstrbuf.cc:58
static doublereal buf[BUFSIZE]
Definition: discctrl.cc:333
std::ostream & stats(std::ostream &out)
Definition: mbstrbuf.cc:40