Beam-lib  2.16.3
This is the Beam C++ class library.
BStringLocked.h
Go to the documentation of this file.
1 /*******************************************************************************
2  * BStringLocked.h Threaded BString Handling
3  * T.Barnaby, BEAM Ltd, 2008-06-17
4  * Copyright (c) 2012 All Right Reserved, Beam Ltd, http://www.beam.ltd.uk
5  *******************************************************************************
6  */
7 #ifndef BStringLocked_H
8 #define BStringLocked_H 1
9 
10 #include <BString.h>
11 #include <BMutex.h>
12 
13 class BStringMutex : public BMutex {
14 public:
16 };
17 
19 public:
21  BStringLocked(const BStringLocked& s) : ostr(s.ostr){}
22  BStringLocked(const BString& s) : ostr(s){}
23 
24  int len() const { BMutexLock l(olock); return ostr.len(); }
25 
26 public:
27  operator BString() const { BMutexLock l(olock); return ostr; }
28 
29  BStringLocked operator+(const BStringLocked& s) const { BMutexLock l(olock); BMutexLock l1(s.olock); ostr.append(s.ostr); return *this; }
30  BStringLocked& operator=(const BStringLocked& s) { BMutexLock l(olock); BMutexLock l1(s.olock); ostr = s.ostr; return *this; }
31 
32 private:
33  mutable BStringMutex olock;
34  BString ostr;
35 };
36 
37 #endif
Definition: BMutex.h:32
Definition: BString.h:18
BStringLocked(const BStringLocked &s)
Definition: BStringLocked.h:21
Definition: BStringLocked.h:18
BStringLocked & operator=(const BStringLocked &s)
Definition: BStringLocked.h:30
int len() const
Length of string.
Definition: BStringLocked.h:24
Definition: BMutex.h:14
BStringLocked operator+(const BStringLocked &s) const
Definition: BStringLocked.h:29
int len() const
Length of string.
Definition: BString.cpp:286
BStringMutex()
Definition: BStringLocked.h:15
BStringLocked()
Definition: BStringLocked.h:20
Definition: BStringLocked.h:13
BStringLocked(const BString &s)
Definition: BStringLocked.h:22
int append(const BString &str)
Append a string.
Definition: BString.cpp:1043
Definition: BMutex.h:16