summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--LICENSE2
-rw-r--r--Makefile2
-rw-r--r--Makefile.legacy2
-rw-r--r--build.conf116
-rw-r--r--buildMinGW.conf47
-rw-r--r--default.bld2
-rw-r--r--fstringtest.dev59
-rw-r--r--mingw.bld11
-rw-r--r--src/archival.cpp2
-rw-r--r--src/archival.h2
-rw-r--r--src/archive.cpp2
-rw-r--r--src/archive.h8
-rw-r--r--src/archivebase.cpp2
-rw-r--r--src/archivebase.h2
-rw-r--r--src/array.cpp2
-rw-r--r--src/array.h2
-rw-r--r--src/atom.cpp2
-rw-r--r--src/atom.h2
-rw-r--r--src/base64.cpp14
-rw-r--r--src/base64.h12
-rw-r--r--src/bitstring.cpp6
-rw-r--r--src/bitstring.h6
-rw-r--r--src/buffer.cpp12
-rw-r--r--src/buffer.h12
-rw-r--r--src/bzip2.cpp14
-rw-r--r--src/bzip2.h12
-rw-r--r--src/cache.cpp2
-rw-r--r--src/cache.h2
-rw-r--r--src/cachecalc.cpp2
-rw-r--r--src/cachecalc.h2
-rw-r--r--src/cachestore.cpp2
-rw-r--r--src/cachestore.h2
-rw-r--r--src/cachestorefiles.cpp2
-rw-r--r--src/cachestorefiles.h10
-rw-r--r--src/cachestoremyriad.cpp2
-rw-r--r--src/cachestoremyriad.h4
-rw-r--r--src/client.cpp63
-rw-r--r--src/client.h52
-rw-r--r--src/clientlink.cpp2
-rw-r--r--src/clientlink.h6
-rw-r--r--src/clientlinkfactory.cpp2
-rw-r--r--src/clientlinkfactory.h2
-rw-r--r--src/compat/linux.h2
-rw-r--r--src/compat/osx.h2
-rw-r--r--src/compat/win32.cpp6
-rw-r--r--src/compat/win32.h6
-rw-r--r--src/conduit.cpp2
-rw-r--r--src/conduit.h4
-rw-r--r--src/config.h4
-rw-r--r--src/crypt.cpp10
-rw-r--r--src/crypt.h8
-rw-r--r--src/cryptohash.cpp10
-rw-r--r--src/cryptohash.h12
-rw-r--r--src/csvreader.cpp12
-rw-r--r--src/csvreader.h12
-rw-r--r--src/csvwriter.cpp16
-rw-r--r--src/csvwriter.h12
-rw-r--r--src/doxy/archives.dox2
-rw-r--r--src/doxy/formatting.dox2
-rw-r--r--src/doxy/groups.dox2
-rw-r--r--src/doxy/main.dox2
-rw-r--r--src/doxy/params.dox2
-rw-r--r--src/doxy/plugins.dox2
-rw-r--r--src/doxy/servers.dox2
-rw-r--r--src/doxy/streams.dox2
-rw-r--r--src/doxy/taf.dox2
-rw-r--r--src/doxy/threading.dox2
-rw-r--r--src/doxy/unittest.dox2
-rw-r--r--src/exceptionbase.cpp2
-rw-r--r--src/exceptionbase.h2
-rw-r--r--src/extratypes.h26
-rw-r--r--src/fastcgi.cpp10
-rw-r--r--src/fastcgi.h12
-rw-r--r--src/fbasicstring.cpp9
-rw-r--r--src/fifo.cpp16
-rw-r--r--src/fifo.h18
-rw-r--r--src/file.cpp43
-rw-r--r--src/file.h28
-rw-r--r--src/filter.cpp27
-rw-r--r--src/filter.h18
-rw-r--r--src/formatter.cpp16
-rw-r--r--src/formatter.h20
-rw-r--r--src/formula.cpp2
-rw-r--r--src/formula.h12
-rw-r--r--src/fstring.h53
-rw-r--r--src/hash.cpp2
-rw-r--r--src/hash.h4
-rw-r--r--src/heap.cpp2
-rw-r--r--src/heap.h2
-rw-r--r--src/httpget.cpp31
-rw-r--r--src/httpget.h26
-rw-r--r--src/ito.cpp2
-rw-r--r--src/ito.h2
-rw-r--r--src/itoatom.h2
-rw-r--r--src/itocondition.cpp2
-rw-r--r--src/itocondition.h2
-rw-r--r--src/itocounter.cpp2
-rw-r--r--src/itocounter.h2
-rw-r--r--src/itoheap.cpp2
-rw-r--r--src/itoheap.h2
-rw-r--r--src/itomutex.cpp2
-rw-r--r--src/itomutex.h2
-rw-r--r--src/itoqueue.h2
-rw-r--r--src/itoserver.cpp10
-rw-r--r--src/itoserver.h10
-rw-r--r--src/lexer.cpp9
-rw-r--r--src/lexer.h9
-rw-r--r--src/linkmessage.cpp2
-rw-r--r--src/linkmessage.h2
-rw-r--r--src/list.cpp2
-rw-r--r--src/list.h2
-rw-r--r--src/logger.cpp10
-rw-r--r--src/logger.h8
-rw-r--r--src/md5.cpp8
-rw-r--r--src/md5.h6
-rw-r--r--src/membuf.cpp41
-rw-r--r--src/membuf.h32
-rw-r--r--src/minicron.cpp24
-rw-r--r--src/minicron.h26
-rw-r--r--src/minimacro.cpp36
-rw-r--r--src/minimacro.h44
-rw-r--r--src/multiserver.cpp4
-rw-r--r--src/multiserver.h4
-rw-r--r--src/myriad.cpp2
-rw-r--r--src/myriad.h2
-rw-r--r--src/myriadfs.cpp7
-rw-r--r--src/myriadfs.h7
-rw-r--r--src/myriadstream.cpp35
-rw-r--r--src/myriadstream.h20
-rw-r--r--src/newline.cpp16
-rw-r--r--src/newline.h8
-rw-r--r--src/nullstream.cpp40
-rw-r--r--src/nullstream.h35
-rw-r--r--src/optparser.cpp30
-rw-r--r--src/optparser.h58
-rw-r--r--src/parser.cpp29
-rw-r--r--src/parser.h33
-rw-r--r--src/plugger.cpp2
-rw-r--r--src/plugger.h16
-rw-r--r--src/process.cpp37
-rw-r--r--src/process.h24
-rw-r--r--src/programchain.cpp2
-rw-r--r--src/programchain.h2
-rw-r--r--src/programlink.cpp2
-rw-r--r--src/programlink.h2
-rw-r--r--src/protocol.cpp4
-rw-r--r--src/protocol.h6
-rw-r--r--src/protocolhttp.cpp12
-rw-r--r--src/protocolhttp.h26
-rw-r--r--src/protocoltelnet.cpp4
-rw-r--r--src/protocoltelnet.h18
-rw-r--r--src/queue.cpp2
-rw-r--r--src/queue.h2
-rw-r--r--src/queuebuf.cpp51
-rw-r--r--src/queuebuf.h26
-rw-r--r--src/regex.cpp14
-rw-r--r--src/regex.h18
-rw-r--r--src/ringbuffer.cpp2
-rw-r--r--src/ringbuffer.h2
-rw-r--r--src/server.cpp6
-rw-r--r--src/server.h8
-rw-r--r--src/set.cpp2
-rw-r--r--src/set.h2
-rw-r--r--src/sha1.cpp8
-rw-r--r--src/sha1.h6
-rw-r--r--src/sharedcore.cpp2
-rw-r--r--src/sharedcore.h2
-rw-r--r--src/signals.cpp2
-rw-r--r--src/signals.h2
-rw-r--r--src/singleton.h2
-rw-r--r--src/sio.cpp2
-rw-r--r--src/sio.h2
-rw-r--r--src/sptr.cpp2
-rw-r--r--src/sptr.h2
-rw-r--r--src/stack.cpp2
-rw-r--r--src/stack.h2
-rw-r--r--src/stdstream.cpp31
-rw-r--r--src/stdstream.h19
-rw-r--r--src/stream.cpp8
-rw-r--r--src/stream.h48
-rw-r--r--src/streamstack.cpp46
-rw-r--r--src/streamstack.h30
-rw-r--r--src/string.cpp (renamed from src/fstring.cpp)42
-rw-r--r--src/string.h (renamed from src/fbasicstring.h)210
-rw-r--r--src/substream.cpp22
-rw-r--r--src/substream.h24
-rw-r--r--src/taf.h2
-rw-r--r--src/tafcomment.cpp6
-rw-r--r--src/tafcomment.h8
-rw-r--r--src/tafgroup.cpp34
-rw-r--r--src/tafgroup.h46
-rw-r--r--src/tafnode.cpp2
-rw-r--r--src/tafnode.h4
-rw-r--r--src/tafproperty.cpp8
-rw-r--r--src/tafproperty.h12
-rw-r--r--src/tafreader.cpp16
-rw-r--r--src/tafreader.h6
-rw-r--r--src/tafwriter.cpp6
-rw-r--r--src/tafwriter.h6
-rw-r--r--src/tcpserversocket.cpp4
-rw-r--r--src/tcpserversocket.h6
-rw-r--r--src/tcpsocket.cpp45
-rw-r--r--src/tcpsocket.h35
-rw-r--r--src/tests/archive.cpp6
-rw-r--r--src/tests/archive2.cpp2
-rw-r--r--src/tests/atom.cpp2
-rw-r--r--src/tests/base64.cpp2
-rw-r--r--src/tests/buffer.cpp2
-rw-r--r--src/tests/bzip2.cpp2
-rw-r--r--src/tests/cache.cpp20
-rw-r--r--src/tests/console.cpp2
-rw-r--r--src/tests/cryptpass.cpp2
-rw-r--r--src/tests/csv.cpp2
-rw-r--r--src/tests/daysinmonth.cpp2
-rw-r--r--src/tests/fastcgi.cpp10
-rw-r--r--src/tests/formula.cpp2
-rw-r--r--src/tests/fstratsptr.cpp10
-rw-r--r--src/tests/fstrformat.cpp6
-rw-r--r--src/tests/fstrstd.cpp6
-rw-r--r--src/tests/hash.cpp2
-rw-r--r--src/tests/hash2.cpp6
-rw-r--r--src/tests/heap.cpp16
-rw-r--r--src/tests/itoheap.cpp2
-rw-r--r--src/tests/itoqueue1.cpp2
-rw-r--r--src/tests/itoqueue2.cpp2
-rw-r--r--src/tests/itoserver.cpp2
-rw-r--r--src/tests/list.cpp2
-rw-r--r--src/tests/list2.cpp2
-rw-r--r--src/tests/listsort.cpp8
-rw-r--r--src/tests/logger.cpp2
-rw-r--r--src/tests/md5.cpp2
-rw-r--r--src/tests/minicron.cpp2
-rw-r--r--src/tests/mmparse.cpp4
-rw-r--r--src/tests/multiserver.cpp2
-rw-r--r--src/tests/optparser.cpp4
-rw-r--r--src/tests/procs.cpp2
-rw-r--r--src/tests/queuebuf.cpp2
-rw-r--r--src/tests/regex.cpp2
-rw-r--r--src/tests/ringbuffer.cpp2
-rw-r--r--src/tests/rot13.cpp10
-rw-r--r--src/tests/serverticks.cpp2
-rw-r--r--src/tests/sha1.cpp6
-rw-r--r--src/tests/sharedcore.cpp2
-rw-r--r--src/tests/signals.cpp26
-rw-r--r--src/tests/size.cpp8
-rw-r--r--src/tests/socketblock.cpp2
-rw-r--r--src/tests/socketbreak.cpp6
-rw-r--r--src/tests/speed.cpp8
-rw-r--r--src/tests/stdstream.cpp2
-rw-r--r--src/tests/streamstack.cpp11
-rw-r--r--src/tests/string.cpp (renamed from src/tests/fstring.cpp)30
-rw-r--r--src/tests/taf.cpp2
-rw-r--r--src/tests/tcpsocket.cpp2
-rw-r--r--src/tests/telnetsrv.cpp4
-rw-r--r--src/tests/tracer.cpp2
-rw-r--r--src/tests/udpsocket.cpp7
-rw-r--r--src/tests/url.cpp2
-rw-r--r--src/tests/uuid.cpp2
-rw-r--r--src/tests/variant.cpp2
-rw-r--r--src/tools/bnfcompile.cpp33
-rw-r--r--src/tools/mkunit.cpp41
-rw-r--r--src/tools/myriad.cpp8
-rw-r--r--src/tools/myriadfs.cpp7
-rw-r--r--src/tools/parser.cpp9
-rw-r--r--src/tools/viewcsv.cpp17
-rw-r--r--src/trace.cpp2
-rw-r--r--src/trace.h2
-rw-r--r--src/udpsocket.cpp46
-rw-r--r--src/udpsocket.h30
-rw-r--r--src/unit/archive.unit16
-rw-r--r--src/unit/array.unit4
-rw-r--r--src/unit/buffer.unit6
-rw-r--r--src/unit/entities/unit2
-rw-r--r--src/unit/file.unit2
-rw-r--r--src/unit/hash.unit12
-rw-r--r--src/unit/list.unit4
-rw-r--r--src/unit/membuf.unit2
-rw-r--r--src/unit/myriad.unit22
-rw-r--r--src/unit/queuebuf.unit14
-rw-r--r--src/unit/string.unit (renamed from src/unit/fstring.unit)136
-rw-r--r--src/unit/substream.unit2
-rw-r--r--src/unit/taf.unit8
-rw-r--r--src/unit/variant.unit2
-rw-r--r--src/unit/xml.unit6
-rw-r--r--src/unitsuite.cpp10
-rw-r--r--src/unitsuite.h26
-rw-r--r--src/url.cpp68
-rw-r--r--src/url.h68
-rw-r--r--src/urn.cpp2
-rw-r--r--src/urn.h2
-rw-r--r--src/utfstring.cpp30
-rw-r--r--src/utfstring.h33
-rw-r--r--src/util.cpp2
-rw-r--r--src/util.h2
-rw-r--r--src/uuid.cpp8
-rw-r--r--src/uuid.h8
-rw-r--r--src/variant.cpp14
-rw-r--r--src/variant.h14
-rw-r--r--src/xmlreader.cpp2
-rw-r--r--src/xmlreader.h8
-rwxr-xr-xsupport/fixstrings.sh17
301 files changed, 1976 insertions, 1775 deletions
diff --git a/LICENSE b/LICENSE
index be0f0c6..113c4af 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
1Copyright (C) 2007-2010 Xagasoft 1Copyright (C) 2007-2011 Xagasoft
2 2
3All rights reserved. 3All rights reserved.
4 4
diff --git a/Makefile b/Makefile
index 6f6446f..0b7716f 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
1# 1#
2# Copyright (C) 2007-2008 Xagasoft, All rights reserved. 2# Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3# 3#
4# This file is part of the libbu++ library and is released under the 4# This file is part of the libbu++ library and is released under the
5# terms of the license contained in the file LICENSE. 5# terms of the license contained in the file LICENSE.
diff --git a/Makefile.legacy b/Makefile.legacy
index b9b2305..15f8dfa 100644
--- a/Makefile.legacy
+++ b/Makefile.legacy
@@ -1,5 +1,5 @@
1# 1#
2# Copyright (C) 2007-2008 Xagasoft, All rights reserved. 2# Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3# 3#
4# This file is part of the libbu++ library and is released under the 4# This file is part of the libbu++ library and is released under the
5# terms of the license contained in the file LICENSE. 5# terms of the license contained in the file LICENSE.
diff --git a/build.conf b/build.conf
deleted file mode 100644
index b29809d..0000000
--- a/build.conf
+++ /dev/null
@@ -1,116 +0,0 @@
1# Build config file for libbu++
2#
3# Copyright (C) 2007-2008 Xagasoft, All rights reserved.
4#
5# This file is part of the libbu++ library and is released under the
6# terms of the license contained in the file LICENSE.
7
8default action: check group "lnhdrs", check "libbu++.a", check group "tools"
9"tests" action: check group "lnhdrs", check group "tests"
10"all" action: check group "lnhdrs", check targets()
11"optparser" action: check "tests/optparser"
12
13set "CXXFLAGS" += "-ggdb -W -Wall"
14#set "CXXFLAGS" += "-O2 -Wall"
15
16# set "CXXFLAGS" += "-pg"
17# set "LDFLAGS" += "-pg"
18
19filesIn("src") filter regexp("^src/(.*)\\.h$", "bu/{re:1}.h"):
20 rule "hln",
21 group "lnhdrs",
22 target file,
23 input "src/{re:1}.h"
24
25"libbu++.a":
26 rule "lib",
27 target file,
28 set "CXXFLAGS" += "-I. -fPIC",
29 input filesIn("src") filter regexp("^.*\\.cpp$")
30
31#"libbu++.so":
32# rule "so",
33# target file,
34# set "CXXFLAGS" += "-I. -fPIC",
35# set "LDFLAGS" += "-lpthread -lbz2",
36# input filesIn("src") filter regexp("^.*\\.cpp$")
37
38
39directoriesIn("src/tests","tests/"):
40 rule "exe",
41 target file,
42 group "tests",
43 requires "libbu++.a",
44 set "CXXFLAGS" += "-I.",
45 set "LDFLAGS" += "-L. -lbu++",
46 input filesIn("{fulldir}") filter regexp("^.*\\.cpp$")
47
48filesIn("src/tests") filter regexp("^src/tests/(.*)\\.cpp$", "tests/{re:1}"):
49 rule "exe",
50 target file,
51 group "tests",
52 requires "libbu++.a",
53 set "CXXFLAGS" += "-I.",
54 set "LDFLAGS" += "-L. -lbu++",
55 input "src/{target}.cpp"
56
57filesIn("src/tools") filter regexp("^src/tools/(.*)\\.cpp$", "{re:1}"):
58 rule "exe",
59 target file,
60 group "tools",
61 requires "libbu++.a",
62 set "CXXFLAGS" += "-I.",
63 set "LDFLAGS" += "-L. -lbu++",
64 input "src/tools/{target}.cpp"
65
66["tests/itoqueue1", "tests/itoqueue2", "tests/socketblock", "tests/itoserver",
67 "tests/itoheap"]:
68 set "LDFLAGS" += "-lpthread"
69
70filesIn("src/unit") filter regexp("^src/unit/(.*)\\.unit$", "unit/{re:1}"):
71 rule "exe",
72 target file,
73 group "tests",
74 group "unit",
75 requires "libbu++.a",
76 set "CXXFLAGS" += "-I.",
77 set "LDFLAGS" += "-L. -lbu++",
78 input "src/{target}.unit"
79
80"tests/plugin": set "LDFLAGS" += "-ldl"
81
82"tests/bzip2": set "LDFLAGS" += "-lbz2"
83
84rule "exe":
85 matches regexp("(.*)\\.o$"),
86 aggregate toString(" "),
87 perform command("g++ -o {target} {match} {LDFLAGS}")
88
89rule "lib":
90 matches regexp("(.*)\\.o$"),
91 aggregate toString(" "),
92 perform command("ar cr {target} {match}")
93
94rule "so":
95 matches regexp("(.*)\\.o$"),
96 aggregate toString(" "),
97 perform command("g++ -shared -o {target} {match} {LDFLAGS}")
98# perform command("ld -G -o {target} {match}")
99
100rule "cpp":
101 matches regexp("(.*)\\.cpp$"),
102 produces "{re:1}.o",
103 requires commandToList("g++ -M {CXXFLAGS} {match}", "make"),
104 perform command("g++ {CXXFLAGS} -c -o {target} {match}")
105
106rule "unit":
107 matches regexp("(.*)\\.unit$"),
108 produces "{re:1}.cpp",
109 requires "mkunit.sh",
110 perform command("./mkunit.sh \"{match}\" \"{target}\"")
111
112rule "hln":
113 matches regexp("src/(.*)\\.h"),
114 produces "bu/{re:1}.h",
115 perform command("ln -s ../src/{re:1}.h {target}")
116
diff --git a/buildMinGW.conf b/buildMinGW.conf
deleted file mode 100644
index faf1088..0000000
--- a/buildMinGW.conf
+++ /dev/null
@@ -1,47 +0,0 @@
1# Build config file for libbu++
2#
3# Copyright (C) 2007-2008 Xagasoft, All rights reserved.
4#
5# This file is part of the libbu++ library and is released under the
6# terms of the license contained in the file LICENSE.
7
8default action: check group "lnhdrs", check "libbu++win.a"
9"tests" action: check group "lnhdrs", check group "tests"
10"all" action: check group "lnhdrs", check targets()
11
12set "CXXFLAGS" += "-ggdb -Wall"
13
14filesIn("src") filter regexp("^src/(.*)\\.h$", "bu/{re:1}.h"):
15 rule "hln",
16 group "lnhdrs",
17 target file,
18 input "src/{re:1}.h"
19
20"libbu++win.a":
21 rule "lib",
22 target file,
23 set "CXXFLAGS" += "-I. -Isupport/windows",
24 #input filesIn("src") filter regexp("^.*\\.cpp$")
25 input ["src/array.cpp", "src/list.cpp", "src/exceptionbase.cpp", "src/fbasicstring.cpp", "src/fstring.cpp", "src/file.cpp", "src/set.cpp", "src/hash.cpp", "src/sptr.cpp", "src/tafnode.cpp", "src/tafreader.cpp", "src/tafwriter.cpp", "src/tafgroup.cpp", "src/tafproperty.cpp", "src/tafcomment.cpp", "src/stdstream.cpp", "src/stream.cpp", "src/archive.cpp", "src/archival.cpp", "src/socket.cpp", "src/serversocket.cpp", "src/unitsuite.cpp", "src/win32_compatibility.cpp", "src/membuf.cpp", "src/formatter.cpp", "src/sio.cpp", "src/md5.cpp", "src/cryptohash.cpp", "src/filter.cpp", "src/bzip2.cpp", "src/base64.cpp", "src/minimacro.cpp", "src/formula.cpp", "src/util.cpp", "src/archivebase.cpp", "src/queue.cpp"]
26
27rule "exe":
28 matches regexp("(.*)\\.win_o$"),
29 aggregate toString(" "),
30 perform command("wine c:/MinGW/bin/mingw32-g++.exe -o {target} {match} {LDFLAGS}")
31
32rule "lib":
33 matches regexp("(.*)\\.win_o$"),
34 aggregate toString(" "),
35 perform command("wine c:/MinGW/bin/ar.exe cr {target} {match}")
36
37rule "cpp":
38 matches regexp("(.*)\\.cpp$"),
39 produces "{re:1}.win_o",
40 requires commandToList("wine c:/MinGW/bin/mingw32-g++.exe -M {CXXFLAGS} {match}", "make"),
41 perform command("wine c:/MinGW/bin/mingw32-g++.exe {CXXFLAGS} -c -o {target} {match}")
42
43rule "hln":
44 matches regexp("src/(.*)\\.h"),
45 produces "bu/{re:1}.h",
46 perform command("ln -s ../src/{re:1}.h {target}")
47
diff --git a/default.bld b/default.bld
index 50baefb..558b976 100644
--- a/default.bld
+++ b/default.bld
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/fstringtest.dev b/fstringtest.dev
deleted file mode 100644
index 297242d..0000000
--- a/fstringtest.dev
+++ /dev/null
@@ -1,59 +0,0 @@
1[Project]
2FileName=fstringtest.dev
3Name=fstringtest
4UnitCount=1
5Type=1
6Ver=1
7ObjFiles=
8Includes=z:\home\neonphog\wine_documents\libbu++\src\bu
9Libs=
10PrivateResource=
11ResourceIncludes=
12MakeIncludes=
13Compiler=
14CppCompiler=_@@_
15Linker=libbu++.a_@@_
16IsCpp=1
17Icon=
18ExeOutput=
19ObjectOutput=
20OverrideOutput=0
21OverrideOutputName=fstringtest.exe
22HostApplication=
23Folders=
24CommandLine=
25UseCustomMakefile=0
26CustomMakefile=
27IncludeVersionInfo=0
28SupportXPThemes=0
29CompilerSet=0
30CompilerSettings=0000000000000000000000
31
32[VersionInfo]
33Major=0
34Minor=1
35Release=1
36Build=1
37LanguageID=1033
38CharsetID=1252
39CompanyName=
40FileVersion=
41FileDescription=Developed using the Dev-C++ IDE
42InternalName=
43LegalCopyright=
44LegalTrademarks=
45OriginalFilename=
46ProductName=
47ProductVersion=
48AutoIncBuildNr=0
49
50[Unit1]
51FileName=src\tests\fstring.cpp
52CompileCpp=1
53Folder=fstringtest
54Compile=1
55Link=1
56Priority=1000
57OverrideBuildCmd=0
58BuildCmd=
59
diff --git a/mingw.bld b/mingw.bld
index 7bdf474..29cdf31 100644
--- a/mingw.bld
+++ b/mingw.bld
@@ -1,7 +1,12 @@
1/*
2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 *
4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE.
6 */
7
1/** 8/**
2 * This is the default.bld file for libbu++, it pretty much handles everything 9 * This is just like default.bld, but for mingw...crazy, eh?
3 * libbu++ related, kinda' cool, eh? It can completely replace the old build
4 * and actually does a better job with a number of things.
5 */ 10 */
6 11
7CXXFLAGS += "-ggdb -W -Wall"; 12CXXFLAGS += "-ggdb -W -Wall";
diff --git a/src/archival.cpp b/src/archival.cpp
index bdd0620..687e8a3 100644
--- a/src/archival.cpp
+++ b/src/archival.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/archival.h b/src/archival.h
index 27e6aba..946167a 100644
--- a/src/archival.h
+++ b/src/archival.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/archive.cpp b/src/archive.cpp
index 7a10921..d300a87 100644
--- a/src/archive.cpp
+++ b/src/archive.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/archive.h b/src/archive.h
index 9d2aee2..61474a4 100644
--- a/src/archive.h
+++ b/src/archive.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -111,7 +111,7 @@ namespace Bu
111 void readID( const void *ptr, uint32_t id ); 111 void readID( const void *ptr, uint32_t id );
112 112
113 template<typename t> 113 template<typename t>
114 void setProp( const Bu::FString &sId, const t &val ) 114 void setProp( const Bu::String &sId, const t &val )
115 { 115 {
116 if( !hProps.has( sId ) ) 116 if( !hProps.has( sId ) )
117 { 117 {
@@ -121,7 +121,7 @@ namespace Bu
121 } 121 }
122 122
123 template<typename t> 123 template<typename t>
124 t getProp( const Bu::FString &sId ) 124 t getProp( const Bu::String &sId )
125 { 125 {
126 return hProps.get( sId ); 126 return hProps.get( sId );
127 } 127 }
@@ -131,7 +131,7 @@ namespace Bu
131 uint32_t nNextID; 131 uint32_t nNextID;
132 Hash<uint32_t,uint32_t> hPtrID; 132 Hash<uint32_t,uint32_t> hPtrID;
133 Hash<uint32_t,List<void **> > hPtrDest; 133 Hash<uint32_t,List<void **> > hPtrDest;
134 Hash<Bu::FString, Variant> hProps; 134 Hash<Bu::String, Variant> hProps;
135 }; 135 };
136} 136}
137 137
diff --git a/src/archivebase.cpp b/src/archivebase.cpp
index 5ca4c23..d00b1a5 100644
--- a/src/archivebase.cpp
+++ b/src/archivebase.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/archivebase.h b/src/archivebase.h
index 18591f0..4745d91 100644
--- a/src/archivebase.h
+++ b/src/archivebase.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/array.cpp b/src/array.cpp
index 62dd132..b776fed 100644
--- a/src/array.cpp
+++ b/src/array.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/array.h b/src/array.h
index f225c97..f091a81 100644
--- a/src/array.h
+++ b/src/array.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/atom.cpp b/src/atom.cpp
index 45fdbc5..3c77b90 100644
--- a/src/atom.cpp
+++ b/src/atom.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/atom.h b/src/atom.h
index ccfc535..7c8a166 100644
--- a/src/atom.h
+++ b/src/atom.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/base64.cpp b/src/base64.cpp
index 73ec8f3..18a18e5 100644
--- a/src/base64.cpp
+++ b/src/base64.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -64,7 +64,7 @@ void Bu::Base64::start()
64{ 64{
65} 65}
66 66
67size_t Bu::Base64::stop() 67Bu::size Bu::Base64::stop()
68{ 68{
69// if( eMode |= Encode ) 69// if( eMode |= Encode )
70 { 70 {
@@ -89,11 +89,11 @@ size_t Bu::Base64::stop()
89// } 89// }
90} 90}
91 91
92size_t Bu::Base64::read( void *pBuf, size_t nBytes ) 92Bu::size Bu::Base64::read( void *pBuf, Bu::size nBytes )
93{ 93{
94 if( bEosIn == true && iRPos == iChars ) 94 if( bEosIn == true && iRPos == iChars )
95 return 0; 95 return 0;
96 size_t sIn = 0; 96 Bu::size sIn = 0;
97 char buf[4]; 97 char buf[4];
98 while( sIn < nBytes ) 98 while( sIn < nBytes )
99 { 99 {
@@ -153,11 +153,11 @@ size_t Bu::Base64::read( void *pBuf, size_t nBytes )
153 return sIn; 153 return sIn;
154} 154}
155 155
156size_t Bu::Base64::write( const void *pBuf, size_t nBytes ) 156Bu::size Bu::Base64::write( const void *pBuf, Bu::size nBytes )
157{ 157{
158 size_t sOut = 0; 158 Bu::size sOut = 0;
159 char outBuf[4]; 159 char outBuf[4];
160 for( size_t j = 0; j < nBytes; j++ ) 160 for( Bu::size j = 0; j < nBytes; j++ )
161 { 161 {
162 iBuf |= (((uint8_t *)pBuf)[j])<<((2-iBPos++)*8); 162 iBuf |= (((uint8_t *)pBuf)[j])<<((2-iBPos++)*8);
163 if( iBPos == 3 ) 163 if( iBPos == 3 )
diff --git a/src/base64.h b/src/base64.h
index c4dfd53..53d7860 100644
--- a/src/base64.h
+++ b/src/base64.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -26,9 +26,9 @@ namespace Bu
26 virtual ~Base64(); 26 virtual ~Base64();
27 27
28 virtual void start(); 28 virtual void start();
29 virtual size_t stop(); 29 virtual Bu::size stop();
30 virtual size_t read( void *pBuf, size_t nBytes ); 30 virtual Bu::size read( void *pBuf, Bu::size nBytes );
31 virtual size_t write( const void *pBuf, size_t nBytes ); 31 virtual Bu::size write( const void *pBuf, Bu::size nBytes );
32 32
33 virtual bool isOpen(); 33 virtual bool isOpen();
34 34
@@ -40,8 +40,8 @@ namespace Bu
40 int iRPos; 40 int iRPos;
41 int iChars; 41 int iChars;
42 bool bEosIn; 42 bool bEosIn;
43 size_t iTotalIn; 43 Bu::size iTotalIn;
44 size_t iTotalOut; 44 Bu::size iTotalOut;
45 static const char tblEnc[65]; 45 static const char tblEnc[65];
46 char tblDec[80]; 46 char tblDec[80];
47 enum Mode 47 enum Mode
diff --git a/src/bitstring.cpp b/src/bitstring.cpp
index 207a036..bdd1bc2 100644
--- a/src/bitstring.cpp
+++ b/src/bitstring.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -444,9 +444,9 @@ long Bu::BitString::getHighestOrderBitPos()
444 return -1; 444 return -1;
445} 445}
446 446
447Bu::FString Bu::BitString::toString() 447Bu::String Bu::BitString::toString()
448{ 448{
449 Bu::FString sRet; 449 Bu::String sRet;
450 for( int j = iBits-1; j >= 0; j-- ) 450 for( int j = iBits-1; j >= 0; j-- )
451 sRet.append( getBit( j )?'1':'0' ); 451 sRet.append( getBit( j )?'1':'0' );
452 return sRet; 452 return sRet;
diff --git a/src/bitstring.h b/src/bitstring.h
index 4d0437a..7a8fc48 100644
--- a/src/bitstring.h
+++ b/src/bitstring.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -9,7 +9,7 @@
9#define BU_BITSTRING_H 9#define BU_BITSTRING_H
10 10
11#include "bu/util.h" 11#include "bu/util.h"
12#include "bu/fstring.h" 12#include "bu/string.h"
13 13
14namespace Bu 14namespace Bu
15{ 15{
@@ -203,7 +203,7 @@ namespace Bu
203 */ 203 */
204 long toLong( long iStart = 0, long iSize = 32 ); 204 long toLong( long iStart = 0, long iSize = 32 );
205 205
206 Bu::FString toString(); 206 Bu::String toString();
207 207
208 //operators 208 //operators
209 BitString &operator=( const BitString &xSrc ); 209 BitString &operator=( const BitString &xSrc );
diff --git a/src/buffer.cpp b/src/buffer.cpp
index 234dc92..b54f97e 100644
--- a/src/buffer.cpp
+++ b/src/buffer.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -32,7 +32,7 @@ void Bu::Buffer::start()
32{ 32{
33} 33}
34 34
35size_t Bu::Buffer::stop() 35Bu::size Bu::Buffer::stop()
36{ 36{
37 iReadBufFill = iReadPos = iWriteBufFill = iWritePos = 0; 37 iReadBufFill = iReadPos = iWriteBufFill = iWritePos = 0;
38 return sSoFar; 38 return sSoFar;
@@ -49,7 +49,7 @@ void Bu::Buffer::fillReadBuf()
49 } 49 }
50} 50}
51 51
52size_t Bu::Buffer::read( void *pBuf, size_t nBytes ) 52Bu::size Bu::Buffer::read( void *pBuf, Bu::size nBytes )
53{ 53{
54 if( nBytes <= 0 ) 54 if( nBytes <= 0 )
55 { 55 {
@@ -57,7 +57,7 @@ size_t Bu::Buffer::read( void *pBuf, size_t nBytes )
57 return 0; 57 return 0;
58 } 58 }
59 59
60 size_t nTotRead = 0; 60 Bu::size nTotRead = 0;
61// fillReadBuf(); 61// fillReadBuf();
62 62
63 do 63 do
@@ -87,9 +87,9 @@ size_t Bu::Buffer::read( void *pBuf, size_t nBytes )
87 return nTotRead; 87 return nTotRead;
88} 88}
89 89
90size_t Bu::Buffer::write( const void *pBuf, size_t nBytes ) 90Bu::size Bu::Buffer::write( const void *pBuf, Bu::size nBytes )
91{ 91{
92 size_t nTotWrote = 0; 92 Bu::size nTotWrote = 0;
93 93
94 do 94 do
95 { 95 {
diff --git a/src/buffer.h b/src/buffer.h
index 97d4127..17c6d73 100644
--- a/src/buffer.h
+++ b/src/buffer.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -19,13 +19,13 @@ namespace Bu
19 virtual ~Buffer(); 19 virtual ~Buffer();
20 20
21 virtual void start(); 21 virtual void start();
22 virtual size_t stop(); 22 virtual Bu::size stop();
23 23
24 virtual size_t read( void *pBuf, size_t nBytes ); 24 virtual Bu::size read( void *pBuf, Bu::size nBytes );
25 virtual size_t write( const void *pBuf, size_t nBytes ); 25 virtual Bu::size write( const void *pBuf, Bu::size nBytes );
26 using Stream::write; 26 using Stream::write;
27 27
28 size_t getReadFill() { return iReadBufFill; } 28 Bu::size getReadFill() { return iReadBufFill; }
29 bool isWritePending() { return iWriteBufFill > 0; } 29 bool isWritePending() { return iWriteBufFill > 0; }
30 30
31 virtual void flush(); 31 virtual void flush();
@@ -36,7 +36,7 @@ namespace Bu
36 void fillReadBuf(); 36 void fillReadBuf();
37 37
38 private: 38 private:
39 size_t sSoFar; 39 Bu::size sSoFar;
40 int iBufSize; 40 int iBufSize;
41 char *sReadBuf; 41 char *sReadBuf;
42 char *sWriteBuf; 42 char *sWriteBuf;
diff --git a/src/bzip2.cpp b/src/bzip2.cpp
index a6fef25..5c35a26 100644
--- a/src/bzip2.cpp
+++ b/src/bzip2.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -37,7 +37,7 @@ void Bu::BZip2::start()
37 pBuf = new char[nBufSize]; 37 pBuf = new char[nBufSize];
38} 38}
39 39
40size_t Bu::BZip2::stop() 40Bu::size Bu::BZip2::stop()
41{ 41{
42 TRACE(); 42 TRACE();
43 if( bzState.state ) 43 if( bzState.state )
@@ -51,7 +51,7 @@ size_t Bu::BZip2::stop()
51 } 51 }
52 else 52 else
53 { 53 {
54// size_t sTotal = 0; 54// Bu::size sTotal = 0;
55 for(;;) 55 for(;;)
56 { 56 {
57 bzState.next_in = NULL; 57 bzState.next_in = NULL;
@@ -119,7 +119,7 @@ void Bu::BZip2::bzError( int code )
119 } 119 }
120} 120}
121 121
122size_t Bu::BZip2::read( void *pData, size_t nBytes ) 122Bu::size Bu::BZip2::read( void *pData, Bu::size nBytes )
123{ 123{
124 TRACE( pData, nBytes ); 124 TRACE( pData, nBytes );
125 if( !bzState.state ) 125 if( !bzState.state )
@@ -177,7 +177,7 @@ size_t Bu::BZip2::read( void *pData, size_t nBytes )
177 return 0; 177 return 0;
178} 178}
179 179
180size_t Bu::BZip2::write( const void *pData, size_t nBytes ) 180Bu::size Bu::BZip2::write( const void *pData, Bu::size nBytes )
181{ 181{
182 TRACE( pData, nBytes ); 182 TRACE( pData, nBytes );
183 if( !bzState.state ) 183 if( !bzState.state )
@@ -188,7 +188,7 @@ size_t Bu::BZip2::write( const void *pData, size_t nBytes )
188 if( bReading == true ) 188 if( bReading == true )
189 throw ExceptionBase("This bzip2 filter is in reading mode, you can't write."); 189 throw ExceptionBase("This bzip2 filter is in reading mode, you can't write.");
190 190
191// size_t sTotalOut = 0; 191// Bu::size sTotalOut = 0;
192 bzState.next_in = (char *)pData; 192 bzState.next_in = (char *)pData;
193 bzState.avail_in = nBytes; 193 bzState.avail_in = nBytes;
194 for(;;) 194 for(;;)
@@ -215,7 +215,7 @@ bool Bu::BZip2::isOpen()
215 return (bzState.state != NULL); 215 return (bzState.state != NULL);
216} 216}
217 217
218size_t Bu::BZip2::getCompressedSize() 218Bu::size Bu::BZip2::getCompressedSize()
219{ 219{
220 return sTotalOut; 220 return sTotalOut;
221} 221}
diff --git a/src/bzip2.h b/src/bzip2.h
index 6494cbb..6da3dff 100644
--- a/src/bzip2.h
+++ b/src/bzip2.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -26,13 +26,13 @@ namespace Bu
26 virtual ~BZip2(); 26 virtual ~BZip2();
27 27
28 virtual void start(); 28 virtual void start();
29 virtual size_t stop(); 29 virtual Bu::size stop();
30 virtual size_t read( void *pBuf, size_t nBytes ); 30 virtual Bu::size read( void *pBuf, Bu::size nBytes );
31 virtual size_t write( const void *pBuf, size_t nBytes ); 31 virtual Bu::size write( const void *pBuf, Bu::size nBytes );
32 32
33 virtual bool isOpen(); 33 virtual bool isOpen();
34 34
35 size_t getCompressedSize(); 35 Bu::size getCompressedSize();
36 36
37 private: 37 private:
38 void bzError( int code ); 38 void bzError( int code );
@@ -41,7 +41,7 @@ namespace Bu
41 int nCompression; 41 int nCompression;
42 char *pBuf; 42 char *pBuf;
43 uint32_t nBufSize; 43 uint32_t nBufSize;
44 size_t sTotalOut; 44 Bu::size sTotalOut;
45 }; 45 };
46} 46}
47 47
diff --git a/src/cache.cpp b/src/cache.cpp
index 928da68..52bd9fc 100644
--- a/src/cache.cpp
+++ b/src/cache.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/cache.h b/src/cache.h
index 7b55b80..926556d 100644
--- a/src/cache.h
+++ b/src/cache.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/cachecalc.cpp b/src/cachecalc.cpp
index d3ede87..7b8a10a 100644
--- a/src/cachecalc.cpp
+++ b/src/cachecalc.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/cachecalc.h b/src/cachecalc.h
index e23e6fd..89cfadc 100644
--- a/src/cachecalc.h
+++ b/src/cachecalc.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/cachestore.cpp b/src/cachestore.cpp
index 9b37e42..af49548 100644
--- a/src/cachestore.cpp
+++ b/src/cachestore.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/cachestore.h b/src/cachestore.h
index d35bc0a..d0d91a2 100644
--- a/src/cachestore.h
+++ b/src/cachestore.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/cachestorefiles.cpp b/src/cachestorefiles.cpp
index 7f9d76d..66ce672 100644
--- a/src/cachestorefiles.cpp
+++ b/src/cachestorefiles.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/cachestorefiles.h b/src/cachestorefiles.h
index c2cf091..426cf83 100644
--- a/src/cachestorefiles.h
+++ b/src/cachestorefiles.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -8,7 +8,7 @@
8#ifndef BU_CACHE_STORE_FILES_H 8#ifndef BU_CACHE_STORE_FILES_H
9#define BU_CACHE_STORE_FILES_H 9#define BU_CACHE_STORE_FILES_H
10 10
11#include "bu/fstring.h" 11#include "bu/string.h"
12#include "bu/file.h" 12#include "bu/file.h"
13#include "bu/cachestore.h" 13#include "bu/cachestore.h"
14#include "bu/archive.h" 14#include "bu/archive.h"
@@ -53,7 +53,7 @@ namespace Bu
53 class CacheStoreFiles : public CacheStore<keytype, obtype> 53 class CacheStoreFiles : public CacheStore<keytype, obtype>
54 { 54 {
55 public: 55 public:
56 CacheStoreFiles( const Bu::FString &sPrefix ) : 56 CacheStoreFiles( const Bu::String &sPrefix ) :
57 sPrefix( sPrefix ) 57 sPrefix( sPrefix )
58 { 58 {
59 if( access( sPrefix.getStr(), W_OK|R_OK|X_OK ) ) 59 if( access( sPrefix.getStr(), W_OK|R_OK|X_OK ) )
@@ -138,7 +138,7 @@ namespace Bu
138 Bu::MemBuf mb; 138 Bu::MemBuf mb;
139 Bu::Formatter f( mb ); 139 Bu::Formatter f( mb );
140 f << sPrefix << "/"; 140 f << sPrefix << "/";
141 Bu::FString sBase = mb.getString(); 141 Bu::String sBase = mb.getString();
142 f << key; 142 f << key;
143 143
144 if( sBase == mb.getString() ) 144 if( sBase == mb.getString() )
@@ -199,7 +199,7 @@ namespace Bu
199 } 199 }
200 200
201 private: 201 private:
202 Bu::FString sPrefix; 202 Bu::String sPrefix;
203 }; 203 };
204 204
205}; 205};
diff --git a/src/cachestoremyriad.cpp b/src/cachestoremyriad.cpp
index b08aea1..9d00dce 100644
--- a/src/cachestoremyriad.cpp
+++ b/src/cachestoremyriad.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/cachestoremyriad.h b/src/cachestoremyriad.h
index 21c84e6..e632a82 100644
--- a/src/cachestoremyriad.h
+++ b/src/cachestoremyriad.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -8,7 +8,7 @@
8#ifndef BU_CACHE_STORE_MYRIAD_H 8#ifndef BU_CACHE_STORE_MYRIAD_H
9#define BU_CACHE_STORE_MYRIAD_H 9#define BU_CACHE_STORE_MYRIAD_H
10 10
11#include "bu/fstring.h" 11#include "bu/string.h"
12#include "bu/stream.h" 12#include "bu/stream.h"
13#include "bu/myriad.h" 13#include "bu/myriad.h"
14#include "bu/cachestore.h" 14#include "bu/cachestore.h"
diff --git a/src/client.cpp b/src/client.cpp
index b635c8b..02e51de 100644
--- a/src/client.cpp
+++ b/src/client.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -40,7 +40,7 @@ Bu::Client::~Client()
40void Bu::Client::processInput() 40void Bu::Client::processInput()
41{ 41{
42 char buf[RBS]; 42 char buf[RBS];
43 size_t nRead, nTotal=0; 43 Bu::size nRead, nTotal=0;
44 44
45 for(;;) 45 for(;;)
46 { 46 {
@@ -109,12 +109,12 @@ void Bu::Client::clearProtocol()
109 pProto = NULL; 109 pProto = NULL;
110} 110}
111/* 111/*
112Bu::FString &Bu::Client::getInput() 112Bu::String &Bu::Client::getInput()
113{ 113{
114 return sReadBuf; 114 return sReadBuf;
115} 115}
116 116
117Bu::FString &Bu::Client::getOutput() 117Bu::String &Bu::Client::getOutput()
118{ 118{
119 return sWriteBuf; 119 return sWriteBuf;
120} 120}
@@ -126,72 +126,72 @@ bool Bu::Client::isOpen()
126 return pTopStream->isOpen(); 126 return pTopStream->isOpen();
127} 127}
128 128
129size_t Bu::Client::write( const Bu::FString &sData ) 129Bu::size Bu::Client::write( const Bu::String &sData )
130{ 130{
131 return qbWrite.write( sData.getStr(), sData.getSize() ); 131 return qbWrite.write( sData.getStr(), sData.getSize() );
132} 132}
133 133
134size_t Bu::Client::write( const void *pData, size_t nBytes ) 134Bu::size Bu::Client::write( const void *pData, Bu::size nBytes )
135{ 135{
136 return qbWrite.write( pData, nBytes ); 136 return qbWrite.write( pData, nBytes );
137} 137}
138 138
139size_t Bu::Client::write( int8_t nData ) 139Bu::size Bu::Client::write( int8_t nData )
140{ 140{
141 return qbWrite.write( (const char *)&nData, sizeof(nData) ); 141 return qbWrite.write( (const char *)&nData, sizeof(nData) );
142} 142}
143 143
144size_t Bu::Client::write( int16_t nData ) 144Bu::size Bu::Client::write( int16_t nData )
145{ 145{
146 return qbWrite.write( (const char *)&nData, sizeof(nData) ); 146 return qbWrite.write( (const char *)&nData, sizeof(nData) );
147} 147}
148 148
149size_t Bu::Client::write( int32_t nData ) 149Bu::size Bu::Client::write( int32_t nData )
150{ 150{
151 return qbWrite.write( (const char *)&nData, sizeof(nData) ); 151 return qbWrite.write( (const char *)&nData, sizeof(nData) );
152} 152}
153 153
154size_t Bu::Client::write( int64_t nData ) 154Bu::size Bu::Client::write( int64_t nData )
155{ 155{
156 return qbWrite.write( (const char *)&nData, sizeof(nData) ); 156 return qbWrite.write( (const char *)&nData, sizeof(nData) );
157} 157}
158 158
159size_t Bu::Client::write( uint8_t nData ) 159Bu::size Bu::Client::write( uint8_t nData )
160{ 160{
161 return qbWrite.write( (const char *)&nData, sizeof(nData) ); 161 return qbWrite.write( (const char *)&nData, sizeof(nData) );
162} 162}
163 163
164size_t Bu::Client::write( uint16_t nData ) 164Bu::size Bu::Client::write( uint16_t nData )
165{ 165{
166 return qbWrite.write( (const char *)&nData, sizeof(nData) ); 166 return qbWrite.write( (const char *)&nData, sizeof(nData) );
167} 167}
168 168
169size_t Bu::Client::write( uint32_t nData ) 169Bu::size Bu::Client::write( uint32_t nData )
170{ 170{
171 return qbWrite.write( (const char *)&nData, sizeof(nData) ); 171 return qbWrite.write( (const char *)&nData, sizeof(nData) );
172} 172}
173 173
174size_t Bu::Client::write( uint64_t nData ) 174Bu::size Bu::Client::write( uint64_t nData )
175{ 175{
176 return qbWrite.write( (const char *)&nData, sizeof(nData) ); 176 return qbWrite.write( (const char *)&nData, sizeof(nData) );
177} 177}
178 178
179size_t Bu::Client::read( void *pData, size_t nBytes ) 179Bu::size Bu::Client::read( void *pData, Bu::size nBytes )
180{ 180{
181 return qbRead.read( pData, nBytes ); 181 return qbRead.read( pData, nBytes );
182} 182}
183 183
184size_t Bu::Client::peek( void *pData, int nBytes, int nOffset ) 184Bu::size Bu::Client::peek( void *pData, int nBytes, int nOffset )
185{ 185{
186 return qbRead.peek( pData, nBytes, nOffset ); 186 return qbRead.peek( pData, nBytes, nOffset );
187} 187}
188 188
189long Bu::Client::getInputSize() 189Bu::size Bu::Client::getInputSize()
190{ 190{
191 return qbRead.getSize(); 191 return qbRead.getSize();
192} 192}
193 193
194long Bu::Client::getOutputSize() 194Bu::size Bu::Client::getOutputSize()
195{ 195{
196 return qbWrite.getSize(); 196 return qbWrite.getSize();
197} 197}
@@ -221,7 +221,7 @@ Bu::ClientLink *Bu::Client::getLink()
221 return pfLink->createLink( this ); 221 return pfLink->createLink( this );
222} 222}
223 223
224void Bu::Client::onMessage( const Bu::FString &sMsg ) 224void Bu::Client::onMessage( const Bu::String &sMsg )
225{ 225{
226 if( pProto ) 226 if( pProto )
227 pProto->onMessage( this, sMsg ); 227 pProto->onMessage( this, sMsg );
@@ -233,22 +233,22 @@ void Bu::Client::tick()
233 pProto->onTick( this ); 233 pProto->onTick( this );
234} 234}
235 235
236long Bu::Client::tell() 236Bu::size Bu::Client::tell()
237{ 237{
238 return 0; 238 return 0;
239} 239}
240 240
241void Bu::Client::seek( long offset ) 241void Bu::Client::seek( Bu::size offset )
242{ 242{
243 return qbRead.seek( offset ); 243 return qbRead.seek( offset );
244} 244}
245 245
246void Bu::Client::setPos( long ) 246void Bu::Client::setPos( Bu::size )
247{ 247{
248 throw Bu::ExceptionBase(); 248 throw Bu::ExceptionBase();
249} 249}
250 250
251void Bu::Client::setPosEnd( long ) 251void Bu::Client::setPosEnd( Bu::size )
252{ 252{
253 throw Bu::ExceptionBase(); 253 throw Bu::ExceptionBase();
254} 254}
@@ -298,8 +298,23 @@ void Bu::Client::setBlocking( bool )
298 throw Bu::ExceptionBase(); 298 throw Bu::ExceptionBase();
299} 299}
300 300
301void Bu::Client::setSize( long ) 301void Bu::Client::setSize( Bu::size )
302{ 302{
303 throw Bu::ExceptionBase(); 303 throw Bu::ExceptionBase();
304} 304}
305 305
306Bu::size Bu::Client::getSize() const
307{
308 return 0;
309}
310
311Bu::size Bu::Client::getBlockSize() const
312{
313 return pSocket->getBlockSize();
314}
315
316Bu::String Bu::Client::getLocation() const
317{
318 return pSocket->getLocation();
319}
320
diff --git a/src/client.h b/src/client.h
index 096df2f..119c2c1 100644
--- a/src/client.h
+++ b/src/client.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -10,7 +10,8 @@
10 10
11#include <stdint.h> 11#include <stdint.h>
12 12
13#include "bu/fstring.h" 13#include "bu/config.h"
14#include "bu/string.h"
14#include "bu/queuebuf.h" 15#include "bu/queuebuf.h"
15 16
16namespace Bu 17namespace Bu
@@ -32,23 +33,23 @@ namespace Bu
32 void processInput(); 33 void processInput();
33 void processOutput(); 34 void processOutput();
34 35
35 //Bu::FString &getInput(); 36 //Bu::String &getInput();
36 //Bu::FString &getOutput(); 37 //Bu::String &getOutput();
37 size_t write( const Bu::FString &sData ); 38 Bu::size write( const Bu::String &sData );
38 size_t write( const void *pData, size_t nBytes ); 39 Bu::size write( const void *pData, Bu::size nBytes );
39 size_t write( int8_t nData ); 40 Bu::size write( int8_t nData );
40 size_t write( int16_t nData ); 41 Bu::size write( int16_t nData );
41 size_t write( int32_t nData ); 42 Bu::size write( int32_t nData );
42 size_t write( int64_t nData ); 43 Bu::size write( int64_t nData );
43 size_t write( uint8_t nData ); 44 Bu::size write( uint8_t nData );
44 size_t write( uint16_t nData ); 45 Bu::size write( uint16_t nData );
45 size_t write( uint32_t nData ); 46 Bu::size write( uint32_t nData );
46 size_t write( uint64_t nData ); 47 Bu::size write( uint64_t nData );
47 size_t read( void *pData, size_t nBytes ); 48 Bu::size read( void *pData, Bu::size nBytes );
48 size_t peek( void *pData, int nBytes, int nOffset=0 ); 49 Bu::size peek( void *pData, int nBytes, int nOffset=0 );
49// void seek( int nBytes ); 50// void seek( int nBytes );
50 long getInputSize(); 51 Bu::size getInputSize();
51 long getOutputSize(); 52 Bu::size getOutputSize();
52 53
53 void setProtocol( Protocol *pProto ); 54 void setProtocol( Protocol *pProto );
54 Bu::Protocol *getProtocol(); 55 Bu::Protocol *getProtocol();
@@ -65,7 +66,7 @@ namespace Bu
65 66
66 class ClientLink *getLink(); 67 class ClientLink *getLink();
67 68
68 void onMessage( const Bu::FString &sMsg ); 69 void onMessage( const Bu::String &sMsg );
69 70
70 bool hasOutput() { return qbWrite.getSize() > 0; } 71 bool hasOutput() { return qbWrite.getSize() > 0; }
71 bool hasInput() { return qbRead.getSize() > 0; } 72 bool hasInput() { return qbRead.getSize() > 0; }
@@ -98,10 +99,10 @@ namespace Bu
98 * These are required to qualify as a stream, I dunno how many will 99 * These are required to qualify as a stream, I dunno how many will
99 * be implemented. 100 * be implemented.
100 */ 101 */
101 virtual long tell(); 102 virtual Bu::size tell();
102 virtual void seek( long offset ); 103 virtual void seek( Bu::size offset );
103 virtual void setPos( long pos ); 104 virtual void setPos( Bu::size pos );
104 virtual void setPosEnd( long pos ); 105 virtual void setPosEnd( Bu::size pos );
105 virtual bool isEos(); 106 virtual bool isEos();
106 virtual void flush(); 107 virtual void flush();
107 virtual bool canRead(); 108 virtual bool canRead();
@@ -111,7 +112,10 @@ namespace Bu
111 virtual bool isSeekable(); 112 virtual bool isSeekable();
112 virtual bool isBlocking(); 113 virtual bool isBlocking();
113 virtual void setBlocking( bool bBlocking=true ); 114 virtual void setBlocking( bool bBlocking=true );
114 virtual void setSize( long iSize ); 115 virtual void setSize( Bu::size iSize );
116 virtual size getSize() const;
117 virtual size getBlockSize() const;
118 virtual Bu::String getLocation() const;
115 119
116 private: 120 private:
117 typedef Bu::List<Bu::Stream *> FilterList; 121 typedef Bu::List<Bu::Stream *> FilterList;
diff --git a/src/clientlink.cpp b/src/clientlink.cpp
index 765e6a5..ce8b2cb 100644
--- a/src/clientlink.cpp
+++ b/src/clientlink.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/clientlink.h b/src/clientlink.h
index aa6d362..e4618e7 100644
--- a/src/clientlink.h
+++ b/src/clientlink.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -8,7 +8,7 @@
8#ifndef BU_CLIENT_LINK_H 8#ifndef BU_CLIENT_LINK_H
9#define BU_CLIENT_LINK_H 9#define BU_CLIENT_LINK_H
10 10
11#include "bu/fstring.h" 11#include "bu/string.h"
12 12
13namespace Bu 13namespace Bu
14{ 14{
@@ -18,7 +18,7 @@ namespace Bu
18 ClientLink(); 18 ClientLink();
19 virtual ~ClientLink(); 19 virtual ~ClientLink();
20 20
21 virtual void sendMessage( const Bu::FString &sMsg )=0; 21 virtual void sendMessage( const Bu::String &sMsg )=0;
22 }; 22 };
23}; 23};
24 24
diff --git a/src/clientlinkfactory.cpp b/src/clientlinkfactory.cpp
index 5f17b50..f48e11e 100644
--- a/src/clientlinkfactory.cpp
+++ b/src/clientlinkfactory.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/clientlinkfactory.h b/src/clientlinkfactory.h
index a5f033c..21d3363 100644
--- a/src/clientlinkfactory.h
+++ b/src/clientlinkfactory.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/compat/linux.h b/src/compat/linux.h
index ccc8536..7eaed8e 100644
--- a/src/compat/linux.h
+++ b/src/compat/linux.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/compat/osx.h b/src/compat/osx.h
index 7169d7e..19628a3 100644
--- a/src/compat/osx.h
+++ b/src/compat/osx.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/compat/win32.cpp b/src/compat/win32.cpp
index 052644a..b689322 100644
--- a/src/compat/win32.cpp
+++ b/src/compat/win32.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -162,7 +162,7 @@ int Bu::Winsock2::__WSAFDIsSet( SOCKET s, fd_set *set ) {
162 return (*Bu::Winsock2::_fnptr___WSAFDIsSet)( s, set ); 162 return (*Bu::Winsock2::_fnptr___WSAFDIsSet)( s, set );
163} 163}
164 164
165Bu::FString Bu::getLastWinError() 165Bu::String Bu::getLastWinError()
166{ 166{
167 LPVOID lpMsgBuf; 167 LPVOID lpMsgBuf;
168 DWORD dw = GetLastError(); 168 DWORD dw = GetLastError();
@@ -177,7 +177,7 @@ Bu::FString Bu::getLastWinError()
177 (LPSTR) &lpMsgBuf, 177 (LPSTR) &lpMsgBuf,
178 0, NULL ); 178 0, NULL );
179 179
180 Bu::FString sRet( (char *)lpMsgBuf ); 180 Bu::String sRet( (char *)lpMsgBuf );
181 181
182 LocalFree(lpMsgBuf); 182 LocalFree(lpMsgBuf);
183 183
diff --git a/src/compat/win32.h b/src/compat/win32.h
index ea0ae53..1d82fbe 100644
--- a/src/compat/win32.h
+++ b/src/compat/win32.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -18,7 +18,7 @@ extern "C"
18} 18}
19#endif 19#endif
20 20
21#include "bu/fstring.h" 21#include "bu/string.h"
22#include "bu/singleton.h" 22#include "bu/singleton.h"
23 23
24#ifndef TEMP_FAILURE_RETRY 24#ifndef TEMP_FAILURE_RETRY
@@ -90,7 +90,7 @@ namespace Bu
90 static char *gai_strerror( int iCode ); 90 static char *gai_strerror( int iCode );
91 }; 91 };
92 92
93 Bu::FString getLastWinError(); 93 Bu::String getLastWinError();
94}; 94};
95 95
96#ifdef FD_ISSET 96#ifdef FD_ISSET
diff --git a/src/conduit.cpp b/src/conduit.cpp
index 36cda01..bb99526 100644
--- a/src/conduit.cpp
+++ b/src/conduit.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/conduit.h b/src/conduit.h
index 7125fc5..cc88667 100644
--- a/src/conduit.h
+++ b/src/conduit.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -9,7 +9,7 @@
9#define BU_CONDUIT_H 9#define BU_CONDUIT_H
10 10
11#include "bu/stream.h" 11#include "bu/stream.h"
12#include "bu/fstring.h" 12#include "bu/string.h"
13 13
14namespace Bu 14namespace Bu
15{ 15{
diff --git a/src/config.h b/src/config.h
index ad4991e..3046b59 100644
--- a/src/config.h
+++ b/src/config.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -15,4 +15,6 @@
15#include "bu/compat/osx.h" 15#include "bu/compat/osx.h"
16#include "bu/compat/linux.h" 16#include "bu/compat/linux.h"
17 17
18#include "bu/extratypes.h"
19
18#endif 20#endif
diff --git a/src/crypt.cpp b/src/crypt.cpp
index ae04353..eb87479 100644
--- a/src/crypt.cpp
+++ b/src/crypt.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -11,14 +11,14 @@
11#include "bu/membuf.h" 11#include "bu/membuf.h"
12#include "bu/file.h" 12#include "bu/file.h"
13 13
14Bu::FString Bu::cryptPass( const Bu::FString &sPass, const Bu::FString &sSalt ) 14Bu::String Bu::cryptPass( const Bu::String &sPass, const Bu::String &sSalt )
15{ 15{
16 Bu::Md5 md5; 16 Bu::Md5 md5;
17 Bu::MemBuf mbOut; 17 Bu::MemBuf mbOut;
18 Bu::Base64 b64Out( mbOut ); 18 Bu::Base64 b64Out( mbOut );
19 19
20 Bu::FString::const_iterator i = sSalt.find('$'); 20 Bu::String::const_iterator i = sSalt.find('$');
21 Bu::FString sSaltSml = sSalt.getSubStr( sSalt.begin(), i ); 21 Bu::String sSaltSml = sSalt.getSubStr( sSalt.begin(), i );
22 22
23 md5.addData( sPass ); 23 md5.addData( sPass );
24 md5.addData( sSaltSml ); 24 md5.addData( sSaltSml );
@@ -29,7 +29,7 @@ Bu::FString Bu::cryptPass( const Bu::FString &sPass, const Bu::FString &sSalt )
29 return sSaltSml + "$" + mbOut.getString(); 29 return sSaltSml + "$" + mbOut.getString();
30} 30}
31 31
32Bu::FString Bu::cryptPass( const Bu::FString &sPass ) 32Bu::String Bu::cryptPass( const Bu::String &sPass )
33{ 33{
34 Bu::MemBuf mbSalt; 34 Bu::MemBuf mbSalt;
35 Bu::Base64 b64Salt( mbSalt ); 35 Bu::Base64 b64Salt( mbSalt );
diff --git a/src/crypt.h b/src/crypt.h
index cf7fb97..a94402a 100644
--- a/src/crypt.h
+++ b/src/crypt.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -8,12 +8,12 @@
8#ifndef BU_CRYPT_H 8#ifndef BU_CRYPT_H
9#define BU_CRYPT_H 9#define BU_CRYPT_H
10 10
11#include "bu/fstring.h" 11#include "bu/string.h"
12 12
13namespace Bu 13namespace Bu
14{ 14{
15 FString cryptPass( const Bu::FString &sPass, const Bu::FString &sSalt ); 15 String cryptPass( const Bu::String &sPass, const Bu::String &sSalt );
16 FString cryptPass( const Bu::FString &sPass ); 16 String cryptPass( const Bu::String &sPass );
17}; 17};
18 18
19#endif 19#endif
diff --git a/src/cryptohash.cpp b/src/cryptohash.cpp
index 8aee415..ddd293c 100644
--- a/src/cryptohash.cpp
+++ b/src/cryptohash.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -15,15 +15,15 @@ Bu::CryptoHash::~CryptoHash()
15{ 15{
16} 16}
17 17
18void Bu::CryptoHash::addData( const Bu::FString &sData ) 18void Bu::CryptoHash::addData( const Bu::String &sData )
19{ 19{
20 addData( sData.getStr(), sData.getSize() ); 20 addData( sData.getStr(), sData.getSize() );
21} 21}
22 22
23Bu::FString Bu::CryptoHash::getHexResult() 23Bu::String Bu::CryptoHash::getHexResult()
24{ 24{
25 Bu::FString sResult = getResult(); 25 Bu::String sResult = getResult();
26 Bu::FString sRet( 2*sResult.getSize() ); 26 Bu::String sRet( 2*sResult.getSize() );
27 static const char hex_tab[] = {"0123456789abcdef"}; 27 static const char hex_tab[] = {"0123456789abcdef"};
28 28
29 int k = 0; 29 int k = 0;
diff --git a/src/cryptohash.h b/src/cryptohash.h
index 5d83895..bc5435f 100644
--- a/src/cryptohash.h
+++ b/src/cryptohash.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -8,7 +8,7 @@
8#ifndef BU_CRYPTO_HASH_H 8#ifndef BU_CRYPTO_HASH_H
9#define BU_CRYPTO_HASH_H 9#define BU_CRYPTO_HASH_H
10 10
11#include "bu/fstring.h" 11#include "bu/string.h"
12 12
13namespace Bu 13namespace Bu
14{ 14{
@@ -21,12 +21,12 @@ namespace Bu
21 virtual ~CryptoHash(); 21 virtual ~CryptoHash();
22 22
23 virtual void reset() = 0; 23 virtual void reset() = 0;
24 virtual void setSalt( const Bu::FString &sSalt ) = 0; 24 virtual void setSalt( const Bu::String &sSalt ) = 0;
25 virtual void addData( const void *sData, int iSize ) = 0; 25 virtual void addData( const void *sData, int iSize ) = 0;
26 virtual void addData( const Bu::FString &sData ); 26 virtual void addData( const Bu::String &sData );
27 virtual FString getResult() = 0; 27 virtual String getResult() = 0;
28 virtual void writeResult( Stream &sOut ) = 0; 28 virtual void writeResult( Stream &sOut ) = 0;
29 virtual Bu::FString getHexResult(); 29 virtual Bu::String getHexResult();
30 }; 30 };
31}; 31};
32 32
diff --git a/src/csvreader.cpp b/src/csvreader.cpp
index f3133c2..4da7883 100644
--- a/src/csvreader.cpp
+++ b/src/csvreader.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -41,12 +41,12 @@ Bu::StrArray Bu::CsvReader::readLine()
41{ 41{
42 Bu::StrArray aVals; 42 Bu::StrArray aVals;
43 43
44 Bu::FString sLine = sIn.readLine(); 44 Bu::String sLine = sIn.readLine();
45 45
46 if( !sLine.isSet() ) 46 if( !sLine.isSet() )
47 return Bu::StrArray(); 47 return Bu::StrArray();
48 48
49 Bu::FString::iterator i = sLine.begin(); 49 Bu::String::iterator i = sLine.begin();
50 50
51 aVals.append( sDecode( i ) ); 51 aVals.append( sDecode( i ) );
52 52
@@ -73,9 +73,9 @@ Bu::StrArray Bu::CsvReader::readLine()
73 return aVals; 73 return aVals;
74} 74}
75 75
76Bu::FString Bu::CsvReader::decodeExcel( Bu::FString::iterator &i ) 76Bu::String Bu::CsvReader::decodeExcel( Bu::String::iterator &i )
77{ 77{
78 Bu::FString sRet; 78 Bu::String sRet;
79 79
80 for(; i && (*i == ' ' || *i == '\t'); i++ ) { } 80 for(; i && (*i == ' ' || *i == '\t'); i++ ) { }
81 81
@@ -123,7 +123,7 @@ Bu::FString Bu::CsvReader::decodeExcel( Bu::FString::iterator &i )
123 return sRet; 123 return sRet;
124} 124}
125 125
126Bu::FString Bu::CsvReader::decodeC( Bu::FString::iterator & ) 126Bu::String Bu::CsvReader::decodeC( Bu::String::iterator & )
127{ 127{
128 return ""; 128 return "";
129} 129}
diff --git a/src/csvreader.h b/src/csvreader.h
index 9ad65fd..2e9e7b0 100644
--- a/src/csvreader.h
+++ b/src/csvreader.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -8,19 +8,19 @@
8#ifndef BU_CSV_READER_H 8#ifndef BU_CSV_READER_H
9#define BU_CSV_READER_H 9#define BU_CSV_READER_H
10 10
11#include "bu/fstring.h" 11#include "bu/string.h"
12#include "bu/array.h" 12#include "bu/array.h"
13#include "bu/signals.h" 13#include "bu/signals.h"
14 14
15namespace Bu 15namespace Bu
16{ 16{
17 class Stream; 17 class Stream;
18 typedef Bu::Array<Bu::FString> StrArray; 18 typedef Bu::Array<Bu::String> StrArray;
19 19
20 class CsvReader 20 class CsvReader
21 { 21 {
22 public: 22 public:
23 typedef Bu::Signal1<Bu::FString, Bu::FString::iterator &> DecodeSignal; 23 typedef Bu::Signal1<Bu::String, Bu::String::iterator &> DecodeSignal;
24 enum Style 24 enum Style
25 { 25 {
26 styleExcel, ///< Excel style quotes around things that need em 26 styleExcel, ///< Excel style quotes around things that need em
@@ -37,8 +37,8 @@ namespace Bu
37 Stream &sIn; 37 Stream &sIn;
38 DecodeSignal sDecode; 38 DecodeSignal sDecode;
39 39
40 static Bu::FString decodeExcel( Bu::FString::iterator &i ); 40 static Bu::String decodeExcel( Bu::String::iterator &i );
41 static Bu::FString decodeC( Bu::FString::iterator &i ); 41 static Bu::String decodeC( Bu::String::iterator &i );
42 }; 42 };
43}; 43};
44 44
diff --git a/src/csvwriter.cpp b/src/csvwriter.cpp
index 3e2816b..58437b8 100644
--- a/src/csvwriter.cpp
+++ b/src/csvwriter.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -36,7 +36,7 @@ Bu::CsvWriter::~CsvWriter()
36 36
37void Bu::CsvWriter::writeLine( const StrArray &aStrs ) 37void Bu::CsvWriter::writeLine( const StrArray &aStrs )
38{ 38{
39 Bu::FString sBuf; 39 Bu::String sBuf;
40 for( StrArray::const_iterator i = aStrs.begin(); i; i++ ) 40 for( StrArray::const_iterator i = aStrs.begin(); i; i++ )
41 { 41 {
42 if( i != aStrs.begin() ) 42 if( i != aStrs.begin() )
@@ -48,12 +48,12 @@ void Bu::CsvWriter::writeLine( const StrArray &aStrs )
48 sOut.write( sBuf ); 48 sOut.write( sBuf );
49} 49}
50 50
51Bu::FString Bu::CsvWriter::encodeExcel( const Bu::FString &sIn ) 51Bu::String Bu::CsvWriter::encodeExcel( const Bu::String &sIn )
52{ 52{
53 if( sIn.find('\"') ) 53 if( sIn.find('\"') )
54 { 54 {
55 Bu::FString sOut = "\""; 55 Bu::String sOut = "\"";
56 for( Bu::FString::const_iterator i = sIn.begin(); i; i++ ) 56 for( Bu::String::const_iterator i = sIn.begin(); i; i++ )
57 { 57 {
58 if( *i == '\"' ) 58 if( *i == '\"' )
59 sOut += "\"\""; 59 sOut += "\"\"";
@@ -65,10 +65,10 @@ Bu::FString Bu::CsvWriter::encodeExcel( const Bu::FString &sIn )
65 return sIn; 65 return sIn;
66} 66}
67 67
68Bu::FString Bu::CsvWriter::encodeC( const Bu::FString &sIn ) 68Bu::String Bu::CsvWriter::encodeC( const Bu::String &sIn )
69{ 69{
70 Bu::FString sOut = ""; 70 Bu::String sOut = "";
71 for( Bu::FString::const_iterator i = sIn.begin(); i; i++ ) 71 for( Bu::String::const_iterator i = sIn.begin(); i; i++ )
72 { 72 {
73 if( *i == ',' ) 73 if( *i == ',' )
74 sOut += "\\,"; 74 sOut += "\\,";
diff --git a/src/csvwriter.h b/src/csvwriter.h
index 289d25c..4291ed5 100644
--- a/src/csvwriter.h
+++ b/src/csvwriter.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -8,19 +8,19 @@
8#ifndef BU_CSV_WRITER_H 8#ifndef BU_CSV_WRITER_H
9#define BU_CSV_WRITER_H 9#define BU_CSV_WRITER_H
10 10
11#include "bu/fstring.h" 11#include "bu/string.h"
12#include "bu/array.h" 12#include "bu/array.h"
13#include "bu/signals.h" 13#include "bu/signals.h"
14 14
15namespace Bu 15namespace Bu
16{ 16{
17 class Stream; 17 class Stream;
18 typedef Bu::Array<Bu::FString> StrArray; 18 typedef Bu::Array<Bu::String> StrArray;
19 19
20 class CsvWriter 20 class CsvWriter
21 { 21 {
22 public: 22 public:
23 typedef Bu::Signal1<Bu::FString, const Bu::FString &> EncodeSignal; 23 typedef Bu::Signal1<Bu::String, const Bu::String &> EncodeSignal;
24 enum Style 24 enum Style
25 { 25 {
26 styleExcel, ///< Excel style quotes around things that need em 26 styleExcel, ///< Excel style quotes around things that need em
@@ -37,8 +37,8 @@ namespace Bu
37 Stream &sOut; 37 Stream &sOut;
38 EncodeSignal sEncode; 38 EncodeSignal sEncode;
39 39
40 static Bu::FString encodeExcel( const Bu::FString &sIn ); 40 static Bu::String encodeExcel( const Bu::String &sIn );
41 static Bu::FString encodeC( const Bu::FString &sIn ); 41 static Bu::String encodeC( const Bu::String &sIn );
42 }; 42 };
43}; 43};
44 44
diff --git a/src/doxy/archives.dox b/src/doxy/archives.dox
index 1eaa1e5..7155227 100644
--- a/src/doxy/archives.dox
+++ b/src/doxy/archives.dox
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/doxy/formatting.dox b/src/doxy/formatting.dox
index 6787461..7acb9de 100644
--- a/src/doxy/formatting.dox
+++ b/src/doxy/formatting.dox
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/doxy/groups.dox b/src/doxy/groups.dox
index 58d5d05..479186a 100644
--- a/src/doxy/groups.dox
+++ b/src/doxy/groups.dox
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/doxy/main.dox b/src/doxy/main.dox
index c4c3ada..2964ee5 100644
--- a/src/doxy/main.dox
+++ b/src/doxy/main.dox
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/doxy/params.dox b/src/doxy/params.dox
index 74e7ddc..78c3e63 100644
--- a/src/doxy/params.dox
+++ b/src/doxy/params.dox
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/doxy/plugins.dox b/src/doxy/plugins.dox
index b29e6a4..d913430 100644
--- a/src/doxy/plugins.dox
+++ b/src/doxy/plugins.dox
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/doxy/servers.dox b/src/doxy/servers.dox
index 7bda7c1..c344b8a 100644
--- a/src/doxy/servers.dox
+++ b/src/doxy/servers.dox
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/doxy/streams.dox b/src/doxy/streams.dox
index 0be3736..c039804 100644
--- a/src/doxy/streams.dox
+++ b/src/doxy/streams.dox
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/doxy/taf.dox b/src/doxy/taf.dox
index d8a5410..15692f4 100644
--- a/src/doxy/taf.dox
+++ b/src/doxy/taf.dox
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/doxy/threading.dox b/src/doxy/threading.dox
index 0ecf1f4..9a04ecb 100644
--- a/src/doxy/threading.dox
+++ b/src/doxy/threading.dox
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/doxy/unittest.dox b/src/doxy/unittest.dox
index 24e1de4..5304551 100644
--- a/src/doxy/unittest.dox
+++ b/src/doxy/unittest.dox
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/exceptionbase.cpp b/src/exceptionbase.cpp
index 3b4f87a..13a98db 100644
--- a/src/exceptionbase.cpp
+++ b/src/exceptionbase.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/exceptionbase.h b/src/exceptionbase.h
index c92962f..b6ad9ca 100644
--- a/src/exceptionbase.h
+++ b/src/exceptionbase.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/extratypes.h b/src/extratypes.h
new file mode 100644
index 0000000..0dd92db
--- /dev/null
+++ b/src/extratypes.h
@@ -0,0 +1,26 @@
1/*
2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 *
4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE.
6 */
7
8#ifndef EXTRA_TYPES_H
9#define EXTRA_TYPES_H
10
11#include "bu/config.h"
12
13#include <stdint.h>
14
15namespace Bu
16{
17#ifdef USE_64BIT_IO
18 typedef int64_t size;
19 typedef uint64_t usize;
20#else
21 typedef int32_t size;
22 typedef uint32_t usize;
23#endif
24};
25
26#endif
diff --git a/src/fastcgi.cpp b/src/fastcgi.cpp
index ca3010e..2f9161e 100644
--- a/src/fastcgi.cpp
+++ b/src/fastcgi.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -114,14 +114,14 @@ void Bu::FastCgi::readPair( Bu::TcpSocket &s, StrHash &hParams, uint16_t &uRead
114 uRead += uName + uValue; 114 uRead += uName + uValue;
115 unsigned char *sName = new unsigned char[uName]; 115 unsigned char *sName = new unsigned char[uName];
116 s.read( sName, uName ); 116 s.read( sName, uName );
117 Bu::FString fsName( (char *)sName, uName ); 117 Bu::String fsName( (char *)sName, uName );
118 delete[] sName; 118 delete[] sName;
119 119
120 if( uValue > 0 ) 120 if( uValue > 0 )
121 { 121 {
122 unsigned char *sValue = new unsigned char[uValue]; 122 unsigned char *sValue = new unsigned char[uValue];
123 s.read( sValue, uValue ); 123 s.read( sValue, uValue );
124 Bu::FString fsValue( (char *)sValue, uValue ); 124 Bu::String fsValue( (char *)sValue, uValue );
125 hParams.insert( fsName, fsValue ); 125 hParams.insert( fsName, fsValue );
126 delete[] sValue; 126 delete[] sValue;
127 } 127 }
@@ -305,8 +305,8 @@ void Bu::FastCgi::run()
305 mStdOut, mStdErr 305 mStdOut, mStdErr
306 ); 306 );
307 307
308 Bu::FString &sStdOut = mStdOut.getString(); 308 Bu::String &sStdOut = mStdOut.getString();
309 Bu::FString &sStdErr = mStdErr.getString(); 309 Bu::String &sStdErr = mStdErr.getString();
310 310
311 Record rOut; 311 Record rOut;
312 memset( &rOut, 0, sizeof(rOut) ); 312 memset( &rOut, 0, sizeof(rOut) );
diff --git a/src/fastcgi.h b/src/fastcgi.h
index 7c1c04c..1a3d02e 100644
--- a/src/fastcgi.h
+++ b/src/fastcgi.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -8,7 +8,7 @@
8#ifndef BU_FAST_CGI_H 8#ifndef BU_FAST_CGI_H
9#define BU_FAST_CGI_H 9#define BU_FAST_CGI_H
10 10
11#include "bu/fstring.h" 11#include "bu/string.h"
12#include "bu/hash.h" 12#include "bu/hash.h"
13#include "bu/array.h" 13#include "bu/array.h"
14#include "bu/tcpsocket.h" 14#include "bu/tcpsocket.h"
@@ -27,7 +27,7 @@ namespace Bu
27 27
28 static bool isEmbedded(); 28 static bool isEmbedded();
29 29
30 typedef Bu::Hash<Bu::FString, Bu::FString> StrHash; 30 typedef Bu::Hash<Bu::String, Bu::String> StrHash;
31 enum RequestType 31 enum RequestType
32 { 32 {
33 typeBeginRequest = 1, 33 typeBeginRequest = 1,
@@ -86,8 +86,8 @@ namespace Bu
86 typedef struct Channel { 86 typedef struct Channel {
87 Channel() : uFlags( 0 ) { } 87 Channel() : uFlags( 0 ) { }
88 StrHash hParams; 88 StrHash hParams;
89 Bu::FString sStdIn; 89 Bu::String sStdIn;
90 Bu::FString sData; 90 Bu::String sData;
91 uint8_t uFlags; 91 uint8_t uFlags;
92 } Channel; 92 } Channel;
93 93
@@ -104,7 +104,7 @@ namespace Bu
104 104
105 virtual void onInit() { }; 105 virtual void onInit() { };
106 virtual int onRequest( const StrHash &hParams, 106 virtual int onRequest( const StrHash &hParams,
107 const Bu::FString &sStdIn, Bu::Stream &sStdOut, 107 const Bu::String &sStdIn, Bu::Stream &sStdOut,
108 Bu::Stream &sStdErr )=0; 108 Bu::Stream &sStdErr )=0;
109 virtual void onUninit() { }; 109 virtual void onUninit() { };
110 110
diff --git a/src/fbasicstring.cpp b/src/fbasicstring.cpp
deleted file mode 100644
index 4834301..0000000
--- a/src/fbasicstring.cpp
+++ /dev/null
@@ -1,9 +0,0 @@
1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved.
3 *
4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE.
6 */
7
8#include "bu/fbasicstring.h"
9
diff --git a/src/fifo.cpp b/src/fifo.cpp
index d1fa960..b0cf1c7 100644
--- a/src/fifo.cpp
+++ b/src/fifo.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -16,7 +16,7 @@
16 16
17namespace Bu { subExceptionDef( FifoException ) } 17namespace Bu { subExceptionDef( FifoException ) }
18 18
19Bu::Fifo::Fifo( const Bu::FString &sName, int iFlags, mode_t mAcc ) : 19Bu::Fifo::Fifo( const Bu::String &sName, int iFlags, mode_t mAcc ) :
20 iFlags( iFlags ), 20 iFlags( iFlags ),
21 iIn( -1 ), 21 iIn( -1 ),
22 iOut( -1 ) 22 iOut( -1 )
@@ -67,7 +67,7 @@ void Bu::Fifo::close()
67 } 67 }
68} 68}
69 69
70size_t Bu::Fifo::read( void *pBuf, size_t nBytes ) 70Bu::size Bu::Fifo::read( void *pBuf, Bu::size nBytes )
71{ 71{
72 if( iIn < 0 ) 72 if( iIn < 0 )
73 throw FifoException("Fifo not open for reading."); 73 throw FifoException("Fifo not open for reading.");
@@ -75,7 +75,7 @@ size_t Bu::Fifo::read( void *pBuf, size_t nBytes )
75 return TEMP_FAILURE_RETRY( ::read( iIn, pBuf, nBytes ) ); 75 return TEMP_FAILURE_RETRY( ::read( iIn, pBuf, nBytes ) );
76} 76}
77 77
78size_t Bu::Fifo::write( const void *pBuf, size_t nBytes ) 78Bu::size Bu::Fifo::write( const void *pBuf, Bu::size nBytes )
79{ 79{
80 if( iOut < 0 ) 80 if( iOut < 0 )
81 throw FifoException("Fifo not open for writing."); 81 throw FifoException("Fifo not open for writing.");
@@ -83,20 +83,20 @@ size_t Bu::Fifo::write( const void *pBuf, size_t nBytes )
83 return TEMP_FAILURE_RETRY( ::write( iOut, pBuf, nBytes ) ); 83 return TEMP_FAILURE_RETRY( ::write( iOut, pBuf, nBytes ) );
84} 84}
85 85
86long Bu::Fifo::tell() 86Bu::size Bu::Fifo::tell()
87{ 87{
88 return -1; 88 return -1;
89} 89}
90 90
91void Bu::Fifo::seek( long ) 91void Bu::Fifo::seek( Bu::size )
92{ 92{
93} 93}
94 94
95void Bu::Fifo::setPos( long ) 95void Bu::Fifo::setPos( Bu::size )
96{ 96{
97} 97}
98 98
99void Bu::Fifo::setPosEnd( long ) 99void Bu::Fifo::setPosEnd( Bu::size )
100{ 100{
101} 101}
102 102
diff --git a/src/fifo.h b/src/fifo.h
index fc70b2c..18a70ba 100644
--- a/src/fifo.h
+++ b/src/fifo.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -13,7 +13,7 @@
13#include <stdlib.h> 13#include <stdlib.h>
14 14
15#include "bu/stream.h" 15#include "bu/stream.h"
16#include "bu/fstring.h" 16#include "bu/string.h"
17#include "bu/exceptionbase.h" 17#include "bu/exceptionbase.h"
18 18
19namespace Bu 19namespace Bu
@@ -27,18 +27,18 @@ namespace Bu
27 class Fifo : public Bu::Stream 27 class Fifo : public Bu::Stream
28 { 28 {
29 public: 29 public:
30 Fifo( const Bu::FString &sName, int iFlags, mode_t mAcc=-1 ); 30 Fifo( const Bu::String &sName, int iFlags, mode_t mAcc=-1 );
31 virtual ~Fifo(); 31 virtual ~Fifo();
32 32
33 virtual void close(); 33 virtual void close();
34 virtual size_t read( void *pBuf, size_t nBytes ); 34 virtual Bu::size read( void *pBuf, Bu::size nBytes );
35 virtual size_t write( const void *pBuf, size_t nBytes ); 35 virtual Bu::size write( const void *pBuf, Bu::size nBytes );
36 using Stream::write; 36 using Stream::write;
37 37
38 virtual long tell(); 38 virtual Bu::size tell();
39 virtual void seek( long offset ); 39 virtual void seek( Bu::size offset );
40 virtual void setPos( long pos ); 40 virtual void setPos( Bu::size pos );
41 virtual void setPosEnd( long pos ); 41 virtual void setPosEnd( Bu::size pos );
42 virtual bool isEos(); 42 virtual bool isEos();
43 virtual bool isOpen(); 43 virtual bool isOpen();
44 44
diff --git a/src/file.cpp b/src/file.cpp
index 008b88e..09d53de 100644
--- a/src/file.cpp
+++ b/src/file.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -17,7 +17,7 @@
17 17
18namespace Bu { subExceptionDef( FileException ) } 18namespace Bu { subExceptionDef( FileException ) }
19 19
20Bu::File::File( const Bu::FString &sName, int iFlags ) : 20Bu::File::File( const Bu::String &sName, int iFlags ) :
21 fd( -1 ), 21 fd( -1 ),
22 bEos( true ) 22 bEos( true )
23{ 23{
@@ -59,12 +59,12 @@ void Bu::File::close()
59 } 59 }
60} 60}
61 61
62size_t Bu::File::read( void *pBuf, size_t nBytes ) 62Bu::size Bu::File::read( void *pBuf, Bu::size nBytes )
63{ 63{
64 if( fd < 0 ) 64 if( fd < 0 )
65 throw FileException("File not open."); 65 throw FileException("File not open.");
66 66
67 ssize_t iRead = ::read( fd, pBuf, nBytes ); 67 Bu::size iRead = ::read( fd, pBuf, nBytes );
68 if( iRead == 0 ) 68 if( iRead == 0 )
69 bEos = true; 69 bEos = true;
70 else if( iRead == -1 && errno == EAGAIN ) 70 else if( iRead == -1 && errno == EAGAIN )
@@ -74,18 +74,18 @@ size_t Bu::File::read( void *pBuf, size_t nBytes )
74 return iRead; 74 return iRead;
75} 75}
76 76
77size_t Bu::File::write( const void *pBuf, size_t nBytes ) 77Bu::size Bu::File::write( const void *pBuf, Bu::size nBytes )
78{ 78{
79 if( fd < 0 ) 79 if( fd < 0 )
80 throw FileException("File not open."); 80 throw FileException("File not open.");
81 81
82 ssize_t iWrote = ::write( fd, pBuf, nBytes ); 82 Bu::size iWrote = ::write( fd, pBuf, nBytes );
83 if( iWrote < 0 ) 83 if( iWrote < 0 )
84 throw FileException( errno, "%s", strerror( errno ) ); 84 throw FileException( errno, "%s", strerror( errno ) );
85 return iWrote; 85 return iWrote;
86} 86}
87 87
88long Bu::File::tell() 88Bu::size Bu::File::tell()
89{ 89{
90 if( fd < 0 ) 90 if( fd < 0 )
91 throw FileException("File not open."); 91 throw FileException("File not open.");
@@ -93,7 +93,7 @@ long Bu::File::tell()
93 return lseek( fd, 0, SEEK_CUR ); 93 return lseek( fd, 0, SEEK_CUR );
94} 94}
95 95
96void Bu::File::seek( long offset ) 96void Bu::File::seek( Bu::size offset )
97{ 97{
98 if( fd < 0 ) 98 if( fd < 0 )
99 throw FileException("File not open."); 99 throw FileException("File not open.");
@@ -102,7 +102,7 @@ void Bu::File::seek( long offset )
102 bEos = false; 102 bEos = false;
103} 103}
104 104
105void Bu::File::setPos( long pos ) 105void Bu::File::setPos( Bu::size pos )
106{ 106{
107 if( fd < 0 ) 107 if( fd < 0 )
108 throw FileException("File not open."); 108 throw FileException("File not open.");
@@ -111,7 +111,7 @@ void Bu::File::setPos( long pos )
111 bEos = false; 111 bEos = false;
112} 112}
113 113
114void Bu::File::setPosEnd( long pos ) 114void Bu::File::setPosEnd( Bu::size pos )
115{ 115{
116 if( fd < 0 ) 116 if( fd < 0 )
117 throw FileException("File not open."); 117 throw FileException("File not open.");
@@ -187,7 +187,7 @@ void Bu::File::setBlocking( bool bBlocking )
187#endif 187#endif
188} 188}
189 189
190Bu::File Bu::File::tempFile( Bu::FString &sName ) 190Bu::File Bu::File::tempFile( Bu::String &sName )
191{ 191{
192 uint32_t iX; 192 uint32_t iX;
193 iX = time( NULL ) + getpid(); 193 iX = time( NULL ) + getpid();
@@ -218,7 +218,7 @@ Bu::File Bu::File::tempFile( Bu::FString &sName )
218 " iterations."); 218 " iterations.");
219} 219}
220 220
221void Bu::File::setSize( long iSize ) 221void Bu::File::setSize( Bu::size iSize )
222{ 222{
223#ifdef WIN32 223#ifdef WIN32
224 chsize( fd, iSize ); 224 chsize( fd, iSize );
@@ -227,6 +227,25 @@ void Bu::File::setSize( long iSize )
227#endif 227#endif
228} 228}
229 229
230Bu::size Bu::File::getSize() const
231{
232 struct stat st;
233 fstat( fd, &st );
234 return st.st_size;
235}
236
237Bu::size Bu::File::getBlockSize() const
238{
239 struct stat st;
240 fstat( fd, &st );
241 return st.st_blksize;
242}
243
244Bu::String Bu::File::getLocation() const
245{
246 return "to be implemented";
247}
248
230#ifndef WIN32 249#ifndef WIN32
231void Bu::File::chmod( mode_t t ) 250void Bu::File::chmod( mode_t t )
232{ 251{
diff --git a/src/file.h b/src/file.h
index b2cd2a4..e3225fa 100644
--- a/src/file.h
+++ b/src/file.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -12,7 +12,7 @@
12#include <sys/types.h> 12#include <sys/types.h>
13 13
14#include "bu/stream.h" 14#include "bu/stream.h"
15#include "bu/fstring.h" 15#include "bu/string.h"
16#include "bu/exceptionbase.h" 16#include "bu/exceptionbase.h"
17 17
18namespace Bu 18namespace Bu
@@ -26,19 +26,19 @@ namespace Bu
26 class File : public Bu::Stream 26 class File : public Bu::Stream
27 { 27 {
28 public: 28 public:
29 File( const Bu::FString &sName, int iFlags ); 29 File( const Bu::String &sName, int iFlags );
30 File( int fd ); 30 File( int fd );
31 virtual ~File(); 31 virtual ~File();
32 32
33 virtual void close(); 33 virtual void close();
34 virtual size_t read( void *pBuf, size_t nBytes ); 34 virtual Bu::size read( void *pBuf, Bu::size nBytes );
35 virtual size_t write( const void *pBuf, size_t nBytes ); 35 virtual Bu::size write( const void *pBuf, Bu::size nBytes );
36 using Stream::write; 36 using Stream::write;
37 37
38 virtual long tell(); 38 virtual Bu::size tell();
39 virtual void seek( long offset ); 39 virtual void seek( Bu::size offset );
40 virtual void setPos( long pos ); 40 virtual void setPos( Bu::size pos );
41 virtual void setPosEnd( long pos ); 41 virtual void setPosEnd( Bu::size pos );
42 virtual bool isEos(); 42 virtual bool isEos();
43 virtual bool isOpen(); 43 virtual bool isOpen();
44 44
@@ -70,17 +70,21 @@ namespace Bu
70 /// Same as Write|Create|Truncate 70 /// Same as Write|Create|Truncate
71 }; 71 };
72 72
73 virtual void setSize( long iSize ); 73 virtual void setSize( Bu::size iSize );
74
75 virtual size getSize() const;
76 virtual size getBlockSize() const;
77 virtual Bu::String getLocation() const;
74 78
75 /** 79 /**
76 * Create a temp file and return its handle. The file is opened 80 * Create a temp file and return its handle. The file is opened
77 * Read/Write. 81 * Read/Write.
78 *@param sName (Bu::FString) Give in the form: "/tmp/tmpfileXXXXXXXX" 82 *@param sName (Bu::String) Give in the form: "/tmp/tmpfileXXXXXXXX"
79 * It will alter your (sName) setting the 'X's to random 83 * It will alter your (sName) setting the 'X's to random
80 * characters. 84 * characters.
81 *@returns (Bu::File) A file object representing your temp file. 85 *@returns (Bu::File) A file object representing your temp file.
82 */ 86 */
83 static Bu::File tempFile( Bu::FString &sName ); 87 static Bu::File tempFile( Bu::String &sName );
84 88
85#ifndef WIN32 89#ifndef WIN32
86 /** 90 /**
diff --git a/src/filter.cpp b/src/filter.cpp
index 900baaa..3fe8f0e 100644
--- a/src/filter.cpp
+++ b/src/filter.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -22,22 +22,22 @@ void Bu::Filter::close()
22 rNext.close(); 22 rNext.close();
23} 23}
24 24
25long Bu::Filter::tell() 25Bu::size Bu::Filter::tell()
26{ 26{
27 return rNext.tell(); 27 return rNext.tell();
28} 28}
29 29
30void Bu::Filter::seek( long offset ) 30void Bu::Filter::seek( Bu::size offset )
31{ 31{
32 rNext.seek( offset ); 32 rNext.seek( offset );
33} 33}
34 34
35void Bu::Filter::setPos( long pos ) 35void Bu::Filter::setPos( Bu::size pos )
36{ 36{
37 rNext.setPos( pos ); 37 rNext.setPos( pos );
38} 38}
39 39
40void Bu::Filter::setPosEnd( long pos ) 40void Bu::Filter::setPosEnd( Bu::size pos )
41{ 41{
42 rNext.setPosEnd( pos ); 42 rNext.setPosEnd( pos );
43} 43}
@@ -87,7 +87,7 @@ void Bu::Filter::setBlocking( bool bBlocking )
87 rNext.setBlocking( bBlocking ); 87 rNext.setBlocking( bBlocking );
88} 88}
89 89
90void Bu::Filter::setSize( long ) 90void Bu::Filter::setSize( Bu::size )
91{ 91{
92} 92}
93 93
@@ -96,3 +96,18 @@ void Bu::Filter::flush()
96 rNext.flush(); 96 rNext.flush();
97} 97}
98 98
99Bu::size Bu::Filter::getSize() const
100{
101 return rNext.getSize();
102}
103
104Bu::size Bu::Filter::getBlockSize() const
105{
106 return rNext.getBlockSize();
107}
108
109Bu::String Bu::Filter::getLocation() const
110{
111 return rNext.getLocation();
112}
113
diff --git a/src/filter.h b/src/filter.h
index 5507daa..2c57805 100644
--- a/src/filter.h
+++ b/src/filter.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -41,12 +41,12 @@ namespace Bu
41 virtual ~Filter(); 41 virtual ~Filter();
42 42
43 virtual void start()=0; 43 virtual void start()=0;
44 virtual size_t stop()=0; 44 virtual Bu::size stop()=0;
45 virtual void close(); 45 virtual void close();
46 virtual long tell(); 46 virtual Bu::size tell();
47 virtual void seek( long offset ); 47 virtual void seek( Bu::size offset );
48 virtual void setPos( long pos ); 48 virtual void setPos( Bu::size pos );
49 virtual void setPosEnd( long pos ); 49 virtual void setPosEnd( Bu::size pos );
50 virtual bool isEos(); 50 virtual bool isEos();
51 virtual bool isOpen(); 51 virtual bool isOpen();
52 52
@@ -66,8 +66,12 @@ namespace Bu
66 * Most filters won't re-implement this, it doesn't make a lot of sense 66 * Most filters won't re-implement this, it doesn't make a lot of sense
67 * for filters, in general. 67 * for filters, in general.
68 */ 68 */
69 virtual void setSize( long iSize ); 69 virtual void setSize( Bu::size iSize );
70 70
71 virtual size getSize() const;
72 virtual size getBlockSize() const;
73 virtual Bu::String getLocation() const;
74
71 protected: 75 protected:
72 Bu::Stream &rNext; 76 Bu::Stream &rNext;
73 77
diff --git a/src/formatter.cpp b/src/formatter.cpp
index 7eaa1e2..f73d46e 100644
--- a/src/formatter.cpp
+++ b/src/formatter.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -21,7 +21,7 @@ Bu::Formatter::~Formatter()
21{ 21{
22} 22}
23 23
24void Bu::Formatter::write( const Bu::FString &sStr ) 24void Bu::Formatter::write( const Bu::String &sStr )
25{ 25{
26 rStream.write( sStr ); 26 rStream.write( sStr );
27} 27}
@@ -31,7 +31,7 @@ void Bu::Formatter::write( const void *sStr, int iLen )
31 rStream.write( sStr, iLen ); 31 rStream.write( sStr, iLen );
32} 32}
33 33
34void Bu::Formatter::writeAligned( const Bu::FString &sStr ) 34void Bu::Formatter::writeAligned( const Bu::String &sStr )
35{ 35{
36 int iLen = sStr.getSize(); 36 int iLen = sStr.getSize();
37 if( iLen > fLast.uMinWidth ) 37 if( iLen > fLast.uMinWidth )
@@ -117,9 +117,9 @@ void Bu::Formatter::read( void *sStr, int iLen )
117 rStream.read( sStr, iLen ); 117 rStream.read( sStr, iLen );
118} 118}
119 119
120Bu::FString Bu::Formatter::readToken() 120Bu::String Bu::Formatter::readToken()
121{ 121{
122 Bu::FString sRet; 122 Bu::String sRet;
123 if( fLast.bTokenize ) 123 if( fLast.bTokenize )
124 { 124 {
125 for(;;) 125 for(;;)
@@ -292,7 +292,7 @@ Bu::Formatter &Bu::operator<<( Bu::Formatter &f, char *sStr )
292 return f; 292 return f;
293} 293}
294 294
295Bu::Formatter &Bu::operator<<( Bu::Formatter &f, const Bu::FString &sStr ) 295Bu::Formatter &Bu::operator<<( Bu::Formatter &f, const Bu::String &sStr )
296{ 296{
297 f.writeAligned( sStr ); 297 f.writeAligned( sStr );
298 return f; 298 return f;
@@ -388,7 +388,7 @@ Bu::Formatter &Bu::operator<<( Bu::Formatter &f, bool b )
388 return f; 388 return f;
389} 389}
390 390
391Bu::Formatter &Bu::operator>>( Bu::Formatter &f, Bu::FString &sStr ) 391Bu::Formatter &Bu::operator>>( Bu::Formatter &f, Bu::String &sStr )
392{ 392{
393 sStr = f.readToken(); 393 sStr = f.readToken();
394 return f; 394 return f;
@@ -480,7 +480,7 @@ Bu::Formatter &Bu::operator>>( Bu::Formatter &f, long double &flt )
480 480
481Bu::Formatter &Bu::operator>>( Bu::Formatter &f, bool &b ) 481Bu::Formatter &Bu::operator>>( Bu::Formatter &f, bool &b )
482{ 482{
483 Bu::FString sStr = f.readToken(); 483 Bu::String sStr = f.readToken();
484 if( !sStr.isSet() ) 484 if( !sStr.isSet() )
485 return f; 485 return f;
486 char c = *sStr.begin(); 486 char c = *sStr.begin();
diff --git a/src/formatter.h b/src/formatter.h
index 7e0c54b..49507de 100644
--- a/src/formatter.h
+++ b/src/formatter.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -103,13 +103,13 @@ namespace Bu
103 unsigned short bTokenize : 1; 103 unsigned short bTokenize : 1;
104 } Fmt; 104 } Fmt;
105 105
106 void write( const Bu::FString &sStr ); 106 void write( const Bu::String &sStr );
107 void write( const void *sStr, int iLen ); 107 void write( const void *sStr, int iLen );
108 void writeAligned( const Bu::FString &sStr ); 108 void writeAligned( const Bu::String &sStr );
109 void writeAligned( const char *sStr, int iLen ); 109 void writeAligned( const char *sStr, int iLen );
110 110
111 void read( void *sStr, int iLen ); 111 void read( void *sStr, int iLen );
112 Bu::FString readToken(); 112 Bu::String readToken();
113 113
114 void incIndent(); 114 void incIndent();
115 void decIndent(); 115 void decIndent();
@@ -199,7 +199,7 @@ namespace Bu
199 template<typename type> 199 template<typename type>
200 void ffmt( type f ) 200 void ffmt( type f )
201 { 201 {
202 Bu::FString fTmp; 202 Bu::String fTmp;
203 fTmp.format("%f", f ); 203 fTmp.format("%f", f );
204// writeAligned("**make floats work**"); 204// writeAligned("**make floats work**");
205 writeAligned( fTmp ); 205 writeAligned( fTmp );
@@ -207,7 +207,7 @@ namespace Bu
207 } 207 }
208 208
209 template<typename type> 209 template<typename type>
210 void iparse( type &i, const Bu::FString &sBuf ) 210 void iparse( type &i, const Bu::String &sBuf )
211 { 211 {
212 if( !sBuf.isSet() ) 212 if( !sBuf.isSet() )
213 return; 213 return;
@@ -233,7 +233,7 @@ namespace Bu
233 } 233 }
234 234
235 template<typename type> 235 template<typename type>
236 void uparse( type &i, const Bu::FString &sBuf ) 236 void uparse( type &i, const Bu::String &sBuf )
237 { 237 {
238 if( !sBuf.isSet() ) 238 if( !sBuf.isSet() )
239 return; 239 return;
@@ -257,7 +257,7 @@ namespace Bu
257 } 257 }
258 258
259 template<typename type> 259 template<typename type>
260 void fparse( type &f, const Bu::FString &sBuf ) 260 void fparse( type &f, const Bu::String &sBuf )
261 { 261 {
262 sscanf( sBuf.getStr(), "%f", &f ); 262 sscanf( sBuf.getStr(), "%f", &f );
263 usedFormat(); 263 usedFormat();
@@ -288,7 +288,7 @@ namespace Bu
288 Formatter &operator<<( Formatter &f, Formatter::Special s ); 288 Formatter &operator<<( Formatter &f, Formatter::Special s );
289 Formatter &operator<<( Formatter &f, const char *sStr ); 289 Formatter &operator<<( Formatter &f, const char *sStr );
290 Formatter &operator<<( Formatter &f, char *sStr ); 290 Formatter &operator<<( Formatter &f, char *sStr );
291 Formatter &operator<<( Formatter &f, const Bu::FString &sStr ); 291 Formatter &operator<<( Formatter &f, const Bu::String &sStr );
292 Formatter &operator<<( Formatter &f, signed char c ); 292 Formatter &operator<<( Formatter &f, signed char c );
293 Formatter &operator<<( Formatter &f, char c ); 293 Formatter &operator<<( Formatter &f, char c );
294 Formatter &operator<<( Formatter &f, unsigned char c ); 294 Formatter &operator<<( Formatter &f, unsigned char c );
@@ -305,7 +305,7 @@ namespace Bu
305 Formatter &operator<<( Formatter &f, long double flt ); 305 Formatter &operator<<( Formatter &f, long double flt );
306 Formatter &operator<<( Formatter &f, bool b ); 306 Formatter &operator<<( Formatter &f, bool b );
307 307
308 Formatter &operator>>( Formatter &f, Bu::FString &sStr ); 308 Formatter &operator>>( Formatter &f, Bu::String &sStr );
309 Formatter &operator>>( Formatter &f, signed char &c ); 309 Formatter &operator>>( Formatter &f, signed char &c );
310 Formatter &operator>>( Formatter &f, char &c ); 310 Formatter &operator>>( Formatter &f, char &c );
311 Formatter &operator>>( Formatter &f, unsigned char &c ); 311 Formatter &operator>>( Formatter &f, unsigned char &c );
diff --git a/src/formula.cpp b/src/formula.cpp
index d8612eb..ac435ed 100644
--- a/src/formula.cpp
+++ b/src/formula.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/formula.h b/src/formula.h
index d93e27b..687e6c3 100644
--- a/src/formula.h
+++ b/src/formula.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -17,7 +17,7 @@
17#include "bu/stack.h" 17#include "bu/stack.h"
18#include "bu/exceptionbase.h" 18#include "bu/exceptionbase.h"
19#include "bu/hash.h" 19#include "bu/hash.h"
20#include "bu/fstring.h" 20#include "bu/string.h"
21 21
22namespace Bu 22namespace Bu
23{ 23{
@@ -41,8 +41,8 @@ namespace Bu
41 virtual prec operator()( prec )=0; 41 virtual prec operator()( prec )=0;
42 }; 42 };
43 43
44 typedef Hash<Bu::FString, prec> varHash; 44 typedef Hash<Bu::String, prec> varHash;
45 typedef Hash<Bu::FString, Func *> funcHash; 45 typedef Hash<Bu::String, Func *> funcHash;
46 46
47 Formula() 47 Formula()
48 { 48 {
@@ -57,7 +57,7 @@ namespace Bu
57 } 57 }
58 } 58 }
59 59
60 prec run( const Bu::FString &sFormulaSrc ) 60 prec run( const Bu::String &sFormulaSrc )
61 { 61 {
62 if( sFormulaSrc.isEmpty() ) 62 if( sFormulaSrc.isEmpty() )
63 throw FormulaException("Empty formula, nothing to do."); 63 throw FormulaException("Empty formula, nothing to do.");
@@ -158,7 +158,7 @@ namespace Bu
158 158
159 Bu::Stack<symType> sOper; 159 Bu::Stack<symType> sOper;
160 Bu::Stack<prec> sValue; 160 Bu::Stack<prec> sValue;
161 Bu::Stack<Bu::FString> sFunc; 161 Bu::Stack<Bu::String> sFunc;
162 162
163 private: 163 private:
164 symType getPrec( symType nOper ) 164 symType getPrec( symType nOper )
diff --git a/src/fstring.h b/src/fstring.h
deleted file mode 100644
index 0f9d81a..0000000
--- a/src/fstring.h
+++ /dev/null
@@ -1,53 +0,0 @@
1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved.
3 *
4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE.
6 */
7
8#ifndef BU_F_STRING_H
9#define BU_F_STRING_H
10
11#include "bu/fbasicstring.h"
12
13namespace Bu
14{
15 typedef FBasicString<char> FString;
16
17 template<typename T>
18 uint32_t __calcHashCode( const T &k );
19
20 template<typename T>
21 bool __cmpHashKeys( const T &a, const T &b );
22
23 template<> uint32_t __calcHashCode<FString>( const FString &k );
24 template<> bool __cmpHashKeys<FString>(
25 const FString &a, const FString &b );
26
27 template<typename t> void __tracer_format( const t &v );
28 template<> void __tracer_format<FString>( const FString &v );
29
30 bool &operator<<( bool &dst, const FString &sIn );
31 uint8_t &operator<<( uint8_t &dst, const FString &sIn );
32 int8_t &operator<<( int8_t &dst, const FString &sIn );
33 char &operator<<( char &dst, const FString &sIn );
34 uint16_t &operator<<( uint16_t &dst, const FString &sIn );
35 int16_t &operator<<( int16_t &dst, const FString &sIn );
36 uint32_t &operator<<( uint32_t &dst, const FString &sIn );
37 int32_t &operator<<( int32_t &dst, const FString &sIn );
38 uint64_t &operator<<( uint64_t &dst, const FString &sIn );
39 int64_t &operator<<( int64_t &dst, const FString &sIn );
40 float &operator<<( float &dst, const FString &sIn );
41 double &operator<<( double &dst, const FString &sIn );
42 long double &operator<<( long double &dst, const FString &sIn );
43 Bu::FString &operator<<( Bu::FString &dst, const FString &sIn );
44
45}
46
47/***** I dunno about this block, I don't really want to have it... *****
48#include <ostream>
49std::basic_ostream<char>& operator<< (std::basic_ostream<char> &os,
50 const Bu::FString &val );
51*/
52
53#endif
diff --git a/src/hash.cpp b/src/hash.cpp
index a2052b8..59572ec 100644
--- a/src/hash.cpp
+++ b/src/hash.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/hash.h b/src/hash.h
index 354569e..26b16c7 100644
--- a/src/hash.h
+++ b/src/hash.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -411,7 +411,7 @@ namespace Bu
411 * In order to use it, I recommend the following for all basic usage: 411 * In order to use it, I recommend the following for all basic usage:
412 *@code 412 *@code
413 // Define a Hash typedef with strings as keys and ints as values. 413 // Define a Hash typedef with strings as keys and ints as values.
414 typedef Bu::Hash<Bu::FString, int> StrIntHash; 414 typedef Bu::Hash<Bu::String, int> StrIntHash;
415 415
416 // Create one 416 // Create one
417 StrIntHash hInts; 417 StrIntHash hInts;
diff --git a/src/heap.cpp b/src/heap.cpp
index 0f959da..a2ffac2 100644
--- a/src/heap.cpp
+++ b/src/heap.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/heap.h b/src/heap.h
index 31c2435..afe8be6 100644
--- a/src/heap.h
+++ b/src/heap.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/httpget.cpp b/src/httpget.cpp
index 2347167..99492a2 100644
--- a/src/httpget.cpp
+++ b/src/httpget.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -7,7 +7,7 @@
7 7
8#include "bu/httpget.h" 8#include "bu/httpget.h"
9 9
10Bu::HttpGet::HttpGet( const Bu::Url &uSrc, const Bu::FString &sMethod ) : 10Bu::HttpGet::HttpGet( const Bu::Url &uSrc, const Bu::String &sMethod ) :
11 uSrc( uSrc ), 11 uSrc( uSrc ),
12 sMethod( sMethod ), 12 sMethod( sMethod ),
13 sSrv( uSrc.getHost(), uSrc.getPort() ) 13 sSrv( uSrc.getHost(), uSrc.getPort() )
@@ -34,30 +34,30 @@ void Bu::HttpGet::get()
34// sSrv.read( 34// sSrv.read(
35} 35}
36 36
37size_t Bu::HttpGet::read( void * /*pBuf*/, size_t /*nBytes*/ ) 37Bu::size Bu::HttpGet::read( void * /*pBuf*/, Bu::size /*nBytes*/ )
38{ 38{
39 return 0; 39 return 0;
40} 40}
41 41
42size_t Bu::HttpGet::write( const void * /*pBuf*/, size_t /*nBytes*/ ) 42Bu::size Bu::HttpGet::write( const void * /*pBuf*/, Bu::size /*nBytes*/ )
43{ 43{
44 return 0; 44 return 0;
45} 45}
46 46
47long Bu::HttpGet::tell() 47Bu::size Bu::HttpGet::tell()
48{ 48{
49 return 0; 49 return 0;
50} 50}
51 51
52void Bu::HttpGet::seek( long ) 52void Bu::HttpGet::seek( Bu::size )
53{ 53{
54} 54}
55 55
56void Bu::HttpGet::setPos( long ) 56void Bu::HttpGet::setPos( Bu::size )
57{ 57{
58} 58}
59 59
60void Bu::HttpGet::setPosEnd( long ) 60void Bu::HttpGet::setPosEnd( Bu::size )
61{ 61{
62} 62}
63 63
@@ -109,3 +109,18 @@ void Bu::HttpGet::setBlocking( bool /*bBlocking*/ )
109{ 109{
110} 110}
111 111
112Bu::size Bu::HttpGet::getSize() const
113{
114 return 0;
115}
116
117Bu::size Bu::HttpGet::getBlockSize() const
118{
119 return 0;
120}
121
122Bu::String Bu::HttpGet::getLocation() const
123{
124 return uSrc.getUrl();
125}
126
diff --git a/src/httpget.h b/src/httpget.h
index 783f880..a58e8ac 100644
--- a/src/httpget.h
+++ b/src/httpget.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -9,7 +9,7 @@
9#define BU_HTTP_GET_H 9#define BU_HTTP_GET_H
10 10
11#include "bu/stream.h" 11#include "bu/stream.h"
12#include "bu/fstring.h" 12#include "bu/string.h"
13#include "bu/url.h" 13#include "bu/url.h"
14#include "bu/tcpsocket.h" 14#include "bu/tcpsocket.h"
15#include "bu/hash.h" 15#include "bu/hash.h"
@@ -19,21 +19,21 @@ namespace Bu
19 class HttpGet : public Bu::Stream 19 class HttpGet : public Bu::Stream
20 { 20 {
21 public: 21 public:
22 HttpGet( const Bu::Url &uSrc, const Bu::FString &sMethod="GET" ); 22 HttpGet( const Bu::Url &uSrc, const Bu::String &sMethod="GET" );
23 virtual ~HttpGet(); 23 virtual ~HttpGet();
24 24
25 void get(); 25 void get();
26 26
27 // From Bu::Stream 27 // From Bu::Stream
28 virtual void close(); 28 virtual void close();
29 virtual size_t read( void *pBuf, size_t nBytes ); 29 virtual Bu::size read( void *pBuf, Bu::size nBytes );
30 virtual size_t write( const void *pBuf, size_t nBytes ); 30 virtual Bu::size write( const void *pBuf, Bu::size nBytes );
31 using Stream::write; 31 using Stream::write;
32 32
33 virtual long tell(); 33 virtual Bu::size tell();
34 virtual void seek( long offset ); 34 virtual void seek( Bu::size offset );
35 virtual void setPos( long pos ); 35 virtual void setPos( Bu::size pos );
36 virtual void setPosEnd( long pos ); 36 virtual void setPosEnd( Bu::size pos );
37 virtual bool isEos(); 37 virtual bool isEos();
38 virtual bool isOpen(); 38 virtual bool isOpen();
39 39
@@ -49,11 +49,15 @@ namespace Bu
49 virtual bool isBlocking(); 49 virtual bool isBlocking();
50 virtual void setBlocking( bool bBlocking=true ); 50 virtual void setBlocking( bool bBlocking=true );
51 51
52 virtual size getSize() const;
53 virtual size getBlockSize() const;
54 virtual Bu::String getLocation() const;
55
52 private: 56 private:
53 Bu::Url uSrc; 57 Bu::Url uSrc;
54 Bu::FString sMethod; 58 Bu::String sMethod;
55 Bu::TcpSocket sSrv; 59 Bu::TcpSocket sSrv;
56 typedef Bu::Hash<Bu::FString,Bu::FString> MimeHash; 60 typedef Bu::Hash<Bu::String,Bu::String> MimeHash;
57 MimeHash hMimeIn; 61 MimeHash hMimeIn;
58 MimeHash hMimeOut; 62 MimeHash hMimeOut;
59 }; 63 };
diff --git a/src/ito.cpp b/src/ito.cpp
index 12aee6f..aa9a597 100644
--- a/src/ito.cpp
+++ b/src/ito.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/ito.h b/src/ito.h
index a60a23d..9f50b2a 100644
--- a/src/ito.h
+++ b/src/ito.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/itoatom.h b/src/itoatom.h
index 20ef911..3659f4e 100644
--- a/src/itoatom.h
+++ b/src/itoatom.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/itocondition.cpp b/src/itocondition.cpp
index ddf8d0d..3d8db60 100644
--- a/src/itocondition.cpp
+++ b/src/itocondition.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/itocondition.h b/src/itocondition.h
index 6468728..88e8d6c 100644
--- a/src/itocondition.h
+++ b/src/itocondition.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/itocounter.cpp b/src/itocounter.cpp
index 9f71a77..0c6e06c 100644
--- a/src/itocounter.cpp
+++ b/src/itocounter.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/itocounter.h b/src/itocounter.h
index 6f52175..10df467 100644
--- a/src/itocounter.h
+++ b/src/itocounter.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/itoheap.cpp b/src/itoheap.cpp
index 546edea..21ccef8 100644
--- a/src/itoheap.cpp
+++ b/src/itoheap.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/itoheap.h b/src/itoheap.h
index 7fdbba3..a5aad05 100644
--- a/src/itoheap.h
+++ b/src/itoheap.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/itomutex.cpp b/src/itomutex.cpp
index 4c6ae4c..8de6336 100644
--- a/src/itomutex.cpp
+++ b/src/itomutex.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/itomutex.h b/src/itomutex.h
index 6cf08b4..68a0c1d 100644
--- a/src/itomutex.h
+++ b/src/itomutex.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/itoqueue.h b/src/itoqueue.h
index 6801c91..dc3cadb 100644
--- a/src/itoqueue.h
+++ b/src/itoqueue.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/itoserver.cpp b/src/itoserver.cpp
index ea737bf..9f03417 100644
--- a/src/itoserver.cpp
+++ b/src/itoserver.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -47,7 +47,7 @@ void Bu::ItoServer::addPort( int nPort, int nPoolSize )
47 hServers.insert( nSocket, s ); 47 hServers.insert( nSocket, s );
48} 48}
49 49
50void Bu::ItoServer::addPort( const FString &sAddr, int nPort, int nPoolSize ) 50void Bu::ItoServer::addPort( const String &sAddr, int nPort, int nPoolSize )
51{ 51{
52 TcpServerSocket *s = new TcpServerSocket( sAddr, nPort, nPoolSize ); 52 TcpServerSocket *s = new TcpServerSocket( sAddr, nPort, nPoolSize );
53 int nSocket = s->getSocket(); 53 int nSocket = s->getSocket();
@@ -163,7 +163,7 @@ void Bu::ItoServer::ItoClient::run()
163 while( !qMsg.isEmpty() ) 163 while( !qMsg.isEmpty() )
164 { 164 {
165 imProto.lock(); 165 imProto.lock();
166 Bu::FString *pMsg = qMsg.dequeue(); 166 Bu::String *pMsg = qMsg.dequeue();
167 pClient->onMessage( *pMsg ); 167 pClient->onMessage( *pMsg );
168 delete pMsg; 168 delete pMsg;
169 pClient->processOutput(); 169 pClient->processOutput();
@@ -205,7 +205,7 @@ Bu::ItoServer::SrvClientLink::~SrvClientLink()
205{ 205{
206} 206}
207 207
208void Bu::ItoServer::SrvClientLink::sendMessage( const Bu::FString &sMsg ) 208void Bu::ItoServer::SrvClientLink::sendMessage( const Bu::String &sMsg )
209{ 209{
210 if( !pClient->imProto.trylock() ) 210 if( !pClient->imProto.trylock() )
211 { 211 {
@@ -215,7 +215,7 @@ void Bu::ItoServer::SrvClientLink::sendMessage( const Bu::FString &sMsg )
215 } 215 }
216 else 216 else
217 { 217 {
218 Bu::FString *pMsg = new Bu::FString( sMsg ); 218 Bu::String *pMsg = new Bu::String( sMsg );
219 pClient->qMsg.enqueue( pMsg ); 219 pClient->qMsg.enqueue( pMsg );
220 } 220 }
221} 221}
diff --git a/src/itoserver.h b/src/itoserver.h
index 81e42cc..902c684 100644
--- a/src/itoserver.h
+++ b/src/itoserver.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -14,7 +14,7 @@
14 #include <sys/select.h> 14 #include <sys/select.h>
15#endif 15#endif
16 16
17#include "bu/fstring.h" 17#include "bu/string.h"
18#include "bu/list.h" 18#include "bu/list.h"
19#include "bu/ito.h" 19#include "bu/ito.h"
20#include "bu/itomutex.h" 20#include "bu/itomutex.h"
@@ -59,7 +59,7 @@ namespace Bu
59 virtual ~ItoServer(); 59 virtual ~ItoServer();
60 60
61 void addPort( int nPort, int nPoolSize=40 ); 61 void addPort( int nPort, int nPoolSize=40 );
62 void addPort( const FString &sAddr, int nPort, int nPoolSize=40 ); 62 void addPort( const String &sAddr, int nPort, int nPoolSize=40 );
63 63
64 //void scan(); 64 //void scan();
65 void setTimeout( int nTimeoutSec, int nTimeoutUSec=0 ); 65 void setTimeout( int nTimeoutSec, int nTimeoutUSec=0 );
@@ -82,7 +82,7 @@ namespace Bu
82 int nTimeoutSec, int nTimeoutUSec ); 82 int nTimeoutSec, int nTimeoutUSec );
83 virtual ~ItoClient(); 83 virtual ~ItoClient();
84 84
85 typedef ItoQueue<Bu::FString *> StringQueue; 85 typedef ItoQueue<Bu::String *> StringQueue;
86 StringQueue qMsg; 86 StringQueue qMsg;
87 87
88 protected: 88 protected:
@@ -105,7 +105,7 @@ namespace Bu
105 SrvClientLink( ItoClient *pClient ); 105 SrvClientLink( ItoClient *pClient );
106 virtual ~SrvClientLink(); 106 virtual ~SrvClientLink();
107 107
108 virtual void sendMessage( const Bu::FString &sMsg ); 108 virtual void sendMessage( const Bu::String &sMsg );
109 109
110 private: 110 private:
111 ItoClient *pClient; 111 ItoClient *pClient;
diff --git a/src/lexer.cpp b/src/lexer.cpp
index af9a23f..7dc2b23 100644
--- a/src/lexer.cpp
+++ b/src/lexer.cpp
@@ -1,3 +1,10 @@
1/*
2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 *
4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE.
6 */
7
1#include "bu/lexer.h" 8#include "bu/lexer.h"
2 9
3Bu::Lexer::Lexer() 10Bu::Lexer::Lexer()
@@ -18,7 +25,7 @@ Bu::Lexer::Token::Token( Bu::Lexer::TokenType iToken ) :
18{ 25{
19} 26}
20 27
21Bu::FString Bu::Lexer::tokenToString( const Bu::Lexer::Token &t ) 28Bu::String Bu::Lexer::tokenToString( const Bu::Lexer::Token &t )
22{ 29{
23 Bu::MemBuf mb; 30 Bu::MemBuf mb;
24 Bu::Formatter f( mb ); 31 Bu::Formatter f( mb );
diff --git a/src/lexer.h b/src/lexer.h
index 9840afe..b057692 100644
--- a/src/lexer.h
+++ b/src/lexer.h
@@ -1,3 +1,10 @@
1/*
2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 *
4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE.
6 */
7
1#ifndef BU_LEXER_H 8#ifndef BU_LEXER_H
2#define BU_LEXER_H 9#define BU_LEXER_H
3 10
@@ -44,7 +51,7 @@ namespace Bu
44 51
45 virtual Token *nextToken()=0; 52 virtual Token *nextToken()=0;
46 53
47 virtual Bu::FString tokenToString( const Token &t ); 54 virtual Bu::String tokenToString( const Token &t );
48 }; 55 };
49}; 56};
50 57
diff --git a/src/linkmessage.cpp b/src/linkmessage.cpp
index 55e5026..cd024c0 100644
--- a/src/linkmessage.cpp
+++ b/src/linkmessage.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/linkmessage.h b/src/linkmessage.h
index 3c966df..69423b3 100644
--- a/src/linkmessage.h
+++ b/src/linkmessage.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/list.cpp b/src/list.cpp
index cbd6929..e05765e 100644
--- a/src/list.cpp
+++ b/src/list.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/list.h b/src/list.h
index b1e0d0f..560dfd9 100644
--- a/src/list.h
+++ b/src/list.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/logger.cpp b/src/logger.cpp
index 9f734a9..8e46390 100644
--- a/src/logger.cpp
+++ b/src/logger.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -69,7 +69,7 @@ void Bu::Logger::log( uint32_t nLevel, const char *sFile, const char *sFunction,
69#endif 69#endif
70} 70}
71 71
72void Bu::Logger::setFormat( const Bu::FString &str ) 72void Bu::Logger::setFormat( const Bu::String &str )
73{ 73{
74 sLogFormat = ""; 74 sLogFormat = "";
75 75
@@ -93,7 +93,7 @@ void Bu::Logger::setFormat( const Bu::FString &str )
93 if( *s == '%' ) 93 if( *s == '%' )
94 { 94 {
95 sLogFormat += '%'; 95 sLogFormat += '%';
96 Bu::FString sBuf; 96 Bu::String sBuf;
97 for(;;) 97 for(;;)
98 { 98 {
99 s++; 99 s++;
@@ -166,10 +166,10 @@ void Bu::Logger::hexDump( uint32_t nLevel, const char *sFile,
166 log( nLevel, sFile, sFunction, nLine, "Displaying %ld bytes of %s.", nDataLen, lpName ); 166 log( nLevel, sFile, sFunction, nLine, "Displaying %ld bytes of %s.", nDataLen, lpName );
167 const unsigned char *pData = (const unsigned char *)pDataV; 167 const unsigned char *pData = (const unsigned char *)pDataV;
168 int j = 0; 168 int j = 0;
169 Bu::FString sBorder; 169 Bu::String sBorder;
170 for( int l = 0; l < 8*3+2*8+2+5; l++ ) sBorder += ((l!=11&&l!=37)?("-"):("+")); 170 for( int l = 0; l < 8*3+2*8+2+5; l++ ) sBorder += ((l!=11&&l!=37)?("-"):("+"));
171 log( nLevel, sFile, sFunction, nLine, sBorder.getStr() ); 171 log( nLevel, sFile, sFunction, nLine, sBorder.getStr() );
172 Bu::FString sLine; 172 Bu::String sLine;
173 for(;;) 173 for(;;)
174 { 174 {
175 { 175 {
diff --git a/src/logger.h b/src/logger.h
index 6a7a2d5..5c1352b 100644
--- a/src/logger.h
+++ b/src/logger.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -9,7 +9,7 @@
9#define BU_LOGGER_H 9#define BU_LOGGER_H
10 10
11#include "bu/singleton.h" 11#include "bu/singleton.h"
12#include "bu/fstring.h" 12#include "bu/string.h"
13 13
14namespace Bu 14namespace Bu
15{ 15{
@@ -78,7 +78,7 @@ namespace Bu
78 public: 78 public:
79 void log( uint32_t nLevel, const char *sFile, const char *sFunction, int nLine, const char *sFormat, ...); 79 void log( uint32_t nLevel, const char *sFile, const char *sFunction, int nLine, const char *sFormat, ...);
80 80
81 void setFormat( const Bu::FString &str ); 81 void setFormat( const Bu::String &str );
82 void setMask( uint32_t n ); 82 void setMask( uint32_t n );
83 void setLevel( uint32_t n ); 83 void setLevel( uint32_t n );
84 uint32_t getMask(); 84 uint32_t getMask();
@@ -86,7 +86,7 @@ namespace Bu
86 void hexDump( uint32_t nLevel, const char *sFile, const char *sFunction, int nLine, const void *pData, long nDataLen, const char *lpName ); 86 void hexDump( uint32_t nLevel, const char *sFile, const char *sFunction, int nLine, const void *pData, long nDataLen, const char *lpName );
87 87
88 private: 88 private:
89 Bu::FString sLogFormat; 89 Bu::String sLogFormat;
90 uint32_t nLevelMask; 90 uint32_t nLevelMask;
91 }; 91 };
92} 92}
diff --git a/src/md5.cpp b/src/md5.cpp
index a1345ce..71f17a0 100644
--- a/src/md5.cpp
+++ b/src/md5.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -39,7 +39,7 @@ void Bu::Md5::reset()
39 uBits[1] = 0; 39 uBits[1] = 0;
40} 40}
41 41
42void Bu::Md5::setSalt( const Bu::FString & /*sSalt*/ ) 42void Bu::Md5::setSalt( const Bu::String & /*sSalt*/ )
43{ 43{
44} 44}
45 45
@@ -86,11 +86,11 @@ void Bu::Md5::addData( const void *sVData, int iSize )
86 memcpy( inbuf, sData, iSize ); 86 memcpy( inbuf, sData, iSize );
87} 87}
88 88
89Bu::FString Bu::Md5::getResult() 89Bu::String Bu::Md5::getResult()
90{ 90{
91 uint32_t lsum[4]; 91 uint32_t lsum[4];
92 compCap( lsum ); 92 compCap( lsum );
93 return Bu::FString( (const char *)lsum, 4*4 ); 93 return Bu::String( (const char *)lsum, 4*4 );
94} 94}
95 95
96void Bu::Md5::writeResult( Bu::Stream &sOut ) 96void Bu::Md5::writeResult( Bu::Stream &sOut )
diff --git a/src/md5.h b/src/md5.h
index 60992ac..b7597fd 100644
--- a/src/md5.h
+++ b/src/md5.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -28,10 +28,10 @@ namespace Bu
28 virtual ~Md5(); 28 virtual ~Md5();
29 29
30 virtual void reset(); 30 virtual void reset();
31 virtual void setSalt( const Bu::FString &sSalt ); 31 virtual void setSalt( const Bu::String &sSalt );
32 virtual void addData( const void *sData, int iSize ); 32 virtual void addData( const void *sData, int iSize );
33 using Bu::CryptoHash::addData; 33 using Bu::CryptoHash::addData;
34 virtual FString getResult(); 34 virtual String getResult();
35 virtual void writeResult( Bu::Stream &sOut ); 35 virtual void writeResult( Bu::Stream &sOut );
36 36
37 private: 37 private:
diff --git a/src/membuf.cpp b/src/membuf.cpp
index b822641..14d0d58 100644
--- a/src/membuf.cpp
+++ b/src/membuf.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -14,7 +14,7 @@ Bu::MemBuf::MemBuf() :
14{ 14{
15} 15}
16 16
17Bu::MemBuf::MemBuf( const Bu::FString &str ) : 17Bu::MemBuf::MemBuf( const Bu::String &str ) :
18 sBuf( str ), 18 sBuf( str ),
19 nPos( 0 ) 19 nPos( 0 )
20{ 20{
@@ -28,9 +28,9 @@ void Bu::MemBuf::close()
28{ 28{
29} 29}
30 30
31size_t Bu::MemBuf::read( void *pBuf, size_t nBytes ) 31size Bu::MemBuf::read( void *pBuf, size nBytes )
32{ 32{
33 if( (size_t)sBuf.getSize()-(size_t)nPos < nBytes ) 33 if( (size)sBuf.getSize()-(size)nPos < nBytes )
34 nBytes = sBuf.getSize()-nPos; 34 nBytes = sBuf.getSize()-nPos;
35 35
36 memcpy( pBuf, sBuf.getStr()+nPos, nBytes ); 36 memcpy( pBuf, sBuf.getStr()+nPos, nBytes );
@@ -39,7 +39,7 @@ size_t Bu::MemBuf::read( void *pBuf, size_t nBytes )
39 return nBytes; 39 return nBytes;
40} 40}
41 41
42size_t Bu::MemBuf::write( const void *pBuf, size_t nBytes ) 42size Bu::MemBuf::write( const void *pBuf, size nBytes )
43{ 43{
44 if( nPos == sBuf.getSize() ) 44 if( nPos == sBuf.getSize() )
45 { 45 {
@@ -52,7 +52,7 @@ size_t Bu::MemBuf::write( const void *pBuf, size_t nBytes )
52 { 52 {
53 // Trickier, we must do this in two parts, overwrite, then append 53 // Trickier, we must do this in two parts, overwrite, then append
54 // Frist, overwrite. 54 // Frist, overwrite.
55 size_t iOver = sBuf.getSize() - nPos; 55 size iOver = sBuf.getSize() - nPos;
56 if( iOver > nBytes ) 56 if( iOver > nBytes )
57 iOver = nBytes; 57 iOver = nBytes;
58 memcpy( sBuf.getStr()+nPos, pBuf, iOver ); 58 memcpy( sBuf.getStr()+nPos, pBuf, iOver );
@@ -66,26 +66,26 @@ size_t Bu::MemBuf::write( const void *pBuf, size_t nBytes )
66 } 66 }
67} 67}
68 68
69long Bu::MemBuf::tell() 69size Bu::MemBuf::tell()
70{ 70{
71 return nPos; 71 return nPos;
72} 72}
73 73
74void Bu::MemBuf::seek( long offset ) 74void Bu::MemBuf::seek( size offset )
75{ 75{
76 nPos += offset; 76 nPos += offset;
77 if( nPos < 0 ) nPos = 0; 77 if( nPos < 0 ) nPos = 0;
78 else if( nPos > sBuf.getSize() ) nPos = sBuf.getSize(); 78 else if( nPos > sBuf.getSize() ) nPos = sBuf.getSize();
79} 79}
80 80
81void Bu::MemBuf::setPos( long pos ) 81void Bu::MemBuf::setPos( size pos )
82{ 82{
83 nPos = pos; 83 nPos = pos;
84 if( nPos < 0 ) nPos = 0; 84 if( nPos < 0 ) nPos = 0;
85 else if( nPos > sBuf.getSize() ) nPos = sBuf.getSize(); 85 else if( nPos > sBuf.getSize() ) nPos = sBuf.getSize();
86} 86}
87 87
88void Bu::MemBuf::setPosEnd( long pos ) 88void Bu::MemBuf::setPosEnd( size pos )
89{ 89{
90 nPos = sBuf.getSize()-pos; 90 nPos = sBuf.getSize()-pos;
91 if( nPos < 0 ) nPos = 0; 91 if( nPos < 0 ) nPos = 0;
@@ -140,7 +140,7 @@ void Bu::MemBuf::setBlocking( bool )
140{ 140{
141} 141}
142 142
143void Bu::MemBuf::setSize( long iSize ) 143void Bu::MemBuf::setSize( size iSize )
144{ 144{
145 if( iSize < 0 ) 145 if( iSize < 0 )
146 iSize = 0; 146 iSize = 0;
@@ -149,12 +149,27 @@ void Bu::MemBuf::setSize( long iSize )
149 nPos = iSize; 149 nPos = iSize;
150} 150}
151 151
152Bu::FString &Bu::MemBuf::getString() 152Bu::size Bu::MemBuf::getSize() const
153{
154 return sBuf.getSize();
155}
156
157Bu::size Bu::MemBuf::getBlockSize() const
158{
159 return sBuf.getSize();
160}
161
162Bu::String Bu::MemBuf::getLocation() const
163{
164 return "";
165}
166
167Bu::String &Bu::MemBuf::getString()
153{ 168{
154 return sBuf; 169 return sBuf;
155} 170}
156 171
157void Bu::MemBuf::setString( const Bu::FString &sNewData ) 172void Bu::MemBuf::setString( const Bu::String &sNewData )
158{ 173{
159 sBuf = sNewData; 174 sBuf = sNewData;
160 nPos = 0; 175 nPos = 0;
diff --git a/src/membuf.h b/src/membuf.h
index 9e406c1..d98a29c 100644
--- a/src/membuf.h
+++ b/src/membuf.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -10,8 +10,9 @@
10 10
11#include <stdint.h> 11#include <stdint.h>
12 12
13#include "bu/config.h"
13#include "bu/stream.h" 14#include "bu/stream.h"
14#include "bu/fstring.h" 15#include "bu/string.h"
15 16
16namespace Bu 17namespace Bu
17{ 18{
@@ -23,18 +24,18 @@ namespace Bu
23 { 24 {
24 public: 25 public:
25 MemBuf(); 26 MemBuf();
26 MemBuf( const Bu::FString &str ); 27 MemBuf( const Bu::String &str );
27 virtual ~MemBuf(); 28 virtual ~MemBuf();
28 29
29 virtual void close(); 30 virtual void close();
30 virtual size_t read( void *pBuf, size_t nBytes ); 31 virtual size read( void *pBuf, size iBytes );
31 32
32 virtual size_t write( const void *pBuf, size_t nBytes ); 33 virtual size write( const void *pBuf, size iBytes );
33 using Stream::write; 34 using Stream::write;
34 virtual long tell(); 35 virtual size tell();
35 virtual void seek( long offset ); 36 virtual void seek( size offset );
36 virtual void setPos( long pos ); 37 virtual void setPos( size pos );
37 virtual void setPosEnd( long pos ); 38 virtual void setPosEnd( size pos );
38 virtual bool isEos(); 39 virtual bool isEos();
39 virtual bool isOpen(); 40 virtual bool isOpen();
40 virtual void flush(); 41 virtual void flush();
@@ -45,14 +46,17 @@ namespace Bu
45 virtual bool isSeekable(); 46 virtual bool isSeekable();
46 virtual bool isBlocking(); 47 virtual bool isBlocking();
47 virtual void setBlocking( bool bBlocking=true ); 48 virtual void setBlocking( bool bBlocking=true );
48 virtual void setSize( long iSize ); 49 virtual void setSize( size iSize );
50 virtual size getSize() const;
51 virtual size getBlockSize() const;
52 virtual Bu::String getLocation() const;
49 53
50 Bu::FString &getString(); 54 Bu::String &getString();
51 void setString( const Bu::FString &sNewData ); 55 void setString( const Bu::String &sNewData );
52 56
53 private: 57 private:
54 Bu::FString sBuf; 58 Bu::String sBuf;
55 long nPos; 59 size nPos;
56 }; 60 };
57} 61}
58 62
diff --git a/src/minicron.cpp b/src/minicron.cpp
index 491d143..3375492 100644
--- a/src/minicron.cpp
+++ b/src/minicron.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -73,7 +73,7 @@ void Bu::MiniCron::poll()
73 } 73 }
74} 74}
75 75
76Bu::MiniCron::JobId Bu::MiniCron::addJob( const Bu::FString &sName, 76Bu::MiniCron::JobId Bu::MiniCron::addJob( const Bu::String &sName,
77 Bu::MiniCron::CronSignal sigJob, const Bu::MiniCron::Timer &t ) 77 Bu::MiniCron::CronSignal sigJob, const Bu::MiniCron::Timer &t )
78{ 78{
79 JobId jid = jidNext++; 79 JobId jid = jidNext++;
@@ -86,7 +86,7 @@ Bu::MiniCron::JobId Bu::MiniCron::addJob( const Bu::FString &sName,
86 return jid; 86 return jid;
87} 87}
88 88
89Bu::MiniCron::JobId Bu::MiniCron::addJobOnce( const Bu::FString &sName, 89Bu::MiniCron::JobId Bu::MiniCron::addJobOnce( const Bu::String &sName,
90 Bu::MiniCron::CronSignal sigJob, const Bu::MiniCron::Timer &t ) 90 Bu::MiniCron::CronSignal sigJob, const Bu::MiniCron::Timer &t )
91{ 91{
92 JobId jid = jidNext++; 92 JobId jid = jidNext++;
@@ -132,7 +132,7 @@ Bu::MiniCron::JobInfoList Bu::MiniCron::getJobInfo()
132 return lRet; 132 return lRet;
133} 133}
134 134
135Bu::MiniCron::Job::Job( const Bu::FString &sName, JobId jid, bool bRepeat ) : 135Bu::MiniCron::Job::Job( const Bu::String &sName, JobId jid, bool bRepeat ) :
136 sName( sName ), 136 sName( sName ),
137 pTimer( NULL ), 137 pTimer( NULL ),
138 bContinue( bRepeat ), 138 bContinue( bRepeat ),
@@ -202,12 +202,12 @@ time_t Bu::MiniCron::Job::getNextRunTime() const
202 return tNextRun; 202 return tNextRun;
203} 203}
204 204
205Bu::FString Bu::MiniCron::Job::getName() const 205Bu::String Bu::MiniCron::Job::getName() const
206{ 206{
207 return sName; 207 return sName;
208} 208}
209 209
210Bu::MiniCron::JobInfo::JobInfo( const Bu::FString &sName, JobId jid, 210Bu::MiniCron::JobInfo::JobInfo( const Bu::String &sName, JobId jid,
211 time_t tNext ) : 211 time_t tNext ) :
212 sName( sName ), 212 sName( sName ),
213 jid( jid ), 213 jid( jid ),
@@ -249,7 +249,7 @@ time_t Bu::MiniCron::TimerInterval::nextTime()
249 return tRet; 249 return tRet;
250} 250}
251 251
252Bu::MiniCron::TimerBasic::TimerBasic( const Bu::FString &s ) : 252Bu::MiniCron::TimerBasic::TimerBasic( const Bu::String &s ) :
253 tLast( -1 ), 253 tLast( -1 ),
254 sSpec( s ) 254 sSpec( s )
255{ 255{
@@ -264,7 +264,7 @@ time_t Bu::MiniCron::TimerBasic::nextTime()
264 if( tLast == -1 ) 264 if( tLast == -1 )
265 tLast = time( NULL ); 265 tLast = time( NULL );
266 266
267 Bu::FString::const_iterator i = sSpec.begin(); 267 Bu::String::const_iterator i = sSpec.begin();
268 switch( lex( i ) ) 268 switch( lex( i ) )
269 { 269 {
270 case tokDaily: 270 case tokDaily:
@@ -343,19 +343,19 @@ time_t Bu::MiniCron::TimerBasic::nextTime()
343} 343}
344 344
345Bu::MiniCron::TimerBasic::Token Bu::MiniCron::TimerBasic::lex( 345Bu::MiniCron::TimerBasic::Token Bu::MiniCron::TimerBasic::lex(
346 Bu::FString::const_iterator &i ) 346 Bu::String::const_iterator &i )
347{ 347{
348 if( !i ) 348 if( !i )
349 { 349 {
350 return tokEos; 350 return tokEos;
351 } 351 }
352 352
353 Bu::FString::const_iterator b = i; 353 Bu::String::const_iterator b = i;
354 354
355 for(; b && (*b == ' ' || *b == '\t'); b++ ) { i = b+1; } 355 for(; b && (*b == ' ' || *b == '\t'); b++ ) { i = b+1; }
356 for(; b && *b != ' ' && *b != '\t'; b++ ) { } 356 for(; b && *b != ' ' && *b != '\t'; b++ ) { }
357 357
358 Bu::FString sTok( i, b ); 358 Bu::String sTok( i, b );
359 i = b; 359 i = b;
360 360
361 if( sTok == "daily" ) 361 if( sTok == "daily" )
@@ -412,7 +412,7 @@ Bu::MiniCron::TimerBasic::Token Bu::MiniCron::TimerBasic::lex(
412 return tokErr; 412 return tokErr;
413} 413}
414 414
415int Bu::MiniCron::TimerBasic::lexInt( Bu::FString::const_iterator &i ) 415int Bu::MiniCron::TimerBasic::lexInt( Bu::String::const_iterator &i )
416{ 416{
417 Token t = lex( i ); 417 Token t = lex( i );
418 if( t == tokEos ) 418 if( t == tokEos )
diff --git a/src/minicron.h b/src/minicron.h
index b045e79..7ccf543 100644
--- a/src/minicron.h
+++ b/src/minicron.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -10,7 +10,7 @@
10 10
11#include "bu/signals.h" 11#include "bu/signals.h"
12#include "bu/heap.h" 12#include "bu/heap.h"
13#include "bu/fstring.h" 13#include "bu/string.h"
14 14
15#include <time.h> 15#include <time.h>
16 16
@@ -89,7 +89,7 @@ namespace Bu
89 * JobId which can be used at a later time to control the execution of 89 * JobId which can be used at a later time to control the execution of
90 * the job. 90 * the job.
91 */ 91 */
92 virtual JobId addJob( const Bu::FString &sName, CronSignal sigJob, 92 virtual JobId addJob( const Bu::String &sName, CronSignal sigJob,
93 const Timer &t ); 93 const Timer &t );
94 94
95 /** 95 /**
@@ -98,7 +98,7 @@ namespace Bu
98 * function returns a JobId which can be used at a later time to control 98 * function returns a JobId which can be used at a later time to control
99 * the execution of the job. 99 * the execution of the job.
100 */ 100 */
101 virtual JobId addJobOnce( const Bu::FString &sName, CronSignal sigJob, 101 virtual JobId addJobOnce( const Bu::String &sName, CronSignal sigJob,
102 const Timer &t ); 102 const Timer &t );
103 103
104 /** 104 /**
@@ -113,12 +113,12 @@ namespace Bu
113 class JobInfo 113 class JobInfo
114 { 114 {
115 public: 115 public:
116 JobInfo( const Bu::FString &sName, JobId jid, time_t tNext ); 116 JobInfo( const Bu::String &sName, JobId jid, time_t tNext );
117 virtual ~JobInfo(); 117 virtual ~JobInfo();
118 118
119 bool operator<( const JobInfo &rhs ) const; 119 bool operator<( const JobInfo &rhs ) const;
120 120
121 Bu::FString sName; 121 Bu::String sName;
122 JobId jid; 122 JobId jid;
123 time_t tNext; 123 time_t tNext;
124 }; 124 };
@@ -189,7 +189,7 @@ namespace Bu
189 class TimerBasic : public Timer 189 class TimerBasic : public Timer
190 { 190 {
191 public: 191 public:
192 TimerBasic( const Bu::FString &s ); 192 TimerBasic( const Bu::String &s );
193 virtual ~TimerBasic(); 193 virtual ~TimerBasic();
194 194
195 virtual time_t nextTime(); 195 virtual time_t nextTime();
@@ -208,11 +208,11 @@ namespace Bu
208 tokErr, 208 tokErr,
209 tokEos 209 tokEos
210 }; 210 };
211 Token lex( Bu::FString::const_iterator &i ); 211 Token lex( Bu::String::const_iterator &i );
212 int lexInt( Bu::FString::const_iterator &i ); 212 int lexInt( Bu::String::const_iterator &i );
213 int iVal; //< A temp variable for parsing. 213 int iVal; //< A temp variable for parsing.
214 time_t tLast; 214 time_t tLast;
215 Bu::FString sSpec; 215 Bu::String sSpec;
216 }; 216 };
217 217
218 /** 218 /**
@@ -225,7 +225,7 @@ namespace Bu
225 { 225 {
226 friend class Bu::MiniCron; 226 friend class Bu::MiniCron;
227 private: 227 private:
228 Job( const Bu::FString &sName, JobId jid, bool bRepeat=true ); 228 Job( const Bu::String &sName, JobId jid, bool bRepeat=true );
229 virtual ~Job(); 229 virtual ~Job();
230 230
231 public: 231 public:
@@ -290,10 +290,10 @@ namespace Bu
290 /** 290 /**
291 * Gets the name that was set when the job was created. 291 * Gets the name that was set when the job was created.
292 */ 292 */
293 Bu::FString getName() const; 293 Bu::String getName() const;
294 294
295 private: 295 private:
296 Bu::FString sName; 296 Bu::String sName;
297 CronSignal sigJob; 297 CronSignal sigJob;
298 time_t tNextRun; 298 time_t tNextRun;
299 Timer *pTimer; 299 Timer *pTimer;
diff --git a/src/minimacro.cpp b/src/minimacro.cpp
index df1a5c9..b6fd6a8 100644
--- a/src/minimacro.cpp
+++ b/src/minimacro.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -25,10 +25,10 @@ Bu::MiniMacro::~MiniMacro()
25{ 25{
26} 26}
27 27
28Bu::FString Bu::MiniMacro::parse( const Bu::FString &sIn ) 28Bu::String Bu::MiniMacro::parse( const Bu::String &sIn )
29{ 29{
30 bContinue = true; 30 bContinue = true;
31 Bu::FString sOut; 31 Bu::String sOut;
32 for( sCur = sIn.getStr(); *sCur && bContinue; sCur++ ) 32 for( sCur = sIn.getStr(); *sCur && bContinue; sCur++ )
33 { 33 {
34 if( *sCur == '{' ) 34 if( *sCur == '{' )
@@ -66,16 +66,16 @@ Bu::FString Bu::MiniMacro::parse( const Bu::FString &sIn )
66 return sOut; 66 return sOut;
67} 67}
68 68
69Bu::FString Bu::MiniMacro::parseRepl() 69Bu::String Bu::MiniMacro::parseRepl()
70{ 70{
71 Bu::FString sOut; 71 Bu::String sOut;
72 bool bIsFirst = true; 72 bool bIsFirst = true;
73 for( const char *sNext = sCur;;) 73 for( const char *sNext = sCur;;)
74 { 74 {
75 for(; *sNext != ':' && *sNext != '}' && *sNext != '\0'; sNext++ ) { } 75 for(; *sNext != ':' && *sNext != '}' && *sNext != '\0'; sNext++ ) { }
76 if( *sNext == '\0' ) 76 if( *sNext == '\0' )
77 break; 77 break;
78 Bu::FString sName( sCur, (ptrdiff_t)sNext-(ptrdiff_t)sCur ); 78 Bu::String sName( sCur, (ptrdiff_t)sNext-(ptrdiff_t)sCur );
79 if( bIsFirst ) 79 if( bIsFirst )
80 { 80 {
81 sOut = hVars[sName]; 81 sOut = hVars[sName];
@@ -101,21 +101,21 @@ Bu::FString Bu::MiniMacro::parseRepl()
101 return sOut; 101 return sOut;
102} 102}
103 103
104Bu::FString Bu::MiniMacro::parseCond() 104Bu::String Bu::MiniMacro::parseCond()
105{ 105{
106 Bu::FString sOut; 106 Bu::String sOut;
107 //printf("%20s\n", sCur ); 107 //printf("%20s\n", sCur );
108 return sOut; 108 return sOut;
109} 109}
110 110
111Bu::FString Bu::MiniMacro::parseCmd() 111Bu::String Bu::MiniMacro::parseCmd()
112{ 112{
113 Bu::FString sOut; 113 Bu::String sOut;
114 const char *sNext = sCur; 114 const char *sNext = sCur;
115 for(; *sNext != ':' && *sNext != '}' && *sNext != '\0'; sNext++ ) { } 115 for(; *sNext != ':' && *sNext != '}' && *sNext != '\0'; sNext++ ) { }
116 if( *sNext != '\0' ) 116 if( *sNext != '\0' )
117 { 117 {
118 Bu::FString sName( sCur, (ptrdiff_t)sNext-(ptrdiff_t)sCur ); 118 Bu::String sName( sCur, (ptrdiff_t)sNext-(ptrdiff_t)sCur );
119 if( sName == "end" ) 119 if( sName == "end" )
120 { 120 {
121 sCur = sNext; 121 sCur = sNext;
@@ -138,20 +138,20 @@ Bu::FString Bu::MiniMacro::parseCmd()
138 return sOut; 138 return sOut;
139} 139}
140 140
141Bu::FString Bu::MiniMacro::callFunc( 141Bu::String Bu::MiniMacro::callFunc(
142 const Bu::FString &sIn, const Bu::FString &sFunc ) 142 const Bu::String &sIn, const Bu::String &sFunc )
143{ 143{
144 int i = sFunc.findIdx('('); 144 int i = sFunc.findIdx('(');
145 if( i < 0 ) 145 if( i < 0 )
146 throw Bu::ExceptionBase("That doesn't look like a function call"); 146 throw Bu::ExceptionBase("That doesn't look like a function call");
147 Bu::FString sName( sFunc.getStr(), i ); 147 Bu::String sName( sFunc.getStr(), i );
148 StrList lsParams; 148 StrList lsParams;
149 for( const char *s = sFunc.getStr()+i+1; *s && *s != ')'; s++ ) 149 for( const char *s = sFunc.getStr()+i+1; *s && *s != ')'; s++ )
150 { 150 {
151 for(; *s == ' ' || *s == '\t' || *s == '\r' || *s == '\n'; s++ ) { } 151 for(; *s == ' ' || *s == '\t' || *s == '\r' || *s == '\n'; s++ ) { }
152 const char *sNext; 152 const char *sNext;
153 for( sNext = s; *sNext && *sNext != ')' && *sNext != ','; sNext++ ) { } 153 for( sNext = s; *sNext && *sNext != ')' && *sNext != ','; sNext++ ) { }
154 Bu::FString p( s, (ptrdiff_t)sNext-(ptrdiff_t)s ); 154 Bu::String p( s, (ptrdiff_t)sNext-(ptrdiff_t)s );
155 lsParams.append( p ); 155 lsParams.append( p );
156 sNext++; 156 sNext++;
157 s = sNext; 157 s = sNext;
@@ -160,17 +160,17 @@ Bu::FString Bu::MiniMacro::callFunc(
160} 160}
161 161
162void Bu::MiniMacro::addVar( 162void Bu::MiniMacro::addVar(
163 const Bu::FString &sName, const Bu::FString &sValue ) 163 const Bu::String &sName, const Bu::String &sValue )
164{ 164{
165 hVars.insert( sName, sValue ); 165 hVars.insert( sName, sValue );
166} 166}
167 167
168bool Bu::MiniMacro::hasVar( const Bu::FString &sName ) 168bool Bu::MiniMacro::hasVar( const Bu::String &sName )
169{ 169{
170 return hVars.has( sName ); 170 return hVars.has( sName );
171} 171}
172 172
173const Bu::FString &Bu::MiniMacro::getVar( const Bu::FString &sName ) 173const Bu::String &Bu::MiniMacro::getVar( const Bu::String &sName )
174{ 174{
175 return hVars.get( sName ); 175 return hVars.get( sName );
176} 176}
diff --git a/src/minimacro.h b/src/minimacro.h
index 2a1fe23..582e1b0 100644
--- a/src/minimacro.h
+++ b/src/minimacro.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -9,11 +9,11 @@
9#define BU_MINI_MACRO_H 9#define BU_MINI_MACRO_H
10 10
11#include "bu/hash.h" 11#include "bu/hash.h"
12#include "bu/fstring.h" 12#include "bu/string.h"
13 13
14namespace Bu 14namespace Bu
15{ 15{
16 typedef Bu::Hash<Bu::FString, Bu::FString> StrHash; 16 typedef Bu::Hash<Bu::String, Bu::String> StrHash;
17 /** 17 /**
18 * A processor for Libbu++ brand Mini Macros. These are really simple, but 18 * A processor for Libbu++ brand Mini Macros. These are really simple, but
19 * still fairly flexible. It's mainly text replacement, but with a few 19 * still fairly flexible. It's mainly text replacement, but with a few
@@ -67,34 +67,34 @@ namespace Bu
67 MiniMacro( const StrHash &sVarSrc ); 67 MiniMacro( const StrHash &sVarSrc );
68 virtual ~MiniMacro(); 68 virtual ~MiniMacro();
69 69
70 Bu::FString parse( const Bu::FString &sIn ); 70 Bu::String parse( const Bu::String &sIn );
71 void addVar( const Bu::FString &sName, const Bu::FString &sValue ); 71 void addVar( const Bu::String &sName, const Bu::String &sValue );
72 bool hasVar( const Bu::FString &sName ); 72 bool hasVar( const Bu::String &sName );
73 const Bu::FString &getVar( const Bu::FString &sName ); 73 const Bu::String &getVar( const Bu::String &sName );
74 const StrHash &getVars(); 74 const StrHash &getVars();
75 int getPosition(); 75 int getPosition();
76 76
77 private: 77 private:
78 const char *sCur; 78 const char *sCur;
79 Bu::FString parseRepl(); 79 Bu::String parseRepl();
80 Bu::FString parseCond(); 80 Bu::String parseCond();
81 Bu::FString parseCmd(); 81 Bu::String parseCmd();
82 Bu::FString callFunc( 82 Bu::String callFunc(
83 const Bu::FString &sIn, const Bu::FString &sFunc ); 83 const Bu::String &sIn, const Bu::String &sFunc );
84 84
85 StrHash hVars; 85 StrHash hVars;
86 bool bContinue; 86 bool bContinue;
87 int iLastPos; 87 int iLastPos;
88 88
89 public: 89 public:
90 typedef Bu::List<Bu::FString> StrList; 90 typedef Bu::List<Bu::String> StrList;
91 class Func 91 class Func
92 { 92 {
93 public: 93 public:
94 Func(){} 94 Func(){}
95 virtual ~Func(){} 95 virtual ~Func(){}
96 virtual Bu::FString call( 96 virtual Bu::String call(
97 const Bu::FString &sIn, StrList &lsParam )=0; 97 const Bu::String &sIn, StrList &lsParam )=0;
98 }; 98 };
99 99
100 class FuncToUpper : public Func 100 class FuncToUpper : public Func
@@ -102,10 +102,10 @@ namespace Bu
102 public: 102 public:
103 FuncToUpper(){} 103 FuncToUpper(){}
104 virtual ~FuncToUpper(){} 104 virtual ~FuncToUpper(){}
105 virtual Bu::FString call( 105 virtual Bu::String call(
106 const Bu::FString &sIn, StrList & ) 106 const Bu::String &sIn, StrList & )
107 { 107 {
108 Bu::FString sOut( sIn ); 108 Bu::String sOut( sIn );
109 sOut.toUpper(); 109 sOut.toUpper();
110 return sOut; 110 return sOut;
111 } 111 }
@@ -116,17 +116,17 @@ namespace Bu
116 public: 116 public:
117 FuncToLower(){} 117 FuncToLower(){}
118 virtual ~FuncToLower(){} 118 virtual ~FuncToLower(){}
119 virtual Bu::FString call( 119 virtual Bu::String call(
120 const Bu::FString &sIn, StrList & ) 120 const Bu::String &sIn, StrList & )
121 { 121 {
122 Bu::FString sOut( sIn ); 122 Bu::String sOut( sIn );
123 sOut.toLower(); 123 sOut.toLower();
124 return sOut; 124 return sOut;
125 } 125 }
126 }; 126 };
127 127
128 private: 128 private:
129 typedef Bu::Hash<Bu::FString,class Func *> FuncHash; 129 typedef Bu::Hash<Bu::String,class Func *> FuncHash;
130 FuncHash hFuncs; 130 FuncHash hFuncs;
131 }; 131 };
132}; 132};
diff --git a/src/multiserver.cpp b/src/multiserver.cpp
index a6cee36..bd598ed 100644
--- a/src/multiserver.cpp
+++ b/src/multiserver.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -26,7 +26,7 @@ void Bu::MultiServer::addProtocol( Bu::Protocol *(*proc)(), int iPort,
26 addPort( iPort, nPoolSize ); 26 addPort( iPort, nPoolSize );
27} 27}
28 28
29void Bu::MultiServer::addProtocol( Protocol *(*proc)(), const FString &sAddr, 29void Bu::MultiServer::addProtocol( Protocol *(*proc)(), const String &sAddr,
30 int iPort, int nPoolSize ) 30 int iPort, int nPoolSize )
31{ 31{
32 hProtos[iPort] = proc; 32 hProtos[iPort] = proc;
diff --git a/src/multiserver.h b/src/multiserver.h
index 6b98c1d..e3b3ec3 100644
--- a/src/multiserver.h
+++ b/src/multiserver.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -29,7 +29,7 @@ namespace Bu
29 virtual ~MultiServer(); 29 virtual ~MultiServer();
30 30
31 void addProtocol( Protocol *(*proc)(), int iPort, int nPoolSize=40 ); 31 void addProtocol( Protocol *(*proc)(), int iPort, int nPoolSize=40 );
32 void addProtocol( Protocol *(*proc)(), const FString &sAddr, int iPort, 32 void addProtocol( Protocol *(*proc)(), const String &sAddr, int iPort,
33 int nPoolSize=40 ); 33 int nPoolSize=40 );
34 34
35 void scan() 35 void scan()
diff --git a/src/myriad.cpp b/src/myriad.cpp
index b656b52..0e8dc80 100644
--- a/src/myriad.cpp
+++ b/src/myriad.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/myriad.h b/src/myriad.h
index 582d310..86c7aa1 100644
--- a/src/myriad.h
+++ b/src/myriad.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/myriadfs.cpp b/src/myriadfs.cpp
index af60c08..9f68253 100644
--- a/src/myriadfs.cpp
+++ b/src/myriadfs.cpp
@@ -1,3 +1,10 @@
1/*
2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 *
4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE.
6 */
7
1#include "bu/myriadfs.h" 8#include "bu/myriadfs.h"
2#include "bu/myriadstream.h" 9#include "bu/myriadstream.h"
3 10
diff --git a/src/myriadfs.h b/src/myriadfs.h
index 42a3493..edbdaf5 100644
--- a/src/myriadfs.h
+++ b/src/myriadfs.h
@@ -1,3 +1,10 @@
1/*
2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 *
4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE.
6 */
7
1#ifndef MYRIAD_FS_H 8#ifndef MYRIAD_FS_H
2#define MYRIAD_FS_H 9#define MYRIAD_FS_H
3 10
diff --git a/src/myriadstream.cpp b/src/myriadstream.cpp
index 74dca04..a968a0c 100644
--- a/src/myriadstream.cpp
+++ b/src/myriadstream.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -46,13 +46,13 @@ void Bu::MyriadStream::close()
46{ 46{
47} 47}
48 48
49size_t Bu::MyriadStream::read( void *pBuf, size_t nBytes ) 49Bu::size Bu::MyriadStream::read( void *pBuf, Bu::size nBytes )
50{ 50{
51#ifdef MYRIAD_STREAM_DEBUG 51#ifdef MYRIAD_STREAM_DEBUG
52 sio << "MyriadStream: read: " << __LINE__ << ": Started, asked to read " << nBytes << "b." 52 sio << "MyriadStream: read: " << __LINE__ << ": Started, asked to read " << nBytes << "b."
53 << sio.nl; 53 << sio.nl;
54#endif 54#endif
55 if( nBytes > (size_t)pStream->iSize-iPos ) 55 if( nBytes > (Bu::size)pStream->iSize-iPos )
56 nBytes = pStream->iSize-iPos; 56 nBytes = pStream->iSize-iPos;
57 if( nBytes <= 0 ) 57 if( nBytes <= 0 )
58 return 0; 58 return 0;
@@ -109,7 +109,7 @@ size_t Bu::MyriadStream::read( void *pBuf, size_t nBytes )
109 return nBytes; 109 return nBytes;
110} 110}
111 111
112size_t Bu::MyriadStream::write( const void *pBuf, size_t nBytes ) 112Bu::size Bu::MyriadStream::write( const void *pBuf, Bu::size nBytes )
113{ 113{
114 if( nBytes <= 0 ) 114 if( nBytes <= 0 )
115 return 0; 115 return 0;
@@ -215,22 +215,22 @@ size_t Bu::MyriadStream::write( const void *pBuf, size_t nBytes )
215 return nBytes; 215 return nBytes;
216} 216}
217 217
218long Bu::MyriadStream::tell() 218Bu::size Bu::MyriadStream::tell()
219{ 219{
220 return iPos; 220 return iPos;
221} 221}
222 222
223void Bu::MyriadStream::seek( long offset ) 223void Bu::MyriadStream::seek( Bu::size offset )
224{ 224{
225 iPos += offset; 225 iPos += offset;
226} 226}
227 227
228void Bu::MyriadStream::setPos( long pos ) 228void Bu::MyriadStream::setPos( Bu::size pos )
229{ 229{
230 iPos = pos; 230 iPos = pos;
231} 231}
232 232
233void Bu::MyriadStream::setPosEnd( long pos ) 233void Bu::MyriadStream::setPosEnd( Bu::size pos )
234{ 234{
235 iPos = pStream->iSize-pos; 235 iPos = pStream->iSize-pos;
236} 236}
@@ -283,7 +283,7 @@ void Bu::MyriadStream::setBlocking( bool /*bBlocking*/ )
283{ 283{
284} 284}
285 285
286void Bu::MyriadStream::setSize( long iSize ) 286void Bu::MyriadStream::setSize( Bu::size iSize )
287{ 287{
288 if( iSize < 0 ) 288 if( iSize < 0 )
289 iSize = 0; 289 iSize = 0;
@@ -292,3 +292,20 @@ void Bu::MyriadStream::setSize( long iSize )
292 iPos = iSize; 292 iPos = iSize;
293} 293}
294 294
295Bu::size Bu::MyriadStream::getSize() const
296{
297 return pStream->iSize;
298}
299
300Bu::size Bu::MyriadStream::getBlockSize() const
301{
302 return rMyriad.getBlockSize();
303}
304
305Bu::String Bu::MyriadStream::getLocation() const
306{
307 Bu::String s;
308 s.format("%d", pStream->iId );
309 return s;
310}
311
diff --git a/src/myriadstream.h b/src/myriadstream.h
index 1a5e552..fdad669 100644
--- a/src/myriadstream.h
+++ b/src/myriadstream.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -26,13 +26,13 @@ namespace Bu
26 virtual ~MyriadStream(); 26 virtual ~MyriadStream();
27 27
28 virtual void close(); 28 virtual void close();
29 virtual size_t read( void *pBuf, size_t nBytes ); 29 virtual Bu::size read( void *pBuf, Bu::size nBytes );
30 virtual size_t write( const void *pBuf, size_t nBytes ); 30 virtual Bu::size write( const void *pBuf, Bu::size nBytes );
31 using Stream::write; 31 using Stream::write;
32 virtual long tell(); 32 virtual Bu::size tell();
33 virtual void seek( long offset ); 33 virtual void seek( Bu::size offset );
34 virtual void setPos( long pos ); 34 virtual void setPos( Bu::size pos );
35 virtual void setPosEnd( long pos ); 35 virtual void setPosEnd( Bu::size pos );
36 virtual bool isEos(); 36 virtual bool isEos();
37 virtual bool isOpen(); 37 virtual bool isOpen();
38 virtual void flush(); 38 virtual void flush();
@@ -43,7 +43,11 @@ namespace Bu
43 virtual bool isSeekable(); 43 virtual bool isSeekable();
44 virtual bool isBlocking(); 44 virtual bool isBlocking();
45 virtual void setBlocking( bool bBlocking=true ); 45 virtual void setBlocking( bool bBlocking=true );
46 virtual void setSize( long iSize ); 46 virtual void setSize( Bu::size iSize );
47
48 virtual size getSize() const;
49 virtual size getBlockSize() const;
50 virtual Bu::String getLocation() const;
47 51
48 private: 52 private:
49 Myriad &rMyriad; 53 Myriad &rMyriad;
diff --git a/src/newline.cpp b/src/newline.cpp
index 8c5d3d5..ffc9eb0 100644
--- a/src/newline.cpp
+++ b/src/newline.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -21,19 +21,19 @@ void Bu::NewLine::start()
21{ 21{
22} 22}
23 23
24size_t Bu::NewLine::stop() 24Bu::size Bu::NewLine::stop()
25{ 25{
26 return 0; 26 return 0;
27} 27}
28 28
29size_t Bu::NewLine::read( void *pBufV, size_t iAmnt ) 29Bu::size Bu::NewLine::read( void *pBufV, Bu::size iAmnt )
30{ 30{
31 size_t iTotal = 0; 31 Bu::size iTotal = 0;
32 size_t iOffset = 0; 32 Bu::size iOffset = 0;
33 size_t iRead = rNext.read( pBufV, iAmnt ); 33 Bu::size iRead = rNext.read( pBufV, iAmnt );
34 char *pBuf = (char *)pBufV; 34 char *pBuf = (char *)pBufV;
35 35
36 for( size_t i = 0; i < iRead; i++ ) 36 for( Bu::size i = 0; i < iRead; i++ )
37 { 37 {
38 if( pBuf[i] == '\r' ) 38 if( pBuf[i] == '\r' )
39 { 39 {
@@ -61,7 +61,7 @@ size_t Bu::NewLine::read( void *pBufV, size_t iAmnt )
61 return iTotal; 61 return iTotal;
62} 62}
63 63
64size_t Bu::NewLine::write( const void *, size_t ) 64Bu::size Bu::NewLine::write( const void *, Bu::size )
65{ 65{
66 return 0; 66 return 0;
67} 67}
diff --git a/src/newline.h b/src/newline.h
index 243c876..afe0a84 100644
--- a/src/newline.h
+++ b/src/newline.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -27,10 +27,10 @@ namespace Bu
27 virtual ~NewLine(); 27 virtual ~NewLine();
28 28
29 virtual void start(); 29 virtual void start();
30 virtual size_t stop(); 30 virtual Bu::size stop();
31 31
32 virtual size_t read( void *pBuf, size_t iAmnt ); 32 virtual Bu::size read( void *pBuf, Bu::size iAmnt );
33 virtual size_t write( const void *pBuf, size_t iAmnt ); 33 virtual Bu::size write( const void *pBuf, Bu::size iAmnt );
34 34
35 private: 35 private:
36 bool bExChar; 36 bool bExChar;
diff --git a/src/nullstream.cpp b/src/nullstream.cpp
index 40c636c..9552cc5 100644
--- a/src/nullstream.cpp
+++ b/src/nullstream.cpp
@@ -1,3 +1,10 @@
1/*
2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 *
4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE.
6 */
7
1#include "bu/nullstream.h" 8#include "bu/nullstream.h"
2 9
3Bu::NullStream::NullStream() : 10Bu::NullStream::NullStream() :
@@ -15,39 +22,39 @@ void Bu::NullStream::close()
15 sRead = sWrote = 0; 22 sRead = sWrote = 0;
16} 23}
17 24
18size_t Bu::NullStream::read( void *pBuf, size_t nBytes ) 25Bu::size Bu::NullStream::read( void *pBuf, Bu::size nBytes )
19{ 26{
20 memset( pBuf, 0, nBytes ); 27 memset( pBuf, 0, nBytes );
21 sRead += nBytes; 28 sRead += nBytes;
22 return nBytes; 29 return nBytes;
23} 30}
24 31
25Bu::FString Bu::NullStream::readLine() 32Bu::String Bu::NullStream::readLine()
26{ 33{
27 sRead++; 34 sRead++;
28 return Bu::FString("\0", 1 ); 35 return Bu::String("\0", 1 );
29} 36}
30 37
31size_t Bu::NullStream::write( const void *, size_t nBytes ) 38Bu::size Bu::NullStream::write( const void *, Bu::size nBytes )
32{ 39{
33 sWrote += nBytes; 40 sWrote += nBytes;
34 return nBytes; 41 return nBytes;
35} 42}
36 43
37long Bu::NullStream::tell() 44Bu::size Bu::NullStream::tell()
38{ 45{
39 return sRead + sWrote; 46 return sRead + sWrote;
40} 47}
41 48
42void Bu::NullStream::seek( long ) 49void Bu::NullStream::seek( Bu::size )
43{ 50{
44} 51}
45 52
46void Bu::NullStream::setPos( long ) 53void Bu::NullStream::setPos( Bu::size )
47{ 54{
48} 55}
49 56
50void Bu::NullStream::setPosEnd( long ) 57void Bu::NullStream::setPosEnd( Bu::size )
51{ 58{
52} 59}
53 60
@@ -99,7 +106,22 @@ void Bu::NullStream::setBlocking( bool )
99{ 106{
100} 107}
101 108
102void Bu::NullStream::setSize( long ) 109void Bu::NullStream::setSize( Bu::size )
110{
111}
112
113Bu::size Bu::NullStream::getSize() const
114{
115 return 0;
116}
117
118Bu::size Bu::NullStream::getBlockSize() const
119{
120 return 0;
121}
122
123Bu::String Bu::NullStream::getLocation() const
103{ 124{
125 return "";
104} 126}
105 127
diff --git a/src/nullstream.h b/src/nullstream.h
index 1537ffb..9b75332 100644
--- a/src/nullstream.h
+++ b/src/nullstream.h
@@ -1,3 +1,10 @@
1/*
2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 *
4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE.
6 */
7
1#ifndef BU_NULL_STREAM_H 8#ifndef BU_NULL_STREAM_H
2#define BU_NULL_STREAM_H 9#define BU_NULL_STREAM_H
3 10
@@ -24,14 +31,14 @@ namespace Bu
24 virtual ~NullStream(); 31 virtual ~NullStream();
25 32
26 virtual void close(); 33 virtual void close();
27 virtual size_t read( void *pBuf, size_t nBytes ); 34 virtual Bu::size read( void *pBuf, Bu::size nBytes );
28 virtual Bu::FString readLine(); 35 virtual Bu::String readLine();
29 virtual size_t write( const void *pBuf, size_t nBytes ); 36 virtual Bu::size write( const void *pBuf, Bu::size nBytes );
30 using Bu::Stream::write; 37 using Bu::Stream::write;
31 virtual long tell(); 38 virtual Bu::size tell();
32 virtual void seek( long offset ); 39 virtual void seek( Bu::size offset );
33 virtual void setPos( long pos ); 40 virtual void setPos( Bu::size pos );
34 virtual void setPosEnd( long pos ); 41 virtual void setPosEnd( Bu::size pos );
35 virtual bool isEos(); 42 virtual bool isEos();
36 virtual bool isOpen(); 43 virtual bool isOpen();
37 virtual void flush(); 44 virtual void flush();
@@ -42,14 +49,18 @@ namespace Bu
42 virtual bool isSeekable(); 49 virtual bool isSeekable();
43 virtual bool isBlocking(); 50 virtual bool isBlocking();
44 virtual void setBlocking( bool bBlocking=true ); 51 virtual void setBlocking( bool bBlocking=true );
45 virtual void setSize( long iSize ); 52 virtual void setSize( Bu::size iSize );
53
54 virtual size getSize() const;
55 virtual size getBlockSize() const;
56 virtual Bu::String getLocation() const;
46 57
47 size_t getBytesRead() { return sRead; } 58 Bu::size getBytesRead() { return sRead; }
48 size_t getByetsWritten() { return sWrote; } 59 Bu::size getByetsWritten() { return sWrote; }
49 60
50 private: 61 private:
51 size_t sRead; 62 Bu::size sRead;
52 size_t sWrote; 63 Bu::size sWrote;
53 }; 64 };
54}; 65};
55 66
diff --git a/src/optparser.cpp b/src/optparser.cpp
index b81691d..bab93d0 100644
--- a/src/optparser.cpp
+++ b/src/optparser.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -32,9 +32,9 @@ void Bu::OptParser::parse( int argc, char **argv )
32 for( iEPos = 2; argv[j][iEPos] != '\0' && 32 for( iEPos = 2; argv[j][iEPos] != '\0' &&
33 argv[j][iEPos] != '='; iEPos++ ) { } 33 argv[j][iEPos] != '='; iEPos++ ) { }
34 34
35 Bu::FString sOpt; 35 Bu::String sOpt;
36 int iCount = argc-j; 36 int iCount = argc-j;
37 Bu::FString sExtraParam; 37 Bu::String sExtraParam;
38 if( argv[j][iEPos] == '=' ) 38 if( argv[j][iEPos] == '=' )
39 { 39 {
40 sOpt.set( argv[j]+2, iEPos-2 ); 40 sOpt.set( argv[j]+2, iEPos-2 );
@@ -92,7 +92,7 @@ void Bu::OptParser::parse( int argc, char **argv )
92 { 92 {
93 if( !hsOption.has( argv[j][iCPos] ) ) 93 if( !hsOption.has( argv[j][iCPos] ) )
94 { 94 {
95 Bu::FString sOpt("-"); 95 Bu::String sOpt("-");
96 sOpt += argv[j][iCPos]; 96 sOpt += argv[j][iCPos];
97 optionError( sOpt ); 97 optionError( sOpt );
98 } 98 }
@@ -181,17 +181,17 @@ void Bu::OptParser::setOverride( char cOpt, const Bu::Variant &sOverride )
181 hsOption.get( cOpt )->sOverride = sOverride; 181 hsOption.get( cOpt )->sOverride = sOverride;
182} 182}
183 183
184void Bu::OptParser::setOverride( const Bu::FString &sOpt, const Bu::Variant &sOverride ) 184void Bu::OptParser::setOverride( const Bu::String &sOpt, const Bu::Variant &sOverride )
185{ 185{
186 hlOption.get( sOpt )->sOverride = sOverride; 186 hlOption.get( sOpt )->sOverride = sOverride;
187} 187}
188 188
189void Bu::OptParser::setHelpDefault( const Bu::FString &sOpt, const Bu::FString &sTxt ) 189void Bu::OptParser::setHelpDefault( const Bu::String &sOpt, const Bu::String &sTxt )
190{ 190{
191 hlOption.get( sOpt )->sHelpDefault = sTxt; 191 hlOption.get( sOpt )->sHelpDefault = sTxt;
192} 192}
193 193
194void Bu::OptParser::addHelpOption( char c, const Bu::FString &s, const Bu::FString &sHelp ) 194void Bu::OptParser::addHelpOption( char c, const Bu::String &s, const Bu::String &sHelp )
195{ 195{
196 Option o; 196 Option o;
197 o.sUsed = slot( this, &OptParser::optHelp ); 197 o.sUsed = slot( this, &OptParser::optHelp );
@@ -201,7 +201,7 @@ void Bu::OptParser::addHelpOption( char c, const Bu::FString &s, const Bu::FStri
201 addOption( o ); 201 addOption( o );
202} 202}
203 203
204void Bu::OptParser::addHelpBanner( const Bu::FString &sText, bool bFormatted ) 204void Bu::OptParser::addHelpBanner( const Bu::String &sText, bool bFormatted )
205{ 205{
206 Banner b; 206 Banner b;
207 b.sText = sText; 207 b.sText = sText;
@@ -290,7 +290,7 @@ int Bu::OptParser::optHelp( StrArray /*aParams*/ )
290 return 0; 290 return 0;
291} 291}
292 292
293void Bu::OptParser::optionError( const Bu::FString &sOption ) 293void Bu::OptParser::optionError( const Bu::String &sOption )
294{ 294{
295 sio << "Unregcognized option discovered: " << sOption << sio.nl << sio.nl; 295 sio << "Unregcognized option discovered: " << sOption << sio.nl << sio.nl;
296 exit( 1 ); 296 exit( 1 );
@@ -301,11 +301,11 @@ void Bu::OptParser::setNonOption( OptionSignal sSignal )
301 sNonOption = sSignal; 301 sNonOption = sSignal;
302} 302}
303 303
304Bu::FString Bu::OptParser::format( const Bu::FString &sIn, int iWidth, 304Bu::String Bu::OptParser::format( const Bu::String &sIn, int iWidth,
305 int iIndent ) 305 int iIndent )
306{ 306{
307 Bu::FString sOut; 307 Bu::String sOut;
308 Bu::FString sIndent; 308 Bu::String sIndent;
309 for( int j = 0; j < iIndent; j++ ) 309 for( int j = 0; j < iIndent; j++ )
310 sIndent.append(" ", 1); 310 sIndent.append(" ", 1);
311 bool bFirst = true; 311 bool bFirst = true;
@@ -314,8 +314,8 @@ Bu::FString Bu::OptParser::format( const Bu::FString &sIn, int iWidth,
314 int iPrevLineLen; 314 int iPrevLineLen;
315 int iLineLen = 0; 315 int iLineLen = 0;
316 char c; 316 char c;
317 Bu::FString::const_iterator iLastSpace, iStart; 317 Bu::String::const_iterator iLastSpace, iStart;
318 for( Bu::FString::const_iterator i = iLastSpace = iStart = sIn.begin(); i; i++ ) 318 for( Bu::String::const_iterator i = iLastSpace = iStart = sIn.begin(); i; i++ )
319 { 319 {
320 c = *i; 320 c = *i;
321 if( *i == ' ' ) 321 if( *i == ' ' )
@@ -346,7 +346,7 @@ Bu::FString Bu::OptParser::format( const Bu::FString &sIn, int iWidth,
346 float fFill = 0.0; 346 float fFill = 0.0;
347 int iSubSpaceCount = 0; 347 int iSubSpaceCount = 0;
348 float fAdd = ((float)iExtraSpaces/(float)iSpaceCount); 348 float fAdd = ((float)iExtraSpaces/(float)iSpaceCount);
349 for( Bu::FString::const_iterator k = iStart; k != iLastSpace; k++ ) 349 for( Bu::String::const_iterator k = iStart; k != iLastSpace; k++ )
350 { 350 {
351 sOut += *k; 351 sOut += *k;
352 if( *k == ' ' ) 352 if( *k == ' ' )
diff --git a/src/optparser.h b/src/optparser.h
index 7ec69e5..4142e22 100644
--- a/src/optparser.h
+++ b/src/optparser.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -8,7 +8,7 @@
8#ifndef BU_OPT_PARSER_H 8#ifndef BU_OPT_PARSER_H
9#define BU_OPT_PARSER_H 9#define BU_OPT_PARSER_H
10 10
11#include "bu/fstring.h" 11#include "bu/string.h"
12#include "bu/list.h" 12#include "bu/list.h"
13#include "bu/hash.h" 13#include "bu/hash.h"
14#include "bu/signals.h" 14#include "bu/signals.h"
@@ -19,7 +19,7 @@
19 19
20namespace Bu 20namespace Bu
21{ 21{
22 typedef Bu::Array<Bu::FString> StrArray; 22 typedef Bu::Array<Bu::String> StrArray;
23 23
24 /** 24 /**
25 * POSIX/Gnu style command line parser. Handles long and short options in 25 * POSIX/Gnu style command line parser. Handles long and short options in
@@ -41,7 +41,7 @@ namespace Bu
41 _ValueProxy(); 41 _ValueProxy();
42 virtual ~_ValueProxy(); 42 virtual ~_ValueProxy();
43 43
44 virtual void setValueFromStr( const Bu::FString & )=0; 44 virtual void setValueFromStr( const Bu::String & )=0;
45 virtual void setValue( const Bu::Variant &vVar )=0; 45 virtual void setValue( const Bu::Variant &vVar )=0;
46 virtual _ValueProxy *clone()=0; 46 virtual _ValueProxy *clone()=0;
47 }; 47 };
@@ -59,7 +59,7 @@ namespace Bu
59 { 59 {
60 } 60 }
61 61
62 virtual void setValueFromStr( const Bu::FString &sVal ) 62 virtual void setValueFromStr( const Bu::String &sVal )
63 { 63 {
64 Bu::MemBuf mb( sVal ); 64 Bu::MemBuf mb( sVal );
65 Bu::Formatter f( mb ); 65 Bu::Formatter f( mb );
@@ -72,9 +72,9 @@ namespace Bu
72 { 72 {
73 v = vVar.get<ptype>(); 73 v = vVar.get<ptype>();
74 } 74 }
75 else if( vVar.getType() == typeid(Bu::FString) ) 75 else if( vVar.getType() == typeid(Bu::String) )
76 { 76 {
77 setValueFromStr( vVar.get<Bu::FString>() ); 77 setValueFromStr( vVar.get<Bu::String>() );
78 } 78 }
79 else 79 else
80 { 80 {
@@ -101,23 +101,23 @@ namespace Bu
101 virtual ~Option(); 101 virtual ~Option();
102 102
103 char cOpt; 103 char cOpt;
104 Bu::FString sOpt; 104 Bu::String sOpt;
105 Bu::FString sHelp; 105 Bu::String sHelp;
106 OptionSignal sUsed; 106 OptionSignal sUsed;
107 _ValueProxy *pProxy; 107 _ValueProxy *pProxy;
108 Bu::Variant sOverride; 108 Bu::Variant sOverride;
109 Bu::FString sHelpDefault; 109 Bu::String sHelpDefault;
110 }; 110 };
111 111
112 private: 112 private:
113 typedef Bu::List<Option> OptionList; 113 typedef Bu::List<Option> OptionList;
114 typedef Bu::Hash<char, Option *> ShortOptionHash; 114 typedef Bu::Hash<char, Option *> ShortOptionHash;
115 typedef Bu::Hash<Bu::FString, Option *> LongOptionHash; 115 typedef Bu::Hash<Bu::String, Option *> LongOptionHash;
116 116
117 class Banner 117 class Banner
118 { 118 {
119 public: 119 public:
120 Bu::FString sText; 120 Bu::String sText;
121 bool bFormatted; 121 bool bFormatted;
122 OptionList::const_iterator iAfter; 122 OptionList::const_iterator iAfter;
123 }; 123 };
@@ -133,8 +133,8 @@ namespace Bu
133 void addOption( const Option &opt ); 133 void addOption( const Option &opt );
134 134
135 template<typename vtype> 135 template<typename vtype>
136 void addOption( vtype &var, char cOpt, const Bu::FString &sOpt, 136 void addOption( vtype &var, char cOpt, const Bu::String &sOpt,
137 const Bu::FString &sHelp ) 137 const Bu::String &sHelp )
138 { 138 {
139 Option o; 139 Option o;
140 o.cOpt = cOpt; 140 o.cOpt = cOpt;
@@ -145,20 +145,20 @@ namespace Bu
145 } 145 }
146 146
147 template<typename vtype> 147 template<typename vtype>
148 void addOption( vtype &var, const Bu::FString &sOpt, 148 void addOption( vtype &var, const Bu::String &sOpt,
149 const Bu::FString &sHelp ) 149 const Bu::String &sHelp )
150 { 150 {
151 addOption( var, '\0', sOpt, sHelp ); 151 addOption( var, '\0', sOpt, sHelp );
152 } 152 }
153 153
154 template<typename vtype> 154 template<typename vtype>
155 void addOption( vtype &var, char cOpt, const Bu::FString &sHelp ) 155 void addOption( vtype &var, char cOpt, const Bu::String &sHelp )
156 { 156 {
157 addOption( var, cOpt, "", sHelp ); 157 addOption( var, cOpt, "", sHelp );
158 } 158 }
159 159
160 void addOption( OptionSignal sUsed, char cOpt, const Bu::FString &sOpt, 160 void addOption( OptionSignal sUsed, char cOpt, const Bu::String &sOpt,
161 const Bu::FString &sHelp ) 161 const Bu::String &sHelp )
162 { 162 {
163 Option o; 163 Option o;
164 o.cOpt = cOpt; 164 o.cOpt = cOpt;
@@ -168,27 +168,27 @@ namespace Bu
168 addOption( o ); 168 addOption( o );
169 } 169 }
170 170
171 void addOption( OptionSignal sUsed, const Bu::FString &sOpt, 171 void addOption( OptionSignal sUsed, const Bu::String &sOpt,
172 const Bu::FString &sHelp ) 172 const Bu::String &sHelp )
173 { 173 {
174 addOption( sUsed, '\0', sOpt, sHelp ); 174 addOption( sUsed, '\0', sOpt, sHelp );
175 } 175 }
176 176
177 void addOption( OptionSignal sUsed, char cOpt, 177 void addOption( OptionSignal sUsed, char cOpt,
178 const Bu::FString &sHelp ) 178 const Bu::String &sHelp )
179 { 179 {
180 addOption( sUsed, cOpt, "", sHelp ); 180 addOption( sUsed, cOpt, "", sHelp );
181 } 181 }
182 182
183 void setOverride( char cOpt, const Bu::Variant &sOverride ); 183 void setOverride( char cOpt, const Bu::Variant &sOverride );
184 void setOverride( const Bu::FString &sOpt, 184 void setOverride( const Bu::String &sOpt,
185 const Bu::Variant &sOverride ); 185 const Bu::Variant &sOverride );
186 186
187 void setHelpDefault( const Bu::FString &sOpt, const Bu::FString &sTxt ); 187 void setHelpDefault( const Bu::String &sOpt, const Bu::String &sTxt );
188 188
189 void addHelpOption( char c='h', const Bu::FString &s="help", 189 void addHelpOption( char c='h', const Bu::String &s="help",
190 const Bu::FString &sHelp="This help." ); 190 const Bu::String &sHelp="This help." );
191 void addHelpBanner( const Bu::FString &sText, bool bFormatted=true ); 191 void addHelpBanner( const Bu::String &sText, bool bFormatted=true );
192 192
193 int optHelp( StrArray aParams ); 193 int optHelp( StrArray aParams );
194 194
@@ -200,12 +200,12 @@ namespace Bu
200 * been handled by an option, and isn't an option (starts with - or --). 200 * been handled by an option, and isn't an option (starts with - or --).
201 * To change this behaviour call 201 * To change this behaviour call
202 */ 202 */
203 virtual void optionError( const Bu::FString &sOption ); 203 virtual void optionError( const Bu::String &sOption );
204 204
205 void setNonOption( OptionSignal sSignal ); 205 void setNonOption( OptionSignal sSignal );
206 206
207 private: 207 private:
208 Bu::FString format( const Bu::FString &sIn, int iWidth, int iIndent ); 208 Bu::String format( const Bu::String &sIn, int iWidth, int iIndent );
209 209
210 OptionList lOption; 210 OptionList lOption;
211 ShortOptionHash hsOption; 211 ShortOptionHash hsOption;
diff --git a/src/parser.cpp b/src/parser.cpp
index 4ad4ff9..4d9f793 100644
--- a/src/parser.cpp
+++ b/src/parser.cpp
@@ -1,3 +1,10 @@
1/*
2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 *
4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE.
6 */
7
1#include "bu/parser.h" 8#include "bu/parser.h"
2#include "bu/lexer.h" 9#include "bu/lexer.h"
3 10
@@ -172,12 +179,12 @@ void Bu::Parser::setRootNonTerminal( int iRoot )
172 iRootNonTerminal = iRoot; 179 iRootNonTerminal = iRoot;
173} 180}
174 181
175void Bu::Parser::setRootNonTerminal( const Bu::FString &sRoot ) 182void Bu::Parser::setRootNonTerminal( const Bu::String &sRoot )
176{ 183{
177 setRootNonTerminal( hNonTerminalName.get( sRoot ) ); 184 setRootNonTerminal( hNonTerminalName.get( sRoot ) );
178} 185}
179 186
180int Bu::Parser::addNonTerminal( const Bu::FString &sName, NonTerminal &nt ) 187int Bu::Parser::addNonTerminal( const Bu::String &sName, NonTerminal &nt )
181{ 188{
182 int iId = aNonTerminal.getSize(); 189 int iId = aNonTerminal.getSize();
183 aNonTerminal.append( nt ); 190 aNonTerminal.append( nt );
@@ -186,7 +193,7 @@ int Bu::Parser::addNonTerminal( const Bu::FString &sName, NonTerminal &nt )
186 return iId; 193 return iId;
187} 194}
188 195
189int Bu::Parser::addNonTerminal( const Bu::FString &sName ) 196int Bu::Parser::addNonTerminal( const Bu::String &sName )
190{ 197{
191 int iId = aNonTerminal.getSize(); 198 int iId = aNonTerminal.getSize();
192 aNonTerminal.append( NonTerminal() ); 199 aNonTerminal.append( NonTerminal() );
@@ -195,22 +202,22 @@ int Bu::Parser::addNonTerminal( const Bu::FString &sName )
195 return iId; 202 return iId;
196} 203}
197 204
198void Bu::Parser::setNonTerminal( const Bu::FString &sName, NonTerminal &nt ) 205void Bu::Parser::setNonTerminal( const Bu::String &sName, NonTerminal &nt )
199{ 206{
200 aNonTerminal[hNonTerminalName.get(sName)] = nt; 207 aNonTerminal[hNonTerminalName.get(sName)] = nt;
201} 208}
202 209
203int Bu::Parser::getNonTerminalId( const Bu::FString &sName ) 210int Bu::Parser::getNonTerminalId( const Bu::String &sName )
204{ 211{
205 return hNonTerminalName.get( sName ); 212 return hNonTerminalName.get( sName );
206} 213}
207 214
208bool Bu::Parser::hasNonTerminal( const Bu::FString &sName ) 215bool Bu::Parser::hasNonTerminal( const Bu::String &sName )
209{ 216{
210 return hNonTerminalName.has( sName ); 217 return hNonTerminalName.has( sName );
211} 218}
212 219
213int Bu::Parser::addReduction( const Bu::FString &sName, const Reduction &r ) 220int Bu::Parser::addReduction( const Bu::String &sName, const Reduction &r )
214{ 221{
215 int iId = aReduction.getSize(); 222 int iId = aReduction.getSize();
216 aReduction.append( r ); 223 aReduction.append( r );
@@ -218,7 +225,7 @@ int Bu::Parser::addReduction( const Bu::FString &sName, const Reduction &r )
218 return iId; 225 return iId;
219} 226}
220 227
221int Bu::Parser::addReduction( const Bu::FString &sName ) 228int Bu::Parser::addReduction( const Bu::String &sName )
222{ 229{
223 int iId = aReduction.getSize(); 230 int iId = aReduction.getSize();
224 aReduction.append( Reduction() ); 231 aReduction.append( Reduction() );
@@ -226,17 +233,17 @@ int Bu::Parser::addReduction( const Bu::FString &sName )
226 return iId; 233 return iId;
227} 234}
228 235
229void Bu::Parser::setReduction( const Bu::FString &sName, const Reduction &r ) 236void Bu::Parser::setReduction( const Bu::String &sName, const Reduction &r )
230{ 237{
231 aReduction[hReductionName.get(sName)] = r; 238 aReduction[hReductionName.get(sName)] = r;
232} 239}
233 240
234int Bu::Parser::getReductionId( const Bu::FString &sName ) 241int Bu::Parser::getReductionId( const Bu::String &sName )
235{ 242{
236 return hReductionName.get( sName ); 243 return hReductionName.get( sName );
237} 244}
238 245
239bool Bu::Parser::hasReduction( const Bu::FString &sName ) 246bool Bu::Parser::hasReduction( const Bu::String &sName )
240{ 247{
241 return hReductionName.has( sName ); 248 return hReductionName.has( sName );
242} 249}
diff --git a/src/parser.h b/src/parser.h
index a925188..a168c7b 100644
--- a/src/parser.h
+++ b/src/parser.h
@@ -1,7 +1,14 @@
1/*
2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 *
4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE.
6 */
7
1#ifndef BU_PARSER_H 8#ifndef BU_PARSER_H
2#define BU_PARSER_H 9#define BU_PARSER_H
3 10
4#include "bu/fstring.h" 11#include "bu/string.h"
5#include "bu/list.h" 12#include "bu/list.h"
6#include "bu/array.h" 13#include "bu/array.h"
7#include "bu/hash.h" 14#include "bu/hash.h"
@@ -43,7 +50,7 @@ namespace Bu
43 void parse(); 50 void parse();
44 51
45 void setRootNonTerminal( int iRoot ); 52 void setRootNonTerminal( int iRoot );
46 void setRootNonTerminal( const Bu::FString &sRoot ); 53 void setRootNonTerminal( const Bu::String &sRoot );
47 54
48 typedef Bu::Signal1<void, Parser &> Reduction; 55 typedef Bu::Signal1<void, Parser &> Reduction;
49 56
@@ -87,17 +94,17 @@ namespace Bu
87 bool bCanSkip; 94 bool bCanSkip;
88 }; 95 };
89 96
90 int addNonTerminal( const Bu::FString &sName, NonTerminal &nt ); 97 int addNonTerminal( const Bu::String &sName, NonTerminal &nt );
91 int addNonTerminal( const Bu::FString &sName ); 98 int addNonTerminal( const Bu::String &sName );
92 void setNonTerminal( const Bu::FString &sName, NonTerminal &nt ); 99 void setNonTerminal( const Bu::String &sName, NonTerminal &nt );
93 int getNonTerminalId( const Bu::FString &sName ); 100 int getNonTerminalId( const Bu::String &sName );
94 bool hasNonTerminal( const Bu::FString &sName ); 101 bool hasNonTerminal( const Bu::String &sName );
95 102
96 int addReduction( const Bu::FString &sName, const Reduction &r ); 103 int addReduction( const Bu::String &sName, const Reduction &r );
97 int addReduction( const Bu::FString &sName ); 104 int addReduction( const Bu::String &sName );
98 void setReduction( const Bu::FString &sName, const Reduction &r ); 105 void setReduction( const Bu::String &sName, const Reduction &r );
99 int getReductionId( const Bu::FString &sName ); 106 int getReductionId( const Bu::String &sName );
100 bool hasReduction( const Bu::FString &sName ); 107 bool hasReduction( const Bu::String &sName );
101 108
102 private: 109 private:
103 bool selectProduction( int iNt, Lexer::Token *ptCur ); 110 bool selectProduction( int iNt, Lexer::Token *ptCur );
@@ -108,7 +115,7 @@ namespace Bu
108 typedef Bu::List<Lexer::Token *> TokenStack; 115 typedef Bu::List<Lexer::Token *> TokenStack;
109 typedef Bu::List<Production::const_iterator> StateStack; 116 typedef Bu::List<Production::const_iterator> StateStack;
110 typedef Bu::Array<Reduction> ReductionArray; 117 typedef Bu::Array<Reduction> ReductionArray;
111 typedef Bu::Hash<Bu::FString,int> NameIndexHash; 118 typedef Bu::Hash<Bu::String,int> NameIndexHash;
112 typedef Bu::Array<NonTerminal> NonTerminalArray; 119 typedef Bu::Array<NonTerminal> NonTerminalArray;
113 120
114 LexerStack sLexer; 121 LexerStack sLexer;
diff --git a/src/plugger.cpp b/src/plugger.cpp
index 9d1ac3c..fb6850a 100644
--- a/src/plugger.cpp
+++ b/src/plugger.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/plugger.h b/src/plugger.h
index 2780356..2ba7b4b 100644
--- a/src/plugger.h
+++ b/src/plugger.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -11,7 +11,7 @@
11#include "bu/hash.h" 11#include "bu/hash.h"
12#include "bu/list.h" 12#include "bu/list.h"
13#include "bu/exceptionbase.h" 13#include "bu/exceptionbase.h"
14#include "bu/fstring.h" 14#include "bu/string.h"
15#include <stddef.h> 15#include <stddef.h>
16 16
17#include "bu/config.h" 17#include "bu/config.h"
@@ -144,7 +144,7 @@ namespace Bu
144 class Plugger 144 class Plugger
145 { 145 {
146 public: 146 public:
147 typedef Bu::Hash<Bu::FString, PluginReg *> PluginHash; 147 typedef Bu::Hash<Bu::String, PluginReg *> PluginHash;
148 typedef Bu::Hash<ptrdiff_t, void *> InstHash; 148 typedef Bu::Hash<ptrdiff_t, void *> InstHash;
149 149
150 public: 150 public:
@@ -184,8 +184,8 @@ namespace Bu
184 hPlugin.insert( pInfo->sID, pReg ); 184 hPlugin.insert( pInfo->sID, pReg );
185 } 185 }
186 186
187 void registerExternalPlugin( const Bu::FString &sFName, 187 void registerExternalPlugin( const Bu::String &sFName,
188 const Bu::FString &sPluginName ) 188 const Bu::String &sPluginName )
189 { 189 {
190 PluginReg *pReg; 190 PluginReg *pReg;
191 if( hPlugin.has( sPluginName ) ) 191 if( hPlugin.has( sPluginName ) )
@@ -227,7 +227,7 @@ namespace Bu
227 hPlugin.insert( pReg->pInfo->sID, pReg ); 227 hPlugin.insert( pReg->pInfo->sID, pReg );
228 } 228 }
229 229
230 T *instantiate( const Bu::FString &lpName ) 230 T *instantiate( const Bu::String &lpName )
231 { 231 {
232 PluginReg *pReg = (PluginReg *)hPlugin[lpName]; 232 PluginReg *pReg = (PluginReg *)hPlugin[lpName];
233 if( pReg == NULL ) 233 if( pReg == NULL )
@@ -240,7 +240,7 @@ namespace Bu
240 return p; 240 return p;
241 } 241 }
242 242
243 bool hasPlugin( const Bu::FString &lpName ) 243 bool hasPlugin( const Bu::String &lpName )
244 { 244 {
245 return hPlugin.has( lpName ); 245 return hPlugin.has( lpName );
246 } 246 }
@@ -275,7 +275,7 @@ namespace Bu
275 hPlugin.clear(); 275 hPlugin.clear();
276 } 276 }
277 277
278 Bu::List<Bu::FString> getPluginList() 278 Bu::List<Bu::String> getPluginList()
279 { 279 {
280 return hPlugin.getKeys(); 280 return hPlugin.getKeys();
281 } 281 }
diff --git a/src/process.cpp b/src/process.cpp
index 0e3e93a..8ea6ce3 100644
--- a/src/process.cpp
+++ b/src/process.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -133,7 +133,7 @@ void Bu::Process::close()
133 } 133 }
134} 134}
135 135
136size_t Bu::Process::read( void *pBuf, size_t nBytes ) 136Bu::size Bu::Process::read( void *pBuf, Bu::size nBytes )
137{ 137{
138 if( bStdOutEos ) 138 if( bStdOutEos )
139 return 0; 139 return 0;
@@ -145,7 +145,7 @@ size_t Bu::Process::read( void *pBuf, size_t nBytes )
145 throw Bu::ExceptionBase( strerror( errno ) ); 145 throw Bu::ExceptionBase( strerror( errno ) );
146 if( FD_ISSET( iStdOut, &rfds ) || bBlocking ) 146 if( FD_ISSET( iStdOut, &rfds ) || bBlocking )
147 { 147 {
148 ssize_t nRead = TEMP_FAILURE_RETRY( ::read( iStdOut, pBuf, nBytes ) ); 148 Bu::size nRead = TEMP_FAILURE_RETRY( ::read( iStdOut, pBuf, nBytes ) );
149 if( nRead == 0 ) 149 if( nRead == 0 )
150 { 150 {
151 bStdOutEos = true; 151 bStdOutEos = true;
@@ -163,7 +163,7 @@ size_t Bu::Process::read( void *pBuf, size_t nBytes )
163 return 0; 163 return 0;
164} 164}
165 165
166size_t Bu::Process::readErr( void *pBuf, size_t nBytes ) 166Bu::size Bu::Process::readErr( void *pBuf, Bu::size nBytes )
167{ 167{
168 if( bStdErrEos ) 168 if( bStdErrEos )
169 return 0; 169 return 0;
@@ -175,7 +175,7 @@ size_t Bu::Process::readErr( void *pBuf, size_t nBytes )
175 throw Bu::ExceptionBase( strerror( errno ) ); 175 throw Bu::ExceptionBase( strerror( errno ) );
176 if( FD_ISSET( iStdErr, &rfds ) || bBlocking ) 176 if( FD_ISSET( iStdErr, &rfds ) || bBlocking )
177 { 177 {
178 ssize_t nRead = TEMP_FAILURE_RETRY( ::read( iStdErr, pBuf, nBytes ) ); 178 Bu::size nRead = TEMP_FAILURE_RETRY( ::read( iStdErr, pBuf, nBytes ) );
179 if( nRead == 0 ) 179 if( nRead == 0 )
180 { 180 {
181 bStdErrEos = true; 181 bStdErrEos = true;
@@ -193,25 +193,25 @@ size_t Bu::Process::readErr( void *pBuf, size_t nBytes )
193 return 0; 193 return 0;
194} 194}
195 195
196size_t Bu::Process::write( const void *pBuf, size_t nBytes ) 196Bu::size Bu::Process::write( const void *pBuf, Bu::size nBytes )
197{ 197{
198 return TEMP_FAILURE_RETRY( ::write( iStdIn, pBuf, nBytes ) ); 198 return TEMP_FAILURE_RETRY( ::write( iStdIn, pBuf, nBytes ) );
199} 199}
200 200
201long Bu::Process::tell() 201Bu::size Bu::Process::tell()
202{ 202{
203 return 0; 203 return 0;
204} 204}
205 205
206void Bu::Process::seek( long ) 206void Bu::Process::seek( Bu::size )
207{ 207{
208} 208}
209 209
210void Bu::Process::setPos( long ) 210void Bu::Process::setPos( Bu::size )
211{ 211{
212} 212}
213 213
214void Bu::Process::setPosEnd( long ) 214void Bu::Process::setPosEnd( Bu::size )
215{ 215{
216} 216}
217 217
@@ -278,10 +278,25 @@ void Bu::Process::setBlocking( bool bBlocking )
278 this->bBlocking = bBlocking; 278 this->bBlocking = bBlocking;
279} 279}
280 280
281void Bu::Process::setSize( long ) 281void Bu::Process::setSize( Bu::size )
282{ 282{
283} 283}
284 284
285Bu::size Bu::Process::getBlockSize() const
286{
287 return 0;
288}
289
290Bu::size Bu::Process::getSize() const
291{
292 return 0;
293}
294
295Bu::String Bu::Process::getLocation() const
296{
297 return "";
298}
299
285void Bu::Process::select( bool &bStdOut, bool &bStdErr ) 300void Bu::Process::select( bool &bStdOut, bool &bStdErr )
286{ 301{
287 fd_set rfds; 302 fd_set rfds;
diff --git a/src/process.h b/src/process.h
index 68678bd..4934408 100644
--- a/src/process.h
+++ b/src/process.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -12,7 +12,7 @@
12#include <sys/types.h> 12#include <sys/types.h>
13 13
14#include "bu/stream.h" 14#include "bu/stream.h"
15#include "bu/fstring.h" 15#include "bu/string.h"
16 16
17namespace Bu 17namespace Bu
18{ 18{
@@ -44,15 +44,15 @@ namespace Bu
44 void wait(); 44 void wait();
45 45
46 virtual void close(); 46 virtual void close();
47 virtual size_t read( void *pBuf, size_t nBytes ); 47 virtual Bu::size read( void *pBuf, Bu::size nBytes );
48 virtual size_t readErr( void *pBuf, size_t nBytes ); 48 virtual Bu::size readErr( void *pBuf, Bu::size nBytes );
49 virtual size_t write( const void *pBuf, size_t nBytes ); 49 virtual Bu::size write( const void *pBuf, Bu::size nBytes );
50 using Stream::write; 50 using Stream::write;
51 51
52 virtual long tell(); 52 virtual Bu::size tell();
53 virtual void seek( long offset ); 53 virtual void seek( Bu::size offset );
54 virtual void setPos( long pos ); 54 virtual void setPos( Bu::size pos );
55 virtual void setPosEnd( long pos ); 55 virtual void setPosEnd( Bu::size pos );
56 virtual bool isEos(); 56 virtual bool isEos();
57 virtual bool isOpen(); 57 virtual bool isOpen();
58 58
@@ -68,7 +68,11 @@ namespace Bu
68 virtual bool isBlocking(); 68 virtual bool isBlocking();
69 virtual void setBlocking( bool bBlocking=true ); 69 virtual void setBlocking( bool bBlocking=true );
70 70
71 virtual void setSize( long iSize ); 71 virtual void setSize( Bu::size iSize );
72
73 virtual size getBlockSize() const;
74 virtual size getSize() const;
75 virtual Bu::String getLocation() const;
72 76
73 void select( bool &bStdOut, bool &bStdErr ); 77 void select( bool &bStdOut, bool &bStdErr );
74 78
diff --git a/src/programchain.cpp b/src/programchain.cpp
index a86cf5a..ce0c9cc 100644
--- a/src/programchain.cpp
+++ b/src/programchain.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/programchain.h b/src/programchain.h
index 6d1666c..47797a2 100644
--- a/src/programchain.h
+++ b/src/programchain.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/programlink.cpp b/src/programlink.cpp
index c1a4df0..f9453c2 100644
--- a/src/programlink.cpp
+++ b/src/programlink.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/programlink.h b/src/programlink.h
index dc5e7e7..36a605e 100644
--- a/src/programlink.h
+++ b/src/programlink.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/protocol.cpp b/src/protocol.cpp
index 28d8c08..2489d05 100644
--- a/src/protocol.cpp
+++ b/src/protocol.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -25,7 +25,7 @@ void Bu::Protocol::onNewData( Bu::Client * )
25{ 25{
26} 26}
27 27
28void Bu::Protocol::onMessage( Bu::Client *, const Bu::FString & ) 28void Bu::Protocol::onMessage( Bu::Client *, const Bu::String & )
29{ 29{
30} 30}
31 31
diff --git a/src/protocol.h b/src/protocol.h
index f462060..0058723 100644
--- a/src/protocol.h
+++ b/src/protocol.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -10,7 +10,7 @@
10 10
11#include <stdint.h> 11#include <stdint.h>
12 12
13#include "bu/fstring.h" 13#include "bu/string.h"
14 14
15namespace Bu 15namespace Bu
16{ 16{
@@ -27,7 +27,7 @@ namespace Bu
27 27
28 virtual void onNewConnection( Bu::Client *pClient ); 28 virtual void onNewConnection( Bu::Client *pClient );
29 virtual void onNewData( Bu::Client *pClient ); 29 virtual void onNewData( Bu::Client *pClient );
30 virtual void onMessage( Bu::Client *pClient, const Bu::FString &sMsg ); 30 virtual void onMessage( Bu::Client *pClient, const Bu::String &sMsg );
31 virtual void onTick( Bu::Client *pClient ); 31 virtual void onTick( Bu::Client *pClient );
32 32
33 private: 33 private:
diff --git a/src/protocolhttp.cpp b/src/protocolhttp.cpp
index 2a7fbdf..eaee9d0 100644
--- a/src/protocolhttp.cpp
+++ b/src/protocolhttp.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -51,7 +51,7 @@ void Bu::ProtocolHttp::onNewData( Bu::Client *pClient )
51 51
52 for(;;) 52 for(;;)
53 { 53 {
54 Bu::FString sToken; 54 Bu::String sToken;
55 TokenType tt = getToken( sToken ); 55 TokenType tt = getToken( sToken );
56 56
57 if( tt == ttOutOfData ) 57 if( tt == ttOutOfData )
@@ -148,7 +148,7 @@ void Bu::ProtocolHttp::onNewData( Bu::Client *pClient )
148 } 148 }
149} 149}
150 150
151Bu::ProtocolHttp::TokenType Bu::ProtocolHttp::getToken( Bu::FString &line ) 151Bu::ProtocolHttp::TokenType Bu::ProtocolHttp::getToken( Bu::String &line )
152{ 152{
153 char s; 153 char s;
154 int jmax = pClient->getInputSize(); 154 int jmax = pClient->getInputSize();
@@ -330,7 +330,7 @@ Bu::ProtocolHttp::Response::Response( int iCode ) :
330 } 330 }
331} 331}
332 332
333Bu::ProtocolHttp::Response::Response( int iCode, const Bu::FString &sReason ) : 333Bu::ProtocolHttp::Response::Response( int iCode, const Bu::String &sReason ) :
334 iCode( iCode ), 334 iCode( iCode ),
335 sReason( sReason ) 335 sReason( sReason )
336{ 336{
@@ -341,12 +341,12 @@ Bu::ProtocolHttp::Response::~Response()
341} 341}
342 342
343void Bu::ProtocolHttp::Response::setHeader( 343void Bu::ProtocolHttp::Response::setHeader(
344 const Bu::FString &sKey, const Bu::FString &sVal ) 344 const Bu::String &sKey, const Bu::String &sVal )
345{ 345{
346 hHeaders.insert( sKey, sVal ); 346 hHeaders.insert( sKey, sVal );
347} 347}
348 348
349void Bu::ProtocolHttp::Response::setContent( const Bu::FString &sCont ) 349void Bu::ProtocolHttp::Response::setContent( const Bu::String &sCont )
350{ 350{
351 sContent = sCont; 351 sContent = sCont;
352} 352}
diff --git a/src/protocolhttp.h b/src/protocolhttp.h
index 80a0db6..153a00d 100644
--- a/src/protocolhttp.h
+++ b/src/protocolhttp.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -13,7 +13,7 @@
13 13
14#include "bu/protocol.h" 14#include "bu/protocol.h"
15#include "bu/client.h" 15#include "bu/client.h"
16#include "bu/fstring.h" 16#include "bu/string.h"
17#include "bu/hash.h" 17#include "bu/hash.h"
18 18
19namespace Bu 19namespace Bu
@@ -32,7 +32,7 @@ namespace Bu
32 class ProtocolHttp : public Protocol 32 class ProtocolHttp : public Protocol
33 { 33 {
34 public: /* Types */ 34 public: /* Types */
35 typedef Bu::List<Bu::FString> TokenList; 35 typedef Bu::List<Bu::String> TokenList;
36 36
37 public: /* Interface */ 37 public: /* Interface */
38 ProtocolHttp(); 38 ProtocolHttp();
@@ -42,25 +42,25 @@ namespace Bu
42 virtual void onNewData( Bu::Client *pClient ); 42 virtual void onNewData( Bu::Client *pClient );
43 43
44 virtual void onRequest( 44 virtual void onRequest(
45 const Bu::FString &sMethod, const Bu::FString &sPath )=0; 45 const Bu::String &sMethod, const Bu::String &sPath )=0;
46 46
47 class Response 47 class Response
48 { 48 {
49 friend class Bu::ProtocolHttp; 49 friend class Bu::ProtocolHttp;
50 public: 50 public:
51 Response( int iCode ); 51 Response( int iCode );
52 Response( int iCode, const Bu::FString &sReason ); 52 Response( int iCode, const Bu::String &sReason );
53 virtual ~Response(); 53 virtual ~Response();
54 54
55 void setHeader( const Bu::FString &sKey, const Bu::FString &sVal ); 55 void setHeader( const Bu::String &sKey, const Bu::String &sVal );
56 void setContent( const Bu::FString &sCont ); 56 void setContent( const Bu::String &sCont );
57 57
58 private: 58 private:
59 int iCode; 59 int iCode;
60 Bu::FString sReason; 60 Bu::String sReason;
61 typedef Bu::Hash<Bu::FString,Bu::FString> StringHash; 61 typedef Bu::Hash<Bu::String,Bu::String> StringHash;
62 StringHash hHeaders; 62 StringHash hHeaders;
63 Bu::FString sContent; 63 Bu::String sContent;
64 }; 64 };
65 65
66 void sendResponse( const Response &rRes ); 66 void sendResponse( const Response &rRes );
@@ -83,7 +83,7 @@ namespace Bu
83 * processed, false if the end-of-line has not been reached, and more 83 * processed, false if the end-of-line has not been reached, and more
84 * data needs to be read before this operation can continue. 84 * data needs to be read before this operation can continue.
85 */ 85 */
86 TokenType getToken( Bu::FString &line ); 86 TokenType getToken( Bu::String &line );
87 bool isWS( char buf ); 87 bool isWS( char buf );
88 bool isSeperator( char buf ); 88 bool isSeperator( char buf );
89 89
@@ -96,8 +96,8 @@ namespace Bu
96 96
97 int iState; 97 int iState;
98 98
99 Bu::FString sMethod; 99 Bu::String sMethod;
100 Bu::FString sPath; 100 Bu::String sPath;
101 int iMajor; 101 int iMajor;
102 int iMinor; 102 int iMinor;
103 }; 103 };
diff --git a/src/protocoltelnet.cpp b/src/protocoltelnet.cpp
index 362b1cc..7e37cca 100644
--- a/src/protocoltelnet.cpp
+++ b/src/protocoltelnet.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -273,7 +273,7 @@ bool Bu::ProtocolTelnet::isCanonical()
273 return bCanonical; 273 return bCanonical;
274} 274}
275 275
276void Bu::ProtocolTelnet::write( const Bu::FString &sData ) 276void Bu::ProtocolTelnet::write( const Bu::String &sData )
277{ 277{
278 write( sData.getStr(), sData.getSize() ); 278 write( sData.getStr(), sData.getSize() );
279} 279}
diff --git a/src/protocoltelnet.h b/src/protocoltelnet.h
index 253be79..74d6478 100644
--- a/src/protocoltelnet.h
+++ b/src/protocoltelnet.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -10,7 +10,7 @@
10 10
11#include "bu/protocol.h" 11#include "bu/protocol.h"
12#include "bu/hash.h" 12#include "bu/hash.h"
13#include "bu/fstring.h" 13#include "bu/string.h"
14 14
15// #define __TELNET_DEBUG 15// #define __TELNET_DEBUG
16 16
@@ -88,7 +88,7 @@ namespace Bu
88 * the line or not, the data will be cleared from the buffer when this 88 * the line or not, the data will be cleared from the buffer when this
89 * function returns, any changes made to the buffer will be destroyed. 89 * function returns, any changes made to the buffer will be destroyed.
90 */ 90 */
91 virtual void gotLine( Bu::FString & /*sLine*/ ){}; 91 virtual void gotLine( Bu::String & /*sLine*/ ){};
92 92
93 /** 93 /**
94 * Override this function to be notified of any new data that comes in 94 * Override this function to be notified of any new data that comes in
@@ -98,7 +98,7 @@ namespace Bu
98 * child class in this function, the buffer will never be cleared unless 98 * child class in this function, the buffer will never be cleared unless
99 * it happens in this function's override. 99 * it happens in this function's override.
100 */ 100 */
101 virtual void gotData( Bu::FString & /*sData*/ ){}; 101 virtual void gotData( Bu::String & /*sData*/ ){};
102 102
103 /** 103 /**
104 * Using this function to enable or disable canonical mode only affects 104 * Using this function to enable or disable canonical mode only affects
@@ -117,11 +117,11 @@ namespace Bu
117 void setCanonical( bool bCon=true ); 117 void setCanonical( bool bCon=true );
118 bool isCanonical(); 118 bool isCanonical();
119 119
120 void write( const Bu::FString &sData ); 120 void write( const Bu::String &sData );
121 void write( const char *pData, int iSize ); 121 void write( const char *pData, int iSize );
122 void write( char cData ); 122 void write( char cData );
123 123
124 const Bu::FString &getBuffer() { return sDataBuf; } 124 const Bu::String &getBuffer() { return sDataBuf; }
125 125
126 public: 126 public:
127 /** 127 /**
@@ -138,7 +138,7 @@ namespace Bu
138 * sSubBuf, it will be cleared as soon as this function returns anyway. 138 * sSubBuf, it will be cleared as soon as this function returns anyway.
139 */ 139 */
140 virtual void onSubUnknown( char /*cSubOpt*/, 140 virtual void onSubUnknown( char /*cSubOpt*/,
141 Bu::FString & /*sSubBuf*/ ){}; 141 Bu::String & /*sSubBuf*/ ){};
142 142
143 private: 143 private:
144 /** 144 /**
@@ -208,8 +208,8 @@ namespace Bu
208 private: 208 private:
209 Client *pClient; 209 Client *pClient;
210 210
211 Bu::FString sDataBuf; /**< Buffer for regular line data. */ 211 Bu::String sDataBuf; /**< Buffer for regular line data. */
212 Bu::FString sSubBuf; /**< Buffer for subnegotiation data. */ 212 Bu::String sSubBuf; /**< Buffer for subnegotiation data. */
213 char cSubOpt; /**< Which suboption are we processing. */ 213 char cSubOpt; /**< Which suboption are we processing. */
214 214
215 bool bCanonical; /**< Are we canonicalizing incoming data? */ 215 bool bCanonical; /**< Are we canonicalizing incoming data? */
diff --git a/src/queue.cpp b/src/queue.cpp
index c6486eb..9d6edac 100644
--- a/src/queue.cpp
+++ b/src/queue.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/queue.h b/src/queue.h
index bfb07e4..e5d9b5f 100644
--- a/src/queue.h
+++ b/src/queue.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/queuebuf.cpp b/src/queuebuf.cpp
index e8eb2ed..69abf4b 100644
--- a/src/queuebuf.cpp
+++ b/src/queuebuf.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -37,7 +37,7 @@ void Bu::QueueBuf::close()
37 iReadOffset = iWriteOffset = iTotalSize = 0; 37 iReadOffset = iWriteOffset = iTotalSize = 0;
38} 38}
39 39
40size_t Bu::QueueBuf::read( void *pRawBuf, size_t nBytes ) 40Bu::size Bu::QueueBuf::read( void *pRawBuf, Bu::size nBytes )
41{ 41{
42 if( nBytes <= 0 ) 42 if( nBytes <= 0 )
43 return 0; 43 return 0;
@@ -45,7 +45,7 @@ size_t Bu::QueueBuf::read( void *pRawBuf, size_t nBytes )
45 if( lBlocks.isEmpty() ) 45 if( lBlocks.isEmpty() )
46 return 0; 46 return 0;
47 47
48 size_t iLeft = nBytes; 48 Bu::size iLeft = nBytes;
49 char *pBuf = (char *)pRawBuf; 49 char *pBuf = (char *)pRawBuf;
50 50
51 while( iLeft > 0 && iTotalSize > 0 ) 51 while( iLeft > 0 && iTotalSize > 0 )
@@ -60,7 +60,7 @@ size_t Bu::QueueBuf::read( void *pRawBuf, size_t nBytes )
60 iReadOffset = 0; 60 iReadOffset = 0;
61 } 61 }
62 char *pBlock = lBlocks.first(); 62 char *pBlock = lBlocks.first();
63 size_t iCopy = iBlockSize-iReadOffset; 63 Bu::size iCopy = iBlockSize-iReadOffset;
64 if( iLeft < iCopy ) 64 if( iLeft < iCopy )
65 iCopy = iLeft; 65 iCopy = iLeft;
66 if( iTotalSize < iCopy ) 66 if( iTotalSize < iCopy )
@@ -76,12 +76,12 @@ size_t Bu::QueueBuf::read( void *pRawBuf, size_t nBytes )
76 return nBytes - iLeft; 76 return nBytes - iLeft;
77} 77}
78 78
79size_t Bu::QueueBuf::peek( void *pBuf, size_t nBytes ) 79Bu::size Bu::QueueBuf::peek( void *pBuf, Bu::size nBytes )
80{ 80{
81 return peek( pBuf, nBytes, 0 ); 81 return peek( pBuf, nBytes, 0 );
82} 82}
83 83
84size_t Bu::QueueBuf::peek( void *pRawBuf, size_t nBytes, size_t nSkip ) 84Bu::size Bu::QueueBuf::peek( void *pRawBuf, Bu::size nBytes, Bu::size nSkip )
85{ 85{
86 if( nBytes <= 0 ) 86 if( nBytes <= 0 )
87 return 0; 87 return 0;
@@ -89,11 +89,11 @@ size_t Bu::QueueBuf::peek( void *pRawBuf, size_t nBytes, size_t nSkip )
89 if( lBlocks.isEmpty() ) 89 if( lBlocks.isEmpty() )
90 return 0; 90 return 0;
91 91
92 size_t iLeft = nBytes; 92 Bu::size iLeft = nBytes;
93 char *pBuf = (char *)pRawBuf; 93 char *pBuf = (char *)pRawBuf;
94 94
95 int iTmpReadOffset = iReadOffset + nSkip; 95 int iTmpReadOffset = iReadOffset + nSkip;
96 size_t iTmpRemSize = iTotalSize; 96 Bu::size iTmpRemSize = iTotalSize;
97 BlockList::iterator iBlock = lBlocks.begin(); 97 BlockList::iterator iBlock = lBlocks.begin();
98 while( iTmpReadOffset > iBlockSize ) 98 while( iTmpReadOffset > iBlockSize )
99 { 99 {
@@ -112,7 +112,7 @@ size_t Bu::QueueBuf::peek( void *pRawBuf, size_t nBytes, size_t nSkip )
112 iTmpReadOffset = 0; 112 iTmpReadOffset = 0;
113 } 113 }
114 char *pBlock = *iBlock; 114 char *pBlock = *iBlock;
115 size_t iCopy = iBlockSize-iTmpReadOffset; 115 Bu::size iCopy = iBlockSize-iTmpReadOffset;
116 if( iLeft < iCopy ) 116 if( iLeft < iCopy )
117 iCopy = iLeft; 117 iCopy = iLeft;
118 if( iTmpRemSize < iCopy ) 118 if( iTmpRemSize < iCopy )
@@ -129,7 +129,7 @@ size_t Bu::QueueBuf::peek( void *pRawBuf, size_t nBytes, size_t nSkip )
129 return nBytes - iLeft; 129 return nBytes - iLeft;
130} 130}
131 131
132size_t Bu::QueueBuf::write( const void *pRawBuf, size_t nBytes ) 132Bu::size Bu::QueueBuf::write( const void *pRawBuf, Bu::size nBytes )
133{ 133{
134 if( nBytes <= 0 ) 134 if( nBytes <= 0 )
135 return 0; 135 return 0;
@@ -139,7 +139,7 @@ size_t Bu::QueueBuf::write( const void *pRawBuf, size_t nBytes )
139 addBlock(); 139 addBlock();
140 iWriteOffset = 0; 140 iWriteOffset = 0;
141 } 141 }
142 size_t iLeft = nBytes; 142 Bu::size iLeft = nBytes;
143 const char *pBuf = (const char *)pRawBuf; 143 const char *pBuf = (const char *)pRawBuf;
144 144
145 while( iLeft > 0 ) 145 while( iLeft > 0 )
@@ -150,7 +150,7 @@ size_t Bu::QueueBuf::write( const void *pRawBuf, size_t nBytes )
150 iWriteOffset = 0; 150 iWriteOffset = 0;
151 } 151 }
152 char *pBlock = lBlocks.last(); 152 char *pBlock = lBlocks.last();
153 size_t iCopy = iBlockSize-iWriteOffset; 153 Bu::size iCopy = iBlockSize-iWriteOffset;
154 if( iLeft < iCopy ) 154 if( iLeft < iCopy )
155 iCopy = iLeft; 155 iCopy = iLeft;
156 memcpy( pBlock+iWriteOffset, pBuf, iCopy ); 156 memcpy( pBlock+iWriteOffset, pBuf, iCopy );
@@ -165,17 +165,17 @@ size_t Bu::QueueBuf::write( const void *pRawBuf, size_t nBytes )
165 return nBytes; 165 return nBytes;
166} 166}
167 167
168long Bu::QueueBuf::tell() 168Bu::size Bu::QueueBuf::tell()
169{ 169{
170 return -1; 170 return -1;
171} 171}
172 172
173void Bu::QueueBuf::seek( long iAmnt ) 173void Bu::QueueBuf::seek( Bu::size iAmnt )
174{ 174{
175 if( iAmnt <= 0 ) 175 if( iAmnt <= 0 )
176 return; 176 return;
177 177
178 if( (size_t)iAmnt >= iTotalSize ) 178 if( (Bu::size)iAmnt >= iTotalSize )
179 { 179 {
180// sio << "seek: clear all data (" << iAmnt << ">=" << iTotalSize 180// sio << "seek: clear all data (" << iAmnt << ">=" << iTotalSize
181// << ")." << sio.nl; 181// << ")." << sio.nl;
@@ -193,11 +193,11 @@ void Bu::QueueBuf::seek( long iAmnt )
193 } 193 }
194} 194}
195 195
196void Bu::QueueBuf::setPos( long ) 196void Bu::QueueBuf::setPos( Bu::size )
197{ 197{
198} 198}
199 199
200void Bu::QueueBuf::setPosEnd( long ) 200void Bu::QueueBuf::setPosEnd( Bu::size )
201{ 201{
202} 202}
203 203
@@ -249,10 +249,25 @@ void Bu::QueueBuf::setBlocking( bool )
249{ 249{
250} 250}
251 251
252void Bu::QueueBuf::setSize( long ) 252void Bu::QueueBuf::setSize( Bu::size )
253{ 253{
254} 254}
255 255
256Bu::size Bu::QueueBuf::getSize() const
257{
258 return iTotalSize;
259}
260
261Bu::size Bu::QueueBuf::getBlockSize() const
262{
263 return iBlockSize;
264}
265
266Bu::String Bu::QueueBuf::getLocation() const
267{
268 return "";
269}
270
256void Bu::QueueBuf::addBlock() 271void Bu::QueueBuf::addBlock()
257{ 272{
258 lBlocks.append( new char[iBlockSize] ); 273 lBlocks.append( new char[iBlockSize] );
diff --git a/src/queuebuf.h b/src/queuebuf.h
index 395c6ba..84b50e1 100644
--- a/src/queuebuf.h
+++ b/src/queuebuf.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -27,14 +27,14 @@ namespace Bu
27 int getSize(); 27 int getSize();
28 28
29 virtual void close(); 29 virtual void close();
30 virtual size_t read( void *pBuf, size_t nBytes ); 30 virtual Bu::size read( void *pBuf, Bu::size nBytes );
31 virtual size_t peek( void *pBuf, size_t nBytes ); 31 virtual Bu::size peek( void *pBuf, Bu::size nBytes );
32 virtual size_t peek( void *pBuf, size_t nBytes, size_t nSkip ); 32 virtual Bu::size peek( void *pBuf, Bu::size nBytes, Bu::size nSkip );
33 virtual size_t write( const void *pBuf, size_t nBytes ); 33 virtual Bu::size write( const void *pBuf, Bu::size nBytes );
34 virtual long tell(); 34 virtual Bu::size tell();
35 virtual void seek( long offset ); 35 virtual void seek( Bu::size offset );
36 virtual void setPos( long pos ); 36 virtual void setPos( Bu::size pos );
37 virtual void setPosEnd( long pos ); 37 virtual void setPosEnd( Bu::size pos );
38 virtual bool isEos(); 38 virtual bool isEos();
39 virtual bool isOpen(); 39 virtual bool isOpen();
40 virtual void flush(); 40 virtual void flush();
@@ -45,7 +45,11 @@ namespace Bu
45 virtual bool isSeekable(); 45 virtual bool isSeekable();
46 virtual bool isBlocking(); 46 virtual bool isBlocking();
47 virtual void setBlocking( bool bBlocking=true ); 47 virtual void setBlocking( bool bBlocking=true );
48 virtual void setSize( long iSize ); 48 virtual void setSize( Bu::size iSize );
49
50 virtual size getSize() const;
51 virtual size getBlockSize() const;
52 virtual Bu::String getLocation() const;
49 53
50 private: 54 private:
51 void addBlock(); 55 void addBlock();
@@ -55,7 +59,7 @@ namespace Bu
55 int iBlockSize; 59 int iBlockSize;
56 int iReadOffset; 60 int iReadOffset;
57 int iWriteOffset; 61 int iWriteOffset;
58 size_t iTotalSize; 62 Bu::size iTotalSize;
59 typedef Bu::List<char *> BlockList; 63 typedef Bu::List<char *> BlockList;
60 BlockList lBlocks; 64 BlockList lBlocks;
61 }; 65 };
diff --git a/src/regex.cpp b/src/regex.cpp
index e634639..af0d364 100644
--- a/src/regex.cpp
+++ b/src/regex.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -19,7 +19,7 @@ Bu::RegEx::RegEx() :
19{ 19{
20} 20}
21 21
22Bu::RegEx::RegEx( const Bu::FString &sSrc ) : 22Bu::RegEx::RegEx( const Bu::String &sSrc ) :
23 pRegEx( NULL ), 23 pRegEx( NULL ),
24 bCompiled( false ), 24 bCompiled( false ),
25 paSubStr( NULL ) 25 paSubStr( NULL )
@@ -37,7 +37,7 @@ Bu::RegEx::~RegEx()
37 } 37 }
38} 38}
39 39
40void Bu::RegEx::compile( const Bu::FString &sSrc ) 40void Bu::RegEx::compile( const Bu::String &sSrc )
41{ 41{
42 if( bCompiled ) 42 if( bCompiled )
43 { 43 {
@@ -54,7 +54,7 @@ void Bu::RegEx::compile( const Bu::FString &sSrc )
54 size_t length = regerror( nErr, re, NULL, 0 ); 54 size_t length = regerror( nErr, re, NULL, 0 );
55 char *buffer = new char[length]; 55 char *buffer = new char[length];
56 (void) regerror( nErr, re, buffer, length ); 56 (void) regerror( nErr, re, buffer, length );
57 Bu::FString s( buffer ); 57 Bu::String s( buffer );
58 delete[] buffer; 58 delete[] buffer;
59 throw "???"; // BuildException( s.getStr() ); 59 throw "???"; // BuildException( s.getStr() );
60 } 60 }
@@ -70,7 +70,7 @@ int Bu::RegEx::getNumSubStrings()
70 return nSubStr; 70 return nSubStr;
71} 71}
72 72
73bool Bu::RegEx::execute( const Bu::FString &sSrc ) 73bool Bu::RegEx::execute( const Bu::String &sSrc )
74{ 74{
75 sTest = sSrc; 75 sTest = sSrc;
76 if( regexec( re, sSrc.getStr(), nSubStr, aSubStr, 0 ) ) 76 if( regexec( re, sSrc.getStr(), nSubStr, aSubStr, 0 ) )
@@ -84,10 +84,10 @@ void Bu::RegEx::getSubStringRange( int nIndex, int &iStart, int &iEnd )
84 iEnd = aSubStr[nIndex].rm_eo; 84 iEnd = aSubStr[nIndex].rm_eo;
85} 85}
86 86
87Bu::FString Bu::RegEx::getSubString( int nIndex ) 87Bu::String Bu::RegEx::getSubString( int nIndex )
88{ 88{
89// regmatch_t *Subs = aSubStr; 89// regmatch_t *Subs = aSubStr;
90 return Bu::FString( 90 return Bu::String(
91 sTest.getStr()+aSubStr[nIndex].rm_so, 91 sTest.getStr()+aSubStr[nIndex].rm_so,
92 aSubStr[nIndex].rm_eo - aSubStr[nIndex].rm_so 92 aSubStr[nIndex].rm_eo - aSubStr[nIndex].rm_so
93 ); 93 );
diff --git a/src/regex.h b/src/regex.h
index 6aac8e3..f0aa5d5 100644
--- a/src/regex.h
+++ b/src/regex.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -8,7 +8,7 @@
8#ifndef BU_REG_EX_H 8#ifndef BU_REG_EX_H
9#define BU_REG_EX_H 9#define BU_REG_EX_H
10 10
11#include "bu/fstring.h" 11#include "bu/string.h"
12 12
13#include <stdint.h> 13#include <stdint.h>
14 14
@@ -18,22 +18,22 @@ namespace Bu
18 { 18 {
19 public: 19 public:
20 RegEx(); 20 RegEx();
21 RegEx( const Bu::FString &sSrc ); 21 RegEx( const Bu::String &sSrc );
22 virtual ~RegEx(); 22 virtual ~RegEx();
23 23
24 void compile( const Bu::FString &sSrc ); 24 void compile( const Bu::String &sSrc );
25 int getNumSubStrings(); 25 int getNumSubStrings();
26 bool execute( const Bu::FString &sSrc ); 26 bool execute( const Bu::String &sSrc );
27 void getSubStringRange( int nIndex, int &iStart, int &iEnd ); 27 void getSubStringRange( int nIndex, int &iStart, int &iEnd );
28 Bu::FString getSubString( int nIndex ); 28 Bu::String getSubString( int nIndex );
29 const Bu::FString &getSource() 29 const Bu::String &getSource()
30 { 30 {
31 return sSrc; 31 return sSrc;
32 } 32 }
33 33
34 private: 34 private:
35 Bu::FString sSrc; 35 Bu::String sSrc;
36 Bu::FString sTest; 36 Bu::String sTest;
37 void *pRegEx; 37 void *pRegEx;
38 bool bCompiled; 38 bool bCompiled;
39 int nSubStr; 39 int nSubStr;
diff --git a/src/ringbuffer.cpp b/src/ringbuffer.cpp
index 1dc603c..99b1b1c 100644
--- a/src/ringbuffer.cpp
+++ b/src/ringbuffer.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/ringbuffer.h b/src/ringbuffer.h
index f4fd58c..f43773d 100644
--- a/src/ringbuffer.h
+++ b/src/ringbuffer.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/server.cpp b/src/server.cpp
index e701a69..1972a3f 100644
--- a/src/server.cpp
+++ b/src/server.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -34,7 +34,7 @@ void Bu::Server::addPort( int nPort, int nPoolSize )
34 hServers.insert( nSocket, s ); 34 hServers.insert( nSocket, s );
35} 35}
36 36
37void Bu::Server::addPort( const FString &sAddr, int nPort, int nPoolSize ) 37void Bu::Server::addPort( const String &sAddr, int nPort, int nPoolSize )
38{ 38{
39 TcpServerSocket *s = new TcpServerSocket( sAddr, nPort, nPoolSize ); 39 TcpServerSocket *s = new TcpServerSocket( sAddr, nPort, nPoolSize );
40 int nSocket = s->getSocket(); 40 int nSocket = s->getSocket();
@@ -153,7 +153,7 @@ Bu::Server::SrvClientLink::~SrvClientLink()
153{ 153{
154} 154}
155 155
156void Bu::Server::SrvClientLink::sendMessage( const Bu::FString &sMsg ) 156void Bu::Server::SrvClientLink::sendMessage( const Bu::String &sMsg )
157{ 157{
158 pClient->onMessage( sMsg ); 158 pClient->onMessage( sMsg );
159} 159}
diff --git a/src/server.h b/src/server.h
index d6726fd..c59543a 100644
--- a/src/server.h
+++ b/src/server.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -14,7 +14,7 @@
14 #include <sys/select.h> 14 #include <sys/select.h>
15#endif 15#endif
16 16
17#include "bu/fstring.h" 17#include "bu/string.h"
18#include "bu/list.h" 18#include "bu/list.h"
19 19
20#include "bu/clientlink.h" 20#include "bu/clientlink.h"
@@ -56,7 +56,7 @@ namespace Bu
56 virtual ~Server(); 56 virtual ~Server();
57 57
58 void addPort( int nPort, int nPoolSize=40 ); 58 void addPort( int nPort, int nPoolSize=40 );
59 void addPort( const FString &sAddr, int nPort, int nPoolSize=40 ); 59 void addPort( const String &sAddr, int nPort, int nPoolSize=40 );
60 60
61 virtual void scan(); 61 virtual void scan();
62 void setTimeout( int nTimeoutSec, int nTimeoutUSec=0 ); 62 void setTimeout( int nTimeoutSec, int nTimeoutUSec=0 );
@@ -79,7 +79,7 @@ namespace Bu
79 SrvClientLink( Bu::Client *pClient ); 79 SrvClientLink( Bu::Client *pClient );
80 virtual ~SrvClientLink(); 80 virtual ~SrvClientLink();
81 81
82 virtual void sendMessage( const Bu::FString &sMsg ); 82 virtual void sendMessage( const Bu::String &sMsg );
83 83
84 private: 84 private:
85 Bu::Client *pClient; 85 Bu::Client *pClient;
diff --git a/src/set.cpp b/src/set.cpp
index f9937ef..e4e2849 100644
--- a/src/set.cpp
+++ b/src/set.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/set.h b/src/set.h
index 047ff7f..ac8dbd5 100644
--- a/src/set.h
+++ b/src/set.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/sha1.cpp b/src/sha1.cpp
index a206a78..bfe4c5a 100644
--- a/src/sha1.cpp
+++ b/src/sha1.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -38,7 +38,7 @@ void Bu::Sha1::reset()
38 uTotalBytes = 0; 38 uTotalBytes = 0;
39} 39}
40 40
41void Bu::Sha1::setSalt( const Bu::FString & /*sSalt*/ ) 41void Bu::Sha1::setSalt( const Bu::String & /*sSalt*/ )
42{ 42{
43} 43}
44 44
@@ -73,7 +73,7 @@ void Bu::Sha1::addData( const void *sDataRaw, int iSize )
73 } 73 }
74} 74}
75 75
76Bu::FString Bu::Sha1::getResult() 76Bu::String Bu::Sha1::getResult()
77{ 77{
78 // save the message size 78 // save the message size
79 uint32_t totalBitsL = uTotalBytes << 3; 79 uint32_t totalBitsL = uTotalBytes << 3;
@@ -102,7 +102,7 @@ Bu::FString Bu::Sha1::getResult()
102 // finish the final block 102 // finish the final block
103 addData( (char*)footer, iNeededZeros + 8 ); 103 addData( (char*)footer, iNeededZeros + 8 );
104 104
105 Bu::FString sRet( 20 ); 105 Bu::String sRet( 20 );
106 106
107 unsigned char *digest = (unsigned char *)sRet.getStr(); 107 unsigned char *digest = (unsigned char *)sRet.getStr();
108 108
diff --git a/src/sha1.h b/src/sha1.h
index ea8c256..579d990 100644
--- a/src/sha1.h
+++ b/src/sha1.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -26,10 +26,10 @@ namespace Bu
26 ~Sha1(); 26 ~Sha1();
27 27
28 virtual void reset(); 28 virtual void reset();
29 virtual void setSalt( const Bu::FString &sSalt ); 29 virtual void setSalt( const Bu::String &sSalt );
30 virtual void addData( const void *sData, int iSize ); 30 virtual void addData( const void *sData, int iSize );
31 using CryptoHash::addData; 31 using CryptoHash::addData;
32 virtual FString getResult(); 32 virtual String getResult();
33 virtual void writeResult( Stream &sOut ); 33 virtual void writeResult( Stream &sOut );
34 34
35 void update( const char* data, int num ); 35 void update( const char* data, int num );
diff --git a/src/sharedcore.cpp b/src/sharedcore.cpp
index 2c18872..75f92eb 100644
--- a/src/sharedcore.cpp
+++ b/src/sharedcore.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/sharedcore.h b/src/sharedcore.h
index 1887ca2..bf9395c 100644
--- a/src/sharedcore.h
+++ b/src/sharedcore.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/signals.cpp b/src/signals.cpp
index 7ba02c5..ffbc7ba 100644
--- a/src/signals.cpp
+++ b/src/signals.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/signals.h b/src/signals.h
index 5bdc53d..39f15ec 100644
--- a/src/signals.h
+++ b/src/signals.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/singleton.h b/src/singleton.h
index 5bc7abe..13db01b 100644
--- a/src/singleton.h
+++ b/src/singleton.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/sio.cpp b/src/sio.cpp
index 4567297..0fe60d9 100644
--- a/src/sio.cpp
+++ b/src/sio.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/sio.h b/src/sio.h
index 05e6982..ad3000a 100644
--- a/src/sio.h
+++ b/src/sio.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/sptr.cpp b/src/sptr.cpp
index 5761825..ea21e3b 100644
--- a/src/sptr.cpp
+++ b/src/sptr.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/sptr.h b/src/sptr.h
index b497598..4e581a9 100644
--- a/src/sptr.h
+++ b/src/sptr.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/stack.cpp b/src/stack.cpp
index 5d2a2c6..73352d3 100644
--- a/src/stack.cpp
+++ b/src/stack.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/stack.h b/src/stack.h
index 11ad057..a6ea1b9 100644
--- a/src/stack.h
+++ b/src/stack.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/stdstream.cpp b/src/stdstream.cpp
index 32ddec4..b1d5d61 100644
--- a/src/stdstream.cpp
+++ b/src/stdstream.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -20,30 +20,30 @@ void Bu::StdStream::close()
20{ 20{
21} 21}
22 22
23size_t Bu::StdStream::read( void *pBuf, size_t nBytes ) 23Bu::size Bu::StdStream::read( void *pBuf, Bu::size nBytes )
24{ 24{
25 return fread( pBuf, 1, nBytes, stdin ); 25 return fread( pBuf, 1, nBytes, stdin );
26} 26}
27 27
28size_t Bu::StdStream::write( const void *pBuf, size_t nBytes ) 28Bu::size Bu::StdStream::write( const void *pBuf, Bu::size nBytes )
29{ 29{
30 return fwrite( pBuf, 1, nBytes, stdout ); 30 return fwrite( pBuf, 1, nBytes, stdout );
31} 31}
32 32
33long Bu::StdStream::tell() 33Bu::size Bu::StdStream::tell()
34{ 34{
35 return 0; 35 return 0;
36} 36}
37 37
38void Bu::StdStream::seek( long ) 38void Bu::StdStream::seek( Bu::size )
39{ 39{
40} 40}
41 41
42void Bu::StdStream::setPos( long ) 42void Bu::StdStream::setPos( Bu::size )
43{ 43{
44} 44}
45 45
46void Bu::StdStream::setPosEnd( long ) 46void Bu::StdStream::setPosEnd( Bu::size )
47{ 47{
48} 48}
49 49
@@ -96,7 +96,22 @@ void Bu::StdStream::setBlocking( bool )
96{ 96{
97} 97}
98 98
99void Bu::StdStream::setSize( long ) 99void Bu::StdStream::setSize( Bu::size )
100{ 100{
101} 101}
102 102
103Bu::size Bu::StdStream::getSize() const
104{
105 return 0;
106}
107
108Bu::size Bu::StdStream::getBlockSize() const
109{
110 return 0;
111}
112
113Bu::String Bu::StdStream::getLocation() const
114{
115 return "";
116}
117
diff --git a/src/stdstream.h b/src/stdstream.h
index 4efeece..ff6c774 100644
--- a/src/stdstream.h
+++ b/src/stdstream.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -23,13 +23,13 @@ namespace Bu
23 virtual ~StdStream(); 23 virtual ~StdStream();
24 24
25 virtual void close(); 25 virtual void close();
26 virtual size_t read( void *pBuf, size_t nBytes ); 26 virtual size read( void *pBuf, size nBytes );
27 virtual size_t write( const void *pBuf, size_t nBytes ); 27 virtual size write( const void *pBuf, size nBytes );
28 using Stream::write; 28 using Stream::write;
29 virtual long tell(); 29 virtual size tell();
30 virtual void seek( long offset ); 30 virtual void seek( size offset );
31 virtual void setPos( long pos ); 31 virtual void setPos( size pos );
32 virtual void setPosEnd( long pos ); 32 virtual void setPosEnd( size pos );
33 virtual bool isEos(); 33 virtual bool isEos();
34 virtual bool isOpen(); 34 virtual bool isOpen();
35 virtual void flush(); 35 virtual void flush();
@@ -40,7 +40,10 @@ namespace Bu
40 virtual bool isSeekable(); 40 virtual bool isSeekable();
41 virtual bool isBlocking(); 41 virtual bool isBlocking();
42 virtual void setBlocking( bool bBlocking=true ); 42 virtual void setBlocking( bool bBlocking=true );
43 virtual void setSize( long iSize ); 43 virtual void setSize( size iSize );
44 virtual size getSize() const;
45 virtual size getBlockSize() const;
46 virtual Bu::String getLocation() const;
44 }; 47 };
45} 48}
46 49
diff --git a/src/stream.cpp b/src/stream.cpp
index 0e05cad..028166e 100644
--- a/src/stream.cpp
+++ b/src/stream.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -15,9 +15,9 @@ Bu::Stream::~Stream()
15{ 15{
16} 16}
17 17
18Bu::FString Bu::Stream::readLine() 18Bu::String Bu::Stream::readLine()
19{ 19{
20 Bu::FString sRet; 20 Bu::String sRet;
21 21
22 for(;;) 22 for(;;)
23 { 23 {
@@ -30,7 +30,7 @@ Bu::FString Bu::Stream::readLine()
30 } 30 }
31} 31}
32 32
33size_t Bu::Stream::write( const Bu::FString &sBuf ) 33Bu::size Bu::Stream::write( const Bu::String &sBuf )
34{ 34{
35 return write( sBuf.getStr(), sBuf.getSize() ); 35 return write( sBuf.getStr(), sBuf.getSize() );
36} 36}
diff --git a/src/stream.h b/src/stream.h
index 0ea5560..fb70f21 100644
--- a/src/stream.h
+++ b/src/stream.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -8,10 +8,12 @@
8#ifndef BU_STREAM_H 8#ifndef BU_STREAM_H
9#define BU_STREAM_H 9#define BU_STREAM_H
10 10
11#include "bu/config.h"
12
11#include <stdint.h> 13#include <stdint.h>
12#include <stdio.h> 14#include <stdio.h>
13 15
14#include "bu/fstring.h" 16#include "bu/string.h"
15 17
16namespace Bu 18namespace Bu
17{ 19{
@@ -43,7 +45,7 @@ namespace Bu
43 *@param nBytes (size_t) Max data to read. 45 *@param nBytes (size_t) Max data to read.
44 *@returns (size_t) Amount of data read. 46 *@returns (size_t) Amount of data read.
45 */ 47 */
46 virtual size_t read( void *pBuf, size_t nBytes ) = 0; 48 virtual size read( void *pBuf, size iBytes ) = 0;
47 49
48 /** 50 /**
49 * Attempts to read a complete line from the stream. This will stop 51 * Attempts to read a complete line from the stream. This will stop
@@ -51,7 +53,7 @@ namespace Bu
51 * data in a non-blocking stream. 53 * data in a non-blocking stream.
52 *@returns The line read, not including newline character. 54 *@returns The line read, not including newline character.
53 */ 55 */
54 virtual Bu::FString readLine(); 56 virtual Bu::String readLine();
55 57
56 /** 58 /**
57 * Write data to the stream. 59 * Write data to the stream.
@@ -59,33 +61,33 @@ namespace Bu
59 *@param nBytes (size_t) Amount of data to write from pBuf. 61 *@param nBytes (size_t) Amount of data to write from pBuf.
60 *@returns (size_t) Amount of data actually written. 62 *@returns (size_t) Amount of data actually written.
61 */ 63 */
62 virtual size_t write( const void *pBuf, size_t nBytes ) = 0; 64 virtual size write( const void *pBuf, size iBytes ) = 0;
63 65
64 virtual size_t write( const Bu::FString &sBuf ); 66 virtual size write( const Bu::String &sBuf );
65 67
66 /** 68 /**
67 * Get the current position in the stream. 69 * Get the current position in the stream.
68 *@returns (long) The current position in the stream. 70 *@returns (long) The current position in the stream.
69 */ 71 */
70 virtual long tell() = 0; 72 virtual size tell() = 0;
71 73
72 /** 74 /**
73 * Seek to a position in the stream relative to the current position. 75 * Seek to a position in the stream relative to the current position.
74 *@param offset (long) Offset from current position to seek to. 76 *@param offset (long) Offset from current position to seek to.
75 */ 77 */
76 virtual void seek( long offset ) = 0; 78 virtual void seek( size offset ) = 0;
77 79
78 /** 80 /**
79 * Set position in the stream relative to the start of the stream. 81 * Set position in the stream relative to the start of the stream.
80 *@param pos (long) The position. 82 *@param pos (long) The position.
81 */ 83 */
82 virtual void setPos( long pos ) = 0; 84 virtual void setPos( size pos ) = 0;
83 85
84 /** 86 /**
85 * Set position in the stream relative to the end of the stream. 87 * Set position in the stream relative to the end of the stream.
86 *@param pos (long) The position. 88 *@param pos (long) The position.
87 */ 89 */
88 virtual void setPosEnd( long pos ) = 0; 90 virtual void setPosEnd( size pos ) = 0;
89 91
90 /** 92 /**
91 * Are we at the end of the stream? 93 * Are we at the end of the stream?
@@ -158,10 +160,32 @@ namespace Bu
158 * removed from the end of the stream, but the content of the added 160 * removed from the end of the stream, but the content of the added
159 * data is undefined. 161 * data is undefined.
160 */ 162 */
161 virtual void setSize( long iSize ) = 0; 163 virtual void setSize( size iSize ) = 0;
164
165 /**
166 * Returns the size of the stream if the stream can have a size. For
167 * streams that do not (sockets, pipes, etc.) this should throw an
168 * unsupported exception.
169 */
170 virtual size getSize() const = 0;
162 171
163 public: // Filters 172 /**
173 * Returns the block-size of the stream, if it has one. This should
174 * throw an unsupported exception. In some cases the block size
175 * returned will not represent quite the same thing, for example,
176 * sockets will return their MTU, while files will return the
177 * filesystem's block size, and memory buffers will throw an exception.
178 */
179 virtual size getBlockSize() const = 0;
164 180
181 /**
182 * If possible, this returns a string that can be used to describe how
183 * to access the open stream. Not all streams support this, such as
184 * MemBuf, but for files it may give you a path to a file, for a socket
185 * it may give you an ip address, etc. If it isn't supported, an empty
186 * string may be returned.
187 */
188 virtual Bu::String getLocation() const = 0;
165 189
166 private: 190 private:
167 191
diff --git a/src/streamstack.cpp b/src/streamstack.cpp
index 011c721..d45306d 100644
--- a/src/streamstack.cpp
+++ b/src/streamstack.cpp
@@ -1,3 +1,10 @@
1/*
2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 *
4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE.
6 */
7
1#include "bu/streamstack.h" 8#include "bu/streamstack.h"
2 9
3Bu::StreamStack::StreamStack() 10Bu::StreamStack::StreamStack()
@@ -72,49 +79,49 @@ void Bu::StreamStack::close()
72 lFilts.first()->close(); 79 lFilts.first()->close();
73} 80}
74 81
75size_t Bu::StreamStack::read( void *pBuf, size_t nBytes ) 82Bu::size Bu::StreamStack::read( void *pBuf, Bu::size nBytes )
76{ 83{
77 checkStack(); 84 checkStack();
78 85
79 return lFilts.first()->read( pBuf, nBytes ); 86 return lFilts.first()->read( pBuf, nBytes );
80} 87}
81 88
82size_t Bu::StreamStack::write( const void *pBuf, size_t nBytes ) 89Bu::size Bu::StreamStack::write( const void *pBuf, Bu::size nBytes )
83{ 90{
84 checkStack(); 91 checkStack();
85 92
86 return lFilts.first()->write( pBuf, nBytes ); 93 return lFilts.first()->write( pBuf, nBytes );
87} 94}
88 95
89size_t Bu::StreamStack::write( const Bu::FString &sBuf ) 96Bu::size Bu::StreamStack::write( const Bu::String &sBuf )
90{ 97{
91 checkStack(); 98 checkStack();
92 99
93 return lFilts.first()->write( sBuf ); 100 return lFilts.first()->write( sBuf );
94} 101}
95 102
96long Bu::StreamStack::tell() 103Bu::size Bu::StreamStack::tell()
97{ 104{
98 checkStack(); 105 checkStack();
99 106
100 return lFilts.first()->tell(); 107 return lFilts.first()->tell();
101} 108}
102 109
103void Bu::StreamStack::seek( long offset ) 110void Bu::StreamStack::seek( Bu::size offset )
104{ 111{
105 checkStack(); 112 checkStack();
106 113
107 lFilts.first()->seek( offset ); 114 lFilts.first()->seek( offset );
108} 115}
109 116
110void Bu::StreamStack::setPos( long pos ) 117void Bu::StreamStack::setPos( Bu::size pos )
111{ 118{
112 checkStack(); 119 checkStack();
113 120
114 lFilts.first()->setPos( pos ); 121 lFilts.first()->setPos( pos );
115} 122}
116 123
117void Bu::StreamStack::setPosEnd( long pos ) 124void Bu::StreamStack::setPosEnd( Bu::size pos )
118{ 125{
119 checkStack(); 126 checkStack();
120 127
@@ -191,14 +198,35 @@ void Bu::StreamStack::setBlocking( bool bBlocking )
191 lFilts.first()->setBlocking( bBlocking ); 198 lFilts.first()->setBlocking( bBlocking );
192} 199}
193 200
194void Bu::StreamStack::setSize( long iSize ) 201void Bu::StreamStack::setSize( Bu::size iSize )
195{ 202{
196 checkStack(); 203 checkStack();
197 204
198 lFilts.first()->setSize( iSize ); 205 lFilts.first()->setSize( iSize );
199} 206}
200 207
201inline void Bu::StreamStack::checkStack() 208Bu::size Bu::StreamStack::getSize() const
209{
210 checkStack();
211
212 return lFilts.first()->getSize();
213}
214
215Bu::size Bu::StreamStack::getBlockSize() const
216{
217 checkStack();
218
219 return lFilts.first()->getBlockSize();
220}
221
222Bu::String Bu::StreamStack::getLocation() const
223{
224 checkStack();
225
226 return lFilts.first()->getLocation();
227}
228
229inline void Bu::StreamStack::checkStack() const
202{ 230{
203 if( lFilts.isEmpty() ) 231 if( lFilts.isEmpty() )
204 throw Bu::ExceptionBase("StreamStack is empty."); 232 throw Bu::ExceptionBase("StreamStack is empty.");
diff --git a/src/streamstack.h b/src/streamstack.h
index f40a760..846935b 100644
--- a/src/streamstack.h
+++ b/src/streamstack.h
@@ -1,3 +1,10 @@
1/*
2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 *
4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE.
6 */
7
1#ifndef BU_STREAM_STACK_H 8#ifndef BU_STREAM_STACK_H
2#define BU_STREAM_STACK_H 9#define BU_STREAM_STACK_H
3 10
@@ -103,14 +110,14 @@ namespace Bu
103 // 110 //
104 111
105 virtual void close(); 112 virtual void close();
106 virtual size_t read( void *pBuf, size_t nBytes ); 113 virtual Bu::size read( void *pBuf, Bu::size nBytes );
107 virtual size_t write( const void *pBuf, size_t nBytes ); 114 virtual Bu::size write( const void *pBuf, Bu::size nBytes );
108 115
109 virtual size_t write( const Bu::FString &sBuf ); 116 virtual Bu::size write( const Bu::String &sBuf );
110 virtual long tell(); 117 virtual Bu::size tell();
111 virtual void seek( long offset ); 118 virtual void seek( Bu::size offset );
112 virtual void setPos( long pos ); 119 virtual void setPos( Bu::size pos );
113 virtual void setPosEnd( long pos ); 120 virtual void setPosEnd( Bu::size pos );
114 virtual bool isEos(); 121 virtual bool isEos();
115 virtual bool isOpen(); 122 virtual bool isOpen();
116 virtual void flush(); 123 virtual void flush();
@@ -121,10 +128,13 @@ namespace Bu
121 virtual bool isSeekable(); 128 virtual bool isSeekable();
122 virtual bool isBlocking(); 129 virtual bool isBlocking();
123 virtual void setBlocking( bool bBlocking=true ); 130 virtual void setBlocking( bool bBlocking=true );
124 virtual void setSize( long iSize ); 131 virtual void setSize( Bu::size iSize );
132 virtual size getSize() const;
133 virtual size getBlockSize() const;
134 virtual Bu::String getLocation() const;
125 135
126 private: 136 private:
127 void checkStack(); 137 void checkStack() const;
128 138
129 private: 139 private:
130 FilterList lFilts; 140 FilterList lFilts;
diff --git a/src/fstring.cpp b/src/string.cpp
index a3e0cb1..538ac52 100644
--- a/src/fstring.cpp
+++ b/src/string.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -8,12 +8,12 @@
8#define BU_TRACE 8#define BU_TRACE
9#include "bu/trace.h" 9#include "bu/trace.h"
10 10
11#include "bu/fstring.h" 11#include "bu/string.h"
12#include "bu/hash.h" 12#include "bu/hash.h"
13 13
14template class Bu::FBasicString<char>; 14template class Bu::BasicString<char>;
15 15
16template<> uint32_t Bu::__calcHashCode<Bu::FString>( const Bu::FString &k ) 16template<> uint32_t Bu::__calcHashCode<Bu::String>( const Bu::String &k )
17{ 17{
18 long j, sz = k.getSize(); 18 long j, sz = k.getSize();
19 const char *s = k.getStr(); 19 const char *s = k.getStr();
@@ -27,18 +27,18 @@ template<> uint32_t Bu::__calcHashCode<Bu::FString>( const Bu::FString &k )
27 return nPos; 27 return nPos;
28} 28}
29 29
30template<> bool Bu::__cmpHashKeys<Bu::FString>( 30template<> bool Bu::__cmpHashKeys<Bu::String>(
31 const Bu::FString &a, const Bu::FString &b ) 31 const Bu::String &a, const Bu::String &b )
32{ 32{
33 return a == b; 33 return a == b;
34} 34}
35 35
36template<> void Bu::__tracer_format<Bu::FString>( const Bu::FString &v ) 36template<> void Bu::__tracer_format<Bu::String>( const Bu::String &v )
37{ 37{
38 printf("(%ld)\"%s\"", v.getSize(), v.getStr() ); 38 printf("(%ld)\"%s\"", v.getSize(), v.getStr() );
39} 39}
40 40
41bool &Bu::operator<<( bool &dst, const Bu::FString &sIn ) 41bool &Bu::operator<<( bool &dst, const Bu::String &sIn )
42{ 42{
43 if( sIn == "true" || sIn == "yes" || sIn == "t" ) 43 if( sIn == "true" || sIn == "yes" || sIn == "t" )
44 dst = true; 44 dst = true;
@@ -48,79 +48,79 @@ bool &Bu::operator<<( bool &dst, const Bu::FString &sIn )
48 return dst; 48 return dst;
49} 49}
50 50
51uint8_t &Bu::operator<<( uint8_t &dst, const Bu::FString &sIn ) 51uint8_t &Bu::operator<<( uint8_t &dst, const Bu::String &sIn )
52{ 52{
53 sscanf( sIn.getStr(), "%hhu", &dst ); 53 sscanf( sIn.getStr(), "%hhu", &dst );
54 return dst; 54 return dst;
55} 55}
56 56
57int8_t &Bu::operator<<( int8_t &dst, const Bu::FString &sIn ) 57int8_t &Bu::operator<<( int8_t &dst, const Bu::String &sIn )
58{ 58{
59 sscanf( sIn.getStr(), "%hhd", &dst ); 59 sscanf( sIn.getStr(), "%hhd", &dst );
60 return dst; 60 return dst;
61} 61}
62 62
63char &Bu::operator<<( char &dst, const Bu::FString &sIn ) 63char &Bu::operator<<( char &dst, const Bu::String &sIn )
64{ 64{
65 sscanf( sIn.getStr(), "%hhd", &dst ); 65 sscanf( sIn.getStr(), "%hhd", &dst );
66 return dst; 66 return dst;
67} 67}
68 68
69uint16_t &Bu::operator<<( uint16_t &dst, const Bu::FString &sIn ) 69uint16_t &Bu::operator<<( uint16_t &dst, const Bu::String &sIn )
70{ 70{
71 sscanf( sIn.getStr(), "%hu", &dst ); 71 sscanf( sIn.getStr(), "%hu", &dst );
72 return dst; 72 return dst;
73} 73}
74 74
75int16_t &Bu::operator<<( int16_t &dst, const Bu::FString &sIn ) 75int16_t &Bu::operator<<( int16_t &dst, const Bu::String &sIn )
76{ 76{
77 sscanf( sIn.getStr(), "%hd", &dst ); 77 sscanf( sIn.getStr(), "%hd", &dst );
78 return dst; 78 return dst;
79} 79}
80 80
81uint32_t &Bu::operator<<( uint32_t &dst, const Bu::FString &sIn ) 81uint32_t &Bu::operator<<( uint32_t &dst, const Bu::String &sIn )
82{ 82{
83 sscanf( sIn.getStr(), "%u", &dst ); 83 sscanf( sIn.getStr(), "%u", &dst );
84 return dst; 84 return dst;
85} 85}
86 86
87int32_t &Bu::operator<<( int32_t &dst, const Bu::FString &sIn ) 87int32_t &Bu::operator<<( int32_t &dst, const Bu::String &sIn )
88{ 88{
89 sscanf( sIn.getStr(), "%d", &dst ); 89 sscanf( sIn.getStr(), "%d", &dst );
90 return dst; 90 return dst;
91} 91}
92 92
93uint64_t &Bu::operator<<( uint64_t &dst, const Bu::FString &sIn ) 93uint64_t &Bu::operator<<( uint64_t &dst, const Bu::String &sIn )
94{ 94{
95 sscanf( sIn.getStr(), "%llu", &dst ); 95 sscanf( sIn.getStr(), "%llu", &dst );
96 return dst; 96 return dst;
97} 97}
98 98
99int64_t &Bu::operator<<( int64_t &dst, const Bu::FString &sIn ) 99int64_t &Bu::operator<<( int64_t &dst, const Bu::String &sIn )
100{ 100{
101 sscanf( sIn.getStr(), "%lld", &dst ); 101 sscanf( sIn.getStr(), "%lld", &dst );
102 return dst; 102 return dst;
103} 103}
104 104
105float &Bu::operator<<( float &dst, const Bu::FString &sIn ) 105float &Bu::operator<<( float &dst, const Bu::String &sIn )
106{ 106{
107 sscanf( sIn.getStr(), "%f", &dst ); 107 sscanf( sIn.getStr(), "%f", &dst );
108 return dst; 108 return dst;
109} 109}
110 110
111double &Bu::operator<<( double &dst, const Bu::FString &sIn ) 111double &Bu::operator<<( double &dst, const Bu::String &sIn )
112{ 112{
113 sscanf( sIn.getStr(), "%lf", &dst ); 113 sscanf( sIn.getStr(), "%lf", &dst );
114 return dst; 114 return dst;
115} 115}
116 116
117long double &Bu::operator<<( long double &dst, const Bu::FString &sIn ) 117long double &Bu::operator<<( long double &dst, const Bu::String &sIn )
118{ 118{
119 sscanf( sIn.getStr(), "%Lf", &dst ); 119 sscanf( sIn.getStr(), "%Lf", &dst );
120 return dst; 120 return dst;
121} 121}
122 122
123Bu::FString &Bu::operator<<( Bu::FString &dst, const Bu::FString &sIn ) 123Bu::String &Bu::operator<<( Bu::String &dst, const Bu::String &sIn )
124{ 124{
125 dst = sIn; 125 dst = sIn;
126 return dst; 126 return dst;
diff --git a/src/fbasicstring.h b/src/string.h
index 064ff16..22db827 100644
--- a/src/fbasicstring.h
+++ b/src/string.h
@@ -1,12 +1,12 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
6 */ 6 */
7 7
8#ifndef BU_F_BASIC_STRING_H 8#ifndef BU_STRING_H
9#define BU_F_BASIC_STRING_H 9#define BU_STRING_H
10 10
11#include <stdint.h> 11#include <stdint.h>
12#include <memory> 12#include <memory>
@@ -27,17 +27,15 @@ namespace Bu
27{ 27{
28 /** @cond DEVEL */ 28 /** @cond DEVEL */
29 template< typename chr > 29 template< typename chr >
30 struct FStringChunk 30 struct StringChunk
31 { 31 {
32 long nLength; 32 long nLength;
33 chr *pData; 33 chr *pData;
34 FStringChunk *pNext; 34 StringChunk *pNext;
35 }; 35 };
36 36
37#define cpy( dest, src, size ) Bu::memcpy( dest, src, size*sizeof(chr) )
38
39 template< typename chr, int nMinSize, typename chralloc, 37 template< typename chr, int nMinSize, typename chralloc,
40 typename chunkalloc> class FBasicString; 38 typename chunkalloc> class BasicString;
41 39
42 template<typename chr> 40 template<typename chr>
43 size_t strlen( const chr *pData ) 41 size_t strlen( const chr *pData )
@@ -76,24 +74,24 @@ namespace Bu
76 } 74 }
77 75
78 template<typename chr, int nMinSize, typename chralloc, typename chunkalloc> 76 template<typename chr, int nMinSize, typename chralloc, typename chunkalloc>
79 struct FStringCore 77 struct StringCore
80 { 78 {
81 friend class FBasicString<chr, nMinSize, chralloc, chunkalloc>; 79 friend class BasicString<chr, nMinSize, chralloc, chunkalloc>;
82 friend class SharedCore< 80 friend class SharedCore<
83 FBasicString<chr, nMinSize, chralloc, chunkalloc>, 81 BasicString<chr, nMinSize, chralloc, chunkalloc>,
84 FStringCore<chr, nMinSize, chralloc, chunkalloc> 82 StringCore<chr, nMinSize, chralloc, chunkalloc>
85 >; 83 >;
86 private: 84 private:
87 typedef struct FStringCore<chr, nMinSize, chralloc, chunkalloc> MyType; 85 typedef struct StringCore<chr, nMinSize, chralloc, chunkalloc> MyType;
88 typedef struct FStringChunk<chr> Chunk; 86 typedef struct StringChunk<chr> Chunk;
89 FStringCore() : 87 StringCore() :
90 nLength( 0 ), 88 nLength( 0 ),
91 pFirst( NULL ), 89 pFirst( NULL ),
92 pLast( NULL ) 90 pLast( NULL )
93 { 91 {
94 } 92 }
95 93
96 FStringCore( const MyType &rSrc ) : 94 StringCore( const MyType &rSrc ) :
97 nLength( rSrc.nLength ), 95 nLength( rSrc.nLength ),
98 pFirst( NULL ), 96 pFirst( NULL ),
99 pLast( NULL ), 97 pLast( NULL ),
@@ -111,14 +109,14 @@ namespace Bu
111 int iPos = 0; 109 int iPos = 0;
112 while( pLink != NULL ) 110 while( pLink != NULL )
113 { 111 {
114 cpy( pFirst->pData+iPos, pLink->pData, pLink->nLength ); 112 memcpy( pFirst->pData+iPos, pLink->pData, pLink->nLength );
115 iPos += pLink->nLength; 113 iPos += pLink->nLength;
116 pLink = pLink->pNext; 114 pLink = pLink->pNext;
117 } 115 }
118 } 116 }
119 } 117 }
120 118
121 virtual ~FStringCore() 119 virtual ~StringCore()
122 { 120 {
123 clear(); 121 clear();
124 } 122 }
@@ -172,7 +170,7 @@ namespace Bu
172 pNew->pNext = pSrc->pNext; 170 pNew->pNext = pSrc->pNext;
173 pNew->nLength = pSrc->nLength; 171 pNew->nLength = pSrc->nLength;
174 pNew->pData = aChr.allocate( pSrc->nLength+1 ); 172 pNew->pData = aChr.allocate( pSrc->nLength+1 );
175 cpy( pNew->pData, pSrc->pData, pSrc->nLength ); 173 memcpy( pNew->pData, pSrc->pData, pSrc->nLength );
176 pNew->pData[pNew->nLength] = (chr)0; 174 pNew->pData[pNew->nLength] = (chr)0;
177 return pNew; 175 return pNew;
178 } 176 }
@@ -214,7 +212,7 @@ namespace Bu
214 * internal ref-counting means that if you pass strings around between 212 * internal ref-counting means that if you pass strings around between
215 * functions there's almost no overhead in time or memory since a reference 213 * functions there's almost no overhead in time or memory since a reference
216 * is created and no data is actually copied. This also means that you 214 * is created and no data is actually copied. This also means that you
217 * never need to put any FBasicString into a ref-counting container class. 215 * never need to put any BasicString into a ref-counting container class.
218 * 216 *
219 *@param chr (typename) Type of character (i.e. char) 217 *@param chr (typename) Type of character (i.e. char)
220 *@param nMinSize (int) Chunk size (default: 256) 218 *@param nMinSize (int) Chunk size (default: 256)
@@ -223,15 +221,15 @@ namespace Bu
223 */ 221 */
224 template< typename chr, int nMinSize=256, 222 template< typename chr, int nMinSize=256,
225 typename chralloc=std::allocator<chr>, 223 typename chralloc=std::allocator<chr>,
226 typename chunkalloc=std::allocator<struct FStringChunk<chr> > > 224 typename chunkalloc=std::allocator<struct StringChunk<chr> > >
227 class FBasicString : public SharedCore< 225 class BasicString : public SharedCore<
228 FBasicString<chr, nMinSize, chralloc, chunkalloc>, 226 BasicString<chr, nMinSize, chralloc, chunkalloc>,
229 FStringCore<chr, nMinSize, chralloc, chunkalloc> > 227 StringCore<chr, nMinSize, chralloc, chunkalloc> >
230 { 228 {
231 protected: 229 protected:
232 typedef struct FStringChunk<chr> Chunk; 230 typedef struct StringChunk<chr> Chunk;
233 typedef struct FBasicString<chr, nMinSize, chralloc, chunkalloc> MyType; 231 typedef struct BasicString<chr, nMinSize, chralloc, chunkalloc> MyType;
234 typedef struct FStringCore<chr, nMinSize, chralloc, chunkalloc> Core; 232 typedef struct StringCore<chr, nMinSize, chralloc, chunkalloc> Core;
235 233
236 using SharedCore<MyType, Core >::core; 234 using SharedCore<MyType, Core >::core;
237 using SharedCore<MyType, Core >::_hardCopy; 235 using SharedCore<MyType, Core >::_hardCopy;
@@ -240,7 +238,7 @@ namespace Bu
240 struct iterator; 238 struct iterator;
241 typedef struct const_iterator 239 typedef struct const_iterator
242 { 240 {
243 friend class FBasicString<chr, nMinSize, chralloc, chunkalloc>; 241 friend class BasicString<chr, nMinSize, chralloc, chunkalloc>;
244 friend struct iterator; 242 friend struct iterator;
245 private: 243 private:
246 const_iterator( Chunk *pChunk, int iPos ) : 244 const_iterator( Chunk *pChunk, int iPos ) :
@@ -474,7 +472,7 @@ namespace Bu
474 472
475 typedef struct iterator 473 typedef struct iterator
476 { 474 {
477 friend class FBasicString<chr, nMinSize, chralloc, chunkalloc>; 475 friend class BasicString<chr, nMinSize, chralloc, chunkalloc>;
478 friend struct const_iterator; 476 friend struct const_iterator;
479 private: 477 private:
480 iterator( Chunk *pChunk, int iPos ) : 478 iterator( Chunk *pChunk, int iPos ) :
@@ -719,52 +717,52 @@ namespace Bu
719 } iterator; 717 } iterator;
720 718
721 public: 719 public:
722 FBasicString() 720 BasicString()
723 { 721 {
724 } 722 }
725 723
726 FBasicString( const chr *pData ) 724 BasicString( const chr *pData )
727 { 725 {
728 append( pData ); 726 append( pData );
729 } 727 }
730 728
731 FBasicString( const chr *pData, long nLength ) 729 BasicString( const chr *pData, long nLength )
732 { 730 {
733 append( pData, nLength ); 731 append( pData, nLength );
734 } 732 }
735 733
736 FBasicString( const MyType &rSrc ) : 734 BasicString( const MyType &rSrc ) :
737 SharedCore<MyType, Core>( rSrc ) 735 SharedCore<MyType, Core>( rSrc )
738 { 736 {
739 } 737 }
740 738
741 FBasicString( const MyType &rSrc, long nLength ) 739 BasicString( const MyType &rSrc, long nLength )
742 { 740 {
743 append( rSrc, nLength ); 741 append( rSrc, nLength );
744 } 742 }
745 743
746 FBasicString( const MyType &rSrc, long nStart, long nLength ) 744 BasicString( const MyType &rSrc, long nStart, long nLength )
747 { 745 {
748 append( rSrc, nStart, nLength ); 746 append( rSrc, nStart, nLength );
749 } 747 }
750 748
751 FBasicString( long nSize ) 749 BasicString( long nSize )
752 { 750 {
753 core->pFirst = core->pLast = core->newChunk( nSize ); 751 core->pFirst = core->pLast = core->newChunk( nSize );
754 core->nLength = nSize; 752 core->nLength = nSize;
755 } 753 }
756 754
757 FBasicString( const const_iterator &s ) 755 BasicString( const const_iterator &s )
758 { 756 {
759 append( s ); 757 append( s );
760 } 758 }
761 759
762 FBasicString( const const_iterator &s, const const_iterator &e ) 760 BasicString( const const_iterator &s, const const_iterator &e )
763 { 761 {
764 append( s, e ); 762 append( s, e );
765 } 763 }
766 764
767 virtual ~FBasicString() 765 virtual ~BasicString()
768 { 766 {
769 } 767 }
770 768
@@ -812,7 +810,7 @@ namespace Bu
812 int nAmnt = nMinSize - core->pLast->nLength; 810 int nAmnt = nMinSize - core->pLast->nLength;
813 if( nAmnt > nLen ) 811 if( nAmnt > nLen )
814 nAmnt = nLen; 812 nAmnt = nLen;
815 cpy( 813 memcpy(
816 core->pLast->pData+core->pLast->nLength, 814 core->pLast->pData+core->pLast->nLength,
817 pData, 815 pData,
818 nAmnt 816 nAmnt
@@ -826,7 +824,7 @@ namespace Bu
826 if( nLen > 0 ) 824 if( nLen > 0 )
827 { 825 {
828 Chunk *pNew = core->newChunk( nLen ); 826 Chunk *pNew = core->newChunk( nLen );
829 cpy( pNew->pData, pData, nLen ); 827 memcpy( pNew->pData, pData, nLen );
830 core->appendChunk( pNew ); 828 core->appendChunk( pNew );
831// core->nLength += nLen; 829// core->nLength += nLen;
832 } 830 }
@@ -852,8 +850,8 @@ namespace Bu
852 } 850 }
853 851
854 /** 852 /**
855 * Append another FString to this one. 853 * Append another String to this one.
856 *@param sData (MyType &) The FString to append. 854 *@param sData (MyType &) The String to append.
857 *@todo This function can be made much faster by not using getStr() 855 *@todo This function can be made much faster by not using getStr()
858 */ 856 */
859 void append( const MyType & sData ) 857 void append( const MyType & sData )
@@ -862,8 +860,8 @@ namespace Bu
862 } 860 }
863 861
864 /** 862 /**
865 * Append another FString to this one. 863 * Append another String to this one.
866 *@param sData (MyType &) The FString to append. 864 *@param sData (MyType &) The String to append.
867 *@param nLen How much data to append. 865 *@param nLen How much data to append.
868 *@todo This function can be made much faster by not using getStr() 866 *@todo This function can be made much faster by not using getStr()
869 */ 867 */
@@ -873,8 +871,8 @@ namespace Bu
873 } 871 }
874 872
875 /** 873 /**
876 * Append another FString to this one. 874 * Append another String to this one.
877 *@param sData (MyType &) The FString to append. 875 *@param sData (MyType &) The String to append.
878 *@param nStart Start position in sData to start copying from. 876 *@param nStart Start position in sData to start copying from.
879 *@param nLen How much data to append. 877 *@param nLen How much data to append.
880 *@todo This function can be made much faster by not using getStr() 878 *@todo This function can be made much faster by not using getStr()
@@ -887,9 +885,9 @@ namespace Bu
887 } 885 }
888 886
889 /** 887 /**
890 * Append data to this FString using the passed in iterator as a base. 888 * Append data to this String using the passed in iterator as a base.
891 * The iterator is const, it is not changed. 889 * The iterator is const, it is not changed.
892 *@param s Iterator from any compatible FBasicString to copy data from. 890 *@param s Iterator from any compatible BasicString to copy data from.
893 */ 891 */
894 void append( const const_iterator &s ) 892 void append( const const_iterator &s )
895 { 893 {
@@ -898,7 +896,7 @@ namespace Bu
898 Chunk *pSrc = s.pChunk; 896 Chunk *pSrc = s.pChunk;
899 897
900 Chunk *pNew = core->newChunk( pSrc->nLength-s.iPos ); 898 Chunk *pNew = core->newChunk( pSrc->nLength-s.iPos );
901 cpy( pNew->pData, pSrc->pData+s.iPos, pSrc->nLength-s.iPos ); 899 memcpy( pNew->pData, pSrc->pData+s.iPos, pSrc->nLength-s.iPos );
902 900
903 _hardCopy(); 901 _hardCopy();
904 core->appendChunk( pNew ); 902 core->appendChunk( pNew );
@@ -910,9 +908,9 @@ namespace Bu
910 } 908 }
911 909
912 /** 910 /**
913 * Append data to this FString using the passed in iterator as a base. 911 * Append data to this String using the passed in iterator as a base.
914 * The iterator is const, it is not changed. 912 * The iterator is const, it is not changed.
915 *@param s Iterator from any compatible FBasicString to copy data from. 913 *@param s Iterator from any compatible BasicString to copy data from.
916 */ 914 */
917 void append( const iterator &s ) // I get complaints without this one 915 void append( const iterator &s ) // I get complaints without this one
918 { 916 {
@@ -920,11 +918,11 @@ namespace Bu
920 } 918 }
921 919
922 /** 920 /**
923 * Append data to this FString using the passed in iterator as a base, 921 * Append data to this String using the passed in iterator as a base,
924 * and copy data until the ending iterator is reached. The character 922 * and copy data until the ending iterator is reached. The character
925 * at the ending iterator is not copied. 923 * at the ending iterator is not copied.
926 * The iterators are const, they are not changed. 924 * The iterators are const, they are not changed.
927 *@param s Iterator from any compatible FBasicString to copy data from. 925 *@param s Iterator from any compatible BasicString to copy data from.
928 *@param e Iterator to stop copying at. 926 *@param e Iterator to stop copying at.
929 */ 927 */
930 void append( const const_iterator &s, const const_iterator &e ) 928 void append( const const_iterator &s, const const_iterator &e )
@@ -941,7 +939,7 @@ namespace Bu
941 { 939 {
942 // Simple case, they're the same chunk 940 // Simple case, they're the same chunk
943 Chunk *pNew = core->newChunk( e.iPos-s.iPos ); 941 Chunk *pNew = core->newChunk( e.iPos-s.iPos );
944 cpy( pNew->pData, s.pChunk->pData+s.iPos, e.iPos-s.iPos ); 942 memcpy( pNew->pData, s.pChunk->pData+s.iPos, e.iPos-s.iPos );
945 core->appendChunk( pNew ); 943 core->appendChunk( pNew );
946 } 944 }
947 else 945 else
@@ -949,7 +947,7 @@ namespace Bu
949 // A little trickier, scan the blocks... 947 // A little trickier, scan the blocks...
950 Chunk *pSrc = s.pChunk; 948 Chunk *pSrc = s.pChunk;
951 Chunk *pNew = core->newChunk( pSrc->nLength-s.iPos ); 949 Chunk *pNew = core->newChunk( pSrc->nLength-s.iPos );
952 cpy( pNew->pData, pSrc->pData+s.iPos, pSrc->nLength-s.iPos ); 950 memcpy( pNew->pData, pSrc->pData+s.iPos, pSrc->nLength-s.iPos );
953 core->appendChunk( pNew ); 951 core->appendChunk( pNew );
954 952
955 while( (pSrc = pSrc->pNext) != e.pChunk ) 953 while( (pSrc = pSrc->pNext) != e.pChunk )
@@ -958,14 +956,14 @@ namespace Bu
958 } 956 }
959 957
960 pNew = core->newChunk( e.iPos ); 958 pNew = core->newChunk( e.iPos );
961 cpy( pNew->pData, pSrc->pData, e.iPos ); 959 memcpy( pNew->pData, pSrc->pData, e.iPos );
962 core->appendChunk( pNew ); 960 core->appendChunk( pNew );
963 } 961 }
964 } 962 }
965 963
966 /** 964 /**
967 * Prepend another FString to this one. 965 * Prepend another String to this one.
968 *@param sData (MyType &) The FString to prepend. 966 *@param sData (MyType &) The String to prepend.
969 *@todo This function can be made much faster by not using getStr() 967 *@todo This function can be made much faster by not using getStr()
970 */ 968 */
971 void prepend( const MyType & sData ) 969 void prepend( const MyType & sData )
@@ -987,7 +985,7 @@ namespace Bu
987 for( nLen = 0; pData[nLen] != (chr)0; nLen++ ) { } 985 for( nLen = 0; pData[nLen] != (chr)0; nLen++ ) { }
988 986
989 Chunk *pNew = core->newChunk( nLen ); 987 Chunk *pNew = core->newChunk( nLen );
990 cpy( pNew->pData, pData, nLen ); 988 memcpy( pNew->pData, pData, nLen );
991 989
992 core->prependChunk( pNew ); 990 core->prependChunk( pNew );
993 } 991 }
@@ -1001,7 +999,7 @@ namespace Bu
1001 { 999 {
1002 Chunk *pNew = core->newChunk( nLen ); 1000 Chunk *pNew = core->newChunk( nLen );
1003 1001
1004 cpy( pNew->pData, pData, nLen ); 1002 memcpy( pNew->pData, pData, nLen );
1005 1003
1006 _hardCopy(); 1004 _hardCopy();
1007 core->prependChunk( pNew ); 1005 core->prependChunk( pNew );
@@ -1037,9 +1035,9 @@ namespace Bu
1037 Chunk *p1 = core->newChunk( nPos ); 1035 Chunk *p1 = core->newChunk( nPos );
1038 Chunk *p2 = core->newChunk( nLen ); 1036 Chunk *p2 = core->newChunk( nLen );
1039 Chunk *p3 = core->newChunk( core->nLength-nPos ); 1037 Chunk *p3 = core->newChunk( core->nLength-nPos );
1040 cpy( p1->pData, core->pFirst->pData, nPos ); 1038 memcpy( p1->pData, core->pFirst->pData, nPos );
1041 cpy( p2->pData, pData, nLen ); 1039 memcpy( p2->pData, pData, nLen );
1042 cpy( p3->pData, core->pFirst->pData+nPos, core->nLength-nPos ); 1040 memcpy( p3->pData, core->pFirst->pData+nPos, core->nLength-nPos );
1043 core->clear(); 1041 core->clear();
1044 core->appendChunk( p1 ); 1042 core->appendChunk( p1 );
1045 core->appendChunk( p2 ); 1043 core->appendChunk( p2 );
@@ -1063,8 +1061,8 @@ namespace Bu
1063 _hardCopy(); 1061 _hardCopy();
1064 Chunk *p1 = core->newChunk( nPos ); 1062 Chunk *p1 = core->newChunk( nPos );
1065 Chunk *p3 = core->newChunk( core->nLength-nPos ); 1063 Chunk *p3 = core->newChunk( core->nLength-nPos );
1066 cpy( p1->pData, core->pFirst->pData, nPos ); 1064 memcpy( p1->pData, core->pFirst->pData, nPos );
1067 cpy( p3->pData, core->pFirst->pData+nPos, core->nLength-nPos ); 1065 memcpy( p3->pData, core->pFirst->pData+nPos, core->nLength-nPos );
1068 core->clear(); 1066 core->clear();
1069 core->appendChunk( p1 ); 1067 core->appendChunk( p1 );
1070 for( Chunk *pChnk = str.core->pFirst; pChnk; 1068 for( Chunk *pChnk = str.core->pFirst; pChnk;
@@ -1148,7 +1146,7 @@ namespace Bu
1148 long nNewLen = (nNewSize<core->nLength)?(nNewSize):(core->nLength); 1146 long nNewLen = (nNewSize<core->nLength)?(nNewSize):(core->nLength);
1149 if( core->nLength > 0 ) 1147 if( core->nLength > 0 )
1150 { 1148 {
1151 cpy( pNew->pData, core->pFirst->pData, nNewLen ); 1149 memcpy( pNew->pData, core->pFirst->pData, nNewLen );
1152 core->aChr.deallocate( core->pFirst->pData, core->pFirst->nLength+1 ); 1150 core->aChr.deallocate( core->pFirst->pData, core->pFirst->nLength+1 );
1153 core->aChunk.deallocate( core->pFirst, 1 ); 1151 core->aChunk.deallocate( core->pFirst, 1 );
1154 } 1152 }
@@ -1282,8 +1280,8 @@ namespace Bu
1282 } 1280 }
1283 1281
1284 /** 1282 /**
1285 * Plus equals operator for FString. 1283 * Plus equals operator for String.
1286 *@param pData (const chr *) The data to append to your FString. 1284 *@param pData (const chr *) The data to append to your String.
1287 */ 1285 */
1288 MyType &operator+=( const chr *pData ) 1286 MyType &operator+=( const chr *pData )
1289 { 1287 {
@@ -1293,8 +1291,8 @@ namespace Bu
1293 } 1291 }
1294 1292
1295 /** 1293 /**
1296 * Plus equals operator for FString. 1294 * Plus equals operator for String.
1297 *@param rSrc (const MyType &) The FString to append to your FString. 1295 *@param rSrc (const MyType &) The String to append to your String.
1298 */ 1296 */
1299 MyType &operator+=( const MyType &rSrc ) 1297 MyType &operator+=( const MyType &rSrc )
1300 { 1298 {
@@ -1311,8 +1309,8 @@ namespace Bu
1311 } 1309 }
1312 1310
1313 /** 1311 /**
1314 * Plus equals operator for FString. 1312 * Plus equals operator for String.
1315 *@param cData (const chr) The character to append to your FString. 1313 *@param cData (const chr) The character to append to your String.
1316 */ 1314 */
1317 MyType &operator+=( const chr cData ) 1315 MyType &operator+=( const chr cData )
1318 { 1316 {
@@ -1335,7 +1333,7 @@ namespace Bu
1335 /** 1333 /**
1336 * Assignment operator. 1334 * Assignment operator.
1337 *@param pData (const chr *) The character array to append to your 1335 *@param pData (const chr *) The character array to append to your
1338 * FString. 1336 * String.
1339 */ 1337 */
1340 MyType &operator=( const chr *pData ) 1338 MyType &operator=( const chr *pData )
1341 { 1339 {
@@ -1366,8 +1364,8 @@ namespace Bu
1366 } 1364 }
1367 1365
1368 /** 1366 /**
1369 * Reset your FString to this character array. 1367 * Reset your String to this character array.
1370 *@param pData (const chr *) The character array to set your FString to. 1368 *@param pData (const chr *) The character array to set your String to.
1371 */ 1369 */
1372 void set( const chr *pData ) 1370 void set( const chr *pData )
1373 { 1371 {
@@ -1376,8 +1374,8 @@ namespace Bu
1376 } 1374 }
1377 1375
1378 /** 1376 /**
1379 * Reset your FString to this character array. 1377 * Reset your String to this character array.
1380 *@param pData (const chr *) The character array to set your FString to. 1378 *@param pData (const chr *) The character array to set your String to.
1381 *@param nSize (long) The length of the inputted character array. 1379 *@param nSize (long) The length of the inputted character array.
1382 */ 1380 */
1383 void set( const chr *pData, long nSize ) 1381 void set( const chr *pData, long nSize )
@@ -1467,7 +1465,7 @@ namespace Bu
1467 1465
1468 /** 1466 /**
1469 * Assignment operator. 1467 * Assignment operator.
1470 *@param rSrc (const MyType &) The FString to set your FString to. 1468 *@param rSrc (const MyType &) The String to set your String to.
1471 */ 1469 */
1472 /* MyType &operator=( const MyType &rSrc ) 1470 /* MyType &operator=( const MyType &rSrc )
1473 { 1471 {
@@ -1478,7 +1476,7 @@ namespace Bu
1478 1476
1479 /** 1477 /**
1480 * Equals comparison operator. 1478 * Equals comparison operator.
1481 *@param pData (const chr *) The character array to compare your FString 1479 *@param pData (const chr *) The character array to compare your String
1482 * to. 1480 * to.
1483 */ 1481 */
1484 bool operator==( const chr *pData ) const 1482 bool operator==( const chr *pData ) const
@@ -1508,7 +1506,7 @@ namespace Bu
1508 1506
1509 /** 1507 /**
1510 * Equals comparison operator. 1508 * Equals comparison operator.
1511 *@param pData (const MyType &) The FString to compare your FString to. 1509 *@param pData (const MyType &) The String to compare your String to.
1512 */ 1510 */
1513 bool operator==( const MyType &pData ) const 1511 bool operator==( const MyType &pData ) const
1514 { 1512 {
@@ -1538,7 +1536,7 @@ namespace Bu
1538 1536
1539 /** 1537 /**
1540 * Not equals comparison operator. 1538 * Not equals comparison operator.
1541 *@param pData (const chr *) The character array to compare your FString 1539 *@param pData (const chr *) The character array to compare your String
1542 * to. 1540 * to.
1543 */ 1541 */
1544 bool operator!=(const chr *pData ) const 1542 bool operator!=(const chr *pData ) const
@@ -1548,7 +1546,7 @@ namespace Bu
1548 1546
1549 /** 1547 /**
1550 * Not equals comparison operator. 1548 * Not equals comparison operator.
1551 *@param pData (const MyType &) The FString to compare your FString to. 1549 *@param pData (const MyType &) The String to compare your String to.
1552 */ 1550 */
1553 bool operator!=(const MyType &pData ) const 1551 bool operator!=(const MyType &pData ) const
1554 { 1552 {
@@ -1939,7 +1937,7 @@ namespace Bu
1939 long nNewLen = core->nLength - nAmnt; 1937 long nNewLen = core->nLength - nAmnt;
1940 flatten(); 1938 flatten();
1941 Chunk *pNew = core->newChunk( nNewLen ); 1939 Chunk *pNew = core->newChunk( nNewLen );
1942 cpy( pNew->pData, core->pFirst->pData+nAmnt, nNewLen ); 1940 memcpy( pNew->pData, core->pFirst->pData+nAmnt, nNewLen );
1943 _hardCopy(); 1941 _hardCopy();
1944 core->clear(); 1942 core->clear();
1945 core->appendChunk( pNew ); 1943 core->appendChunk( pNew );
@@ -2051,7 +2049,7 @@ namespace Bu
2051 Chunk *i = core->pFirst; 2049 Chunk *i = core->pFirst;
2052 for(;;) 2050 for(;;)
2053 { 2051 {
2054 cpy( pos, i->pData, i->nLength ); 2052 memcpy( pos, i->pData, i->nLength );
2055 pos += i->nLength; 2053 pos += i->nLength;
2056 i = i->pNext; 2054 i = i->pNext;
2057 if( i == NULL ) 2055 if( i == NULL )
@@ -2069,15 +2067,15 @@ namespace Bu
2069 } 2067 }
2070 }; 2068 };
2071 2069
2072 template<class T> FBasicString<T> operator+( const T *pLeft, const FBasicString<T> &rRight ) 2070 template<class T> BasicString<T> operator+( const T *pLeft, const BasicString<T> &rRight )
2073 { 2071 {
2074 Bu::FBasicString<T> ret( pLeft ); 2072 Bu::BasicString<T> ret( pLeft );
2075 ret.append( rRight ); 2073 ret.append( rRight );
2076 return ret; 2074 return ret;
2077 } 2075 }
2078 2076
2079 template<class chr, int b, class c, class d> 2077 template<class chr, int b, class c, class d>
2080 ArchiveBase &operator<<( ArchiveBase &ar, const FBasicString<chr, b, c, d> &s ) 2078 ArchiveBase &operator<<( ArchiveBase &ar, const BasicString<chr, b, c, d> &s )
2081 { 2079 {
2082 long n = s.getSize(); 2080 long n = s.getSize();
2083 ar << n; 2081 ar << n;
@@ -2086,7 +2084,7 @@ namespace Bu
2086 } 2084 }
2087 2085
2088 template<class chr, int b, class c, class d> 2086 template<class chr, int b, class c, class d>
2089 ArchiveBase &operator>>( ArchiveBase &ar, FBasicString<chr, b, c, d> &s ) 2087 ArchiveBase &operator>>( ArchiveBase &ar, BasicString<chr, b, c, d> &s )
2090 { 2088 {
2091 long n; 2089 long n;
2092 ar >> n; 2090 ar >> n;
@@ -2094,8 +2092,38 @@ namespace Bu
2094 ar.read( s.getStr(), n ); 2092 ar.read( s.getStr(), n );
2095 return ar; 2093 return ar;
2096 } 2094 }
2097}
2098 2095
2099#undef cpy 2096 typedef BasicString<char> String;
2097
2098 template<typename T>
2099 uint32_t __calcHashCode( const T &k );
2100
2101 template<typename T>
2102 bool __cmpHashKeys( const T &a, const T &b );
2103
2104 template<> uint32_t __calcHashCode<String>( const String &k );
2105 template<> bool __cmpHashKeys<String>(
2106 const String &a, const String &b );
2107
2108 template<typename t> void __tracer_format( const t &v );
2109 template<> void __tracer_format<String>( const String &v );
2110
2111 bool &operator<<( bool &dst, const String &sIn );
2112 uint8_t &operator<<( uint8_t &dst, const String &sIn );
2113 int8_t &operator<<( int8_t &dst, const String &sIn );
2114 char &operator<<( char &dst, const String &sIn );
2115 uint16_t &operator<<( uint16_t &dst, const String &sIn );
2116 int16_t &operator<<( int16_t &dst, const String &sIn );
2117 uint32_t &operator<<( uint32_t &dst, const String &sIn );
2118 int32_t &operator<<( int32_t &dst, const String &sIn );
2119 uint64_t &operator<<( uint64_t &dst, const String &sIn );
2120 int64_t &operator<<( int64_t &dst, const String &sIn );
2121 float &operator<<( float &dst, const String &sIn );
2122 double &operator<<( double &dst, const String &sIn );
2123 long double &operator<<( long double &dst, const String &sIn );
2124 Bu::String &operator<<( Bu::String &dst, const String &sIn );
2125
2126 typedef Bu::List<String> StringList;
2127};
2100 2128
2101#endif 2129#endif
diff --git a/src/substream.cpp b/src/substream.cpp
index 25d301a..c201752 100644
--- a/src/substream.cpp
+++ b/src/substream.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -7,7 +7,7 @@
7 7
8#include "bu/substream.h" 8#include "bu/substream.h"
9 9
10Bu::SubStream::SubStream( Bu::Stream &rNext, long iSize ) : 10Bu::SubStream::SubStream( Bu::Stream &rNext, Bu::size iSize ) :
11 Bu::Filter( rNext ), 11 Bu::Filter( rNext ),
12 iStart( 0 ), 12 iStart( 0 ),
13 iPos( 0 ), 13 iPos( 0 ),
@@ -20,18 +20,18 @@ Bu::SubStream::~SubStream()
20{ 20{
21} 21}
22 22
23size_t Bu::SubStream::read( void *pBuf, size_t nBytes ) 23Bu::size Bu::SubStream::read( void *pBuf, Bu::size nBytes )
24{ 24{
25 if( (long)nBytes > iSize-iPos ) 25 if( (Bu::size)nBytes > iSize-iPos )
26 nBytes = iSize-iPos; 26 nBytes = iSize-iPos;
27 nBytes = rNext.read( pBuf, nBytes ); 27 nBytes = rNext.read( pBuf, nBytes );
28 iPos += nBytes; 28 iPos += nBytes;
29 return nBytes; 29 return nBytes;
30} 30}
31 31
32size_t Bu::SubStream::write( const void *pBuf, size_t nBytes ) 32Bu::size Bu::SubStream::write( const void *pBuf, Bu::size nBytes )
33{ 33{
34 if( (long)nBytes > iSize-iPos ) 34 if( (Bu::size)nBytes > iSize-iPos )
35 nBytes = iSize-iPos; 35 nBytes = iSize-iPos;
36 nBytes = rNext.write( pBuf, nBytes ); 36 nBytes = rNext.write( pBuf, nBytes );
37 iPos += nBytes; 37 iPos += nBytes;
@@ -43,7 +43,7 @@ void Bu::SubStream::start()
43 // doesn't mean anything... 43 // doesn't mean anything...
44} 44}
45 45
46size_t Bu::SubStream::stop() 46Bu::size Bu::SubStream::stop()
47{ 47{
48 // doesn't mean anything... 48 // doesn't mean anything...
49 return 0; 49 return 0;
@@ -54,12 +54,12 @@ void Bu::SubStream::close()
54 // don't do anything? maybe... 54 // don't do anything? maybe...
55} 55}
56 56
57long Bu::SubStream::tell() 57Bu::size Bu::SubStream::tell()
58{ 58{
59 return iPos; 59 return iPos;
60} 60}
61 61
62void Bu::SubStream::seek( long offset ) 62void Bu::SubStream::seek( Bu::size offset )
63{ 63{
64 if( iPos+offset < 0 ) 64 if( iPos+offset < 0 )
65 offset = -iPos; 65 offset = -iPos;
@@ -69,7 +69,7 @@ void Bu::SubStream::seek( long offset )
69 iPos += offset; 69 iPos += offset;
70} 70}
71 71
72void Bu::SubStream::setPos( long pos ) 72void Bu::SubStream::setPos( Bu::size pos )
73{ 73{
74 if( pos < 0 ) 74 if( pos < 0 )
75 pos = 0; 75 pos = 0;
@@ -80,7 +80,7 @@ void Bu::SubStream::setPos( long pos )
80 rNext.setPos( pos ); 80 rNext.setPos( pos );
81} 81}
82 82
83void Bu::SubStream::setPosEnd( long pos ) 83void Bu::SubStream::setPosEnd( Bu::size pos )
84{ 84{
85 if( iSize-pos < 0 ) 85 if( iSize-pos < 0 )
86 pos = 0; 86 pos = 0;
diff --git a/src/substream.h b/src/substream.h
index b460f13..1db4d6c 100644
--- a/src/substream.h
+++ b/src/substream.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -34,29 +34,29 @@ namespace Bu
34 class SubStream : public Bu::Filter 34 class SubStream : public Bu::Filter
35 { 35 {
36 public: 36 public:
37 SubStream( Bu::Stream &rNext, long iSize ); 37 SubStream( Bu::Stream &rNext, Bu::size iSize );
38 virtual ~SubStream(); 38 virtual ~SubStream();
39 39
40 virtual size_t read( void *pBuf, size_t nBytes ); 40 virtual Bu::size read( void *pBuf, Bu::size nBytes );
41 virtual size_t write( const void *pBuf, size_t nBytes ); 41 virtual Bu::size write( const void *pBuf, Bu::size nBytes );
42 using Bu::Stream::write; 42 using Bu::Stream::write;
43 43
44 virtual void start(); 44 virtual void start();
45 virtual size_t stop(); 45 virtual Bu::size stop();
46 virtual void close(); 46 virtual void close();
47 virtual long tell(); 47 virtual Bu::size tell();
48 virtual void seek( long offset ); 48 virtual void seek( Bu::size offset );
49 virtual void setPos( long pos ); 49 virtual void setPos( Bu::size pos );
50 virtual void setPosEnd( long pos ); 50 virtual void setPosEnd( Bu::size pos );
51 virtual bool isEos(); 51 virtual bool isEos();
52 52
53 virtual bool canRead(); 53 virtual bool canRead();
54 virtual bool canWrite(); 54 virtual bool canWrite();
55 55
56 protected: 56 protected:
57 long iStart; 57 Bu::size iStart;
58 long iPos; 58 Bu::size iPos;
59 long iSize; 59 Bu::size iSize;
60 }; 60 };
61}; 61};
62 62
diff --git a/src/taf.h b/src/taf.h
index f48aeeb..951f80f 100644
--- a/src/taf.h
+++ b/src/taf.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tafcomment.cpp b/src/tafcomment.cpp
index 77b7ee4..c7096ca 100644
--- a/src/tafcomment.cpp
+++ b/src/tafcomment.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -14,7 +14,7 @@ Bu::TafComment::TafComment( const Bu::TafComment &rSrc ) :
14{ 14{
15} 15}
16 16
17Bu::TafComment::TafComment( const Bu::FString &sText, bool bEOL ) : 17Bu::TafComment::TafComment( const Bu::String &sText, bool bEOL ) :
18 TafNode( typeComment ), 18 TafNode( typeComment ),
19 sText( sText ), 19 sText( sText ),
20 bEOL( bEOL ) 20 bEOL( bEOL )
@@ -25,7 +25,7 @@ Bu::TafComment::~TafComment()
25{ 25{
26} 26}
27 27
28const Bu::FString &Bu::TafComment::getText() const 28const Bu::String &Bu::TafComment::getText() const
29{ 29{
30 return sText; 30 return sText;
31} 31}
diff --git a/src/tafcomment.h b/src/tafcomment.h
index 5b51f99..4efd548 100644
--- a/src/tafcomment.h
+++ b/src/tafcomment.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -21,14 +21,14 @@ namespace Bu
21 { 21 {
22 public: 22 public:
23 TafComment( const Bu::TafComment &rSrc ); 23 TafComment( const Bu::TafComment &rSrc );
24 TafComment( const Bu::FString &sText, bool bEOL=false ); 24 TafComment( const Bu::String &sText, bool bEOL=false );
25 virtual ~TafComment(); 25 virtual ~TafComment();
26 26
27 const Bu::FString &getText() const; 27 const Bu::String &getText() const;
28 bool isEOLStyle() const; 28 bool isEOLStyle() const;
29 29
30 private: 30 private:
31 Bu::FString sText; 31 Bu::String sText;
32 bool bEOL; 32 bool bEOL;
33 }; 33 };
34} 34}
diff --git a/src/tafgroup.cpp b/src/tafgroup.cpp
index c3f5b1e..ee180c3 100644
--- a/src/tafgroup.cpp
+++ b/src/tafgroup.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -32,7 +32,7 @@ Bu::TafGroup::TafGroup( const TafGroup &rSrc ) :
32 } 32 }
33} 33}
34 34
35Bu::TafGroup::TafGroup( const Bu::FString &sName ) : 35Bu::TafGroup::TafGroup( const Bu::String &sName ) :
36 TafNode( typeGroup ), 36 TafNode( typeGroup ),
37 sName( sName ) 37 sName( sName )
38{ 38{
@@ -46,12 +46,12 @@ Bu::TafGroup::~TafGroup()
46 } 46 }
47} 47}
48 48
49const Bu::FString &Bu::TafGroup::getName() const 49const Bu::String &Bu::TafGroup::getName() const
50{ 50{
51 return sName; 51 return sName;
52} 52}
53 53
54void Bu::TafGroup::setName( const Bu::FString &sName ) 54void Bu::TafGroup::setName( const Bu::String &sName )
55{ 55{
56 this->sName = sName; 56 this->sName = sName;
57} 57}
@@ -102,23 +102,23 @@ Bu::TafComment *Bu::TafGroup::addChild( TafComment *pNode )
102 return pNode; 102 return pNode;
103} 103}
104 104
105Bu::TafGroup *Bu::TafGroup::addGroup( const Bu::FString &sName ) 105Bu::TafGroup *Bu::TafGroup::addGroup( const Bu::String &sName )
106{ 106{
107 return addChild( new TafGroup( sName ) ); 107 return addChild( new TafGroup( sName ) );
108} 108}
109 109
110Bu::TafProperty *Bu::TafGroup::addProperty( 110Bu::TafProperty *Bu::TafGroup::addProperty(
111 const Bu::FString &sName, const Bu::FString &sValue ) 111 const Bu::String &sName, const Bu::String &sValue )
112{ 112{
113 return addChild( new TafProperty( sName, sValue ) ); 113 return addChild( new TafProperty( sName, sValue ) );
114} 114}
115 115
116bool Bu::TafGroup::hasChild( const Bu::FString &sName ) const 116bool Bu::TafGroup::hasChild( const Bu::String &sName ) const
117{ 117{
118 return hChildren.has( sName ); 118 return hChildren.has( sName );
119} 119}
120 120
121const Bu::TafGroup::GroupList &Bu::TafGroup::getChildren( const Bu::FString &sName ) const 121const Bu::TafGroup::GroupList &Bu::TafGroup::getChildren( const Bu::String &sName ) const
122{ 122{
123 try { 123 try {
124 return hChildren.get( sName ); 124 return hChildren.get( sName );
@@ -134,7 +134,7 @@ const Bu::TafGroup::NodeList &Bu::TafGroup::getChildren() const
134 return lChildren; 134 return lChildren;
135} 135}
136 136
137const Bu::TafGroup *Bu::TafGroup::getChild( const Bu::FString &sName ) const 137const Bu::TafGroup *Bu::TafGroup::getChild( const Bu::String &sName ) const
138{ 138{
139 try { 139 try {
140 return hChildren.get( sName ).first(); 140 return hChildren.get( sName ).first();
@@ -145,12 +145,12 @@ const Bu::TafGroup *Bu::TafGroup::getChild( const Bu::FString &sName ) const
145 } 145 }
146} 146}
147 147
148bool Bu::TafGroup::hasProperty( const Bu::FString &sName ) const 148bool Bu::TafGroup::hasProperty( const Bu::String &sName ) const
149{ 149{
150 return hProp.has( sName ); 150 return hProp.has( sName );
151} 151}
152 152
153const Bu::TafGroup::PropList &Bu::TafGroup::getProperties( const Bu::FString &sName ) const 153const Bu::TafGroup::PropList &Bu::TafGroup::getProperties( const Bu::String &sName ) const
154{ 154{
155 try { 155 try {
156 return hProp.get( sName ); 156 return hProp.get( sName );
@@ -161,7 +161,7 @@ const Bu::TafGroup::PropList &Bu::TafGroup::getProperties( const Bu::FString &sN
161 } 161 }
162} 162}
163 163
164const Bu::FString &Bu::TafGroup::getProperty( const Bu::FString &sName ) const 164const Bu::String &Bu::TafGroup::getProperty( const Bu::String &sName ) const
165{ 165{
166 try { 166 try {
167 return hProp.get( sName ).first(); 167 return hProp.get( sName ).first();
@@ -172,8 +172,8 @@ const Bu::FString &Bu::TafGroup::getProperty( const Bu::FString &sName ) const
172 } 172 }
173} 173}
174 174
175const Bu::FString &Bu::TafGroup::getProperty( const Bu::FString &sName, 175const Bu::String &Bu::TafGroup::getProperty( const Bu::String &sName,
176 const Bu::FString &sDef ) const 176 const Bu::String &sDef ) const
177{ 177{
178 try 178 try
179 { 179 {
@@ -186,7 +186,7 @@ const Bu::FString &Bu::TafGroup::getProperty( const Bu::FString &sName,
186} 186}
187 187
188const Bu::TafGroup *Bu::TafGroup::getChildByPath( 188const Bu::TafGroup *Bu::TafGroup::getChildByPath(
189 const Bu::FString &sPath ) const 189 const Bu::String &sPath ) const
190{ 190{
191 return getChildByPath( sPath.split('/') ); 191 return getChildByPath( sPath.split('/') );
192} 192}
@@ -203,12 +203,12 @@ const Bu::TafGroup *Bu::TafGroup::getChildByPath( Bu::StrList lPath ) const
203 return cur; 203 return cur;
204} 204}
205 205
206const Bu::FString &Bu::TafGroup::getByPath( const Bu::FString &sPath ) const 206const Bu::String &Bu::TafGroup::getByPath( const Bu::String &sPath ) const
207{ 207{
208 return getByPath( sPath.split('/') ); 208 return getByPath( sPath.split('/') );
209} 209}
210 210
211const Bu::FString &Bu::TafGroup::getByPath( Bu::StrList lPath ) const 211const Bu::String &Bu::TafGroup::getByPath( Bu::StrList lPath ) const
212{ 212{
213 const Bu::TafGroup *cur = this; 213 const Bu::TafGroup *cur = this;
214 214
diff --git a/src/tafgroup.h b/src/tafgroup.h
index ed70e8c..119e827 100644
--- a/src/tafgroup.h
+++ b/src/tafgroup.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -10,13 +10,13 @@
10 10
11#include <stdint.h> 11#include <stdint.h>
12#include "bu/tafnode.h" 12#include "bu/tafnode.h"
13#include "bu/fstring.h" 13#include "bu/string.h"
14#include "bu/hash.h" 14#include "bu/hash.h"
15#include "bu/list.h" 15#include "bu/list.h"
16 16
17namespace Bu 17namespace Bu
18{ 18{
19 typedef Bu::List<Bu::FString> StrList; 19 typedef Bu::List<Bu::String> StrList;
20 class TafProperty; 20 class TafProperty;
21 class TafComment; 21 class TafComment;
22 /** 22 /**
@@ -26,42 +26,42 @@ namespace Bu
26 class TafGroup : public TafNode 26 class TafGroup : public TafNode
27 { 27 {
28 public: 28 public:
29 typedef Bu::List<Bu::FString> PropList; 29 typedef Bu::List<Bu::String> PropList;
30 typedef Bu::Hash<Bu::FString, PropList> PropHash; 30 typedef Bu::Hash<Bu::String, PropList> PropHash;
31 typedef Bu::List<class Bu::TafGroup *> GroupList; 31 typedef Bu::List<class Bu::TafGroup *> GroupList;
32 typedef Bu::Hash<Bu::FString, GroupList> GroupHash; 32 typedef Bu::Hash<Bu::String, GroupList> GroupHash;
33 typedef Bu::List<class Bu::TafNode *> NodeList; 33 typedef Bu::List<class Bu::TafNode *> NodeList;
34 34
35 TafGroup( const TafGroup &rSrc ); 35 TafGroup( const TafGroup &rSrc );
36 TafGroup( const Bu::FString &sName ); 36 TafGroup( const Bu::String &sName );
37 virtual ~TafGroup(); 37 virtual ~TafGroup();
38 38
39 const Bu::FString &getName() const; 39 const Bu::String &getName() const;
40 void setName( const Bu::FString &sName ); 40 void setName( const Bu::String &sName );
41 41
42 bool hasProperty( const Bu::FString &sName ) const; 42 bool hasProperty( const Bu::String &sName ) const;
43 const Bu::FString &getProperty( const Bu::FString &sName ) const; 43 const Bu::String &getProperty( const Bu::String &sName ) const;
44 const Bu::FString &getProperty( const Bu::FString &sName, 44 const Bu::String &getProperty( const Bu::String &sName,
45 const Bu::FString &sDef ) const; 45 const Bu::String &sDef ) const;
46 const PropList &getProperties( const Bu::FString &sName ) const; 46 const PropList &getProperties( const Bu::String &sName ) const;
47 bool hasChild( const Bu::FString &sName ) const; 47 bool hasChild( const Bu::String &sName ) const;
48 const TafGroup *getChild( const Bu::FString &sName ) const; 48 const TafGroup *getChild( const Bu::String &sName ) const;
49 const GroupList &getChildren( const Bu::FString &sName ) const; 49 const GroupList &getChildren( const Bu::String &sName ) const;
50 TafNode *addChild( TafNode *pNode ); 50 TafNode *addChild( TafNode *pNode );
51 TafGroup *addChild( TafGroup *pNode ); 51 TafGroup *addChild( TafGroup *pNode );
52 TafProperty *addChild( TafProperty *pNode ); 52 TafProperty *addChild( TafProperty *pNode );
53 TafComment *addChild( TafComment *pNode ); 53 TafComment *addChild( TafComment *pNode );
54 TafGroup *addGroup( const Bu::FString &sName ); 54 TafGroup *addGroup( const Bu::String &sName );
55 TafProperty *addProperty( 55 TafProperty *addProperty(
56 const Bu::FString &sName, const Bu::FString &sValue ); 56 const Bu::String &sName, const Bu::String &sValue );
57 const NodeList &getChildren() const; 57 const NodeList &getChildren() const;
58 const TafGroup *getChildByPath( const Bu::FString &sPath ) const; 58 const TafGroup *getChildByPath( const Bu::String &sPath ) const;
59 const TafGroup *getChildByPath( StrList lPath ) const; 59 const TafGroup *getChildByPath( StrList lPath ) const;
60 const Bu::FString &getByPath( const Bu::FString &sPath ) const; 60 const Bu::String &getByPath( const Bu::String &sPath ) const;
61 const Bu::FString &getByPath( StrList lPath ) const; 61 const Bu::String &getByPath( StrList lPath ) const;
62 62
63 private: 63 private:
64 Bu::FString sName; 64 Bu::String sName;
65 PropHash hProp; 65 PropHash hProp;
66 GroupHash hChildren; 66 GroupHash hChildren;
67 NodeList lChildren; 67 NodeList lChildren;
diff --git a/src/tafnode.cpp b/src/tafnode.cpp
index da85d20..0757a46 100644
--- a/src/tafnode.cpp
+++ b/src/tafnode.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tafnode.h b/src/tafnode.h
index a535f65..d7a9159 100644
--- a/src/tafnode.h
+++ b/src/tafnode.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -9,7 +9,7 @@
9#define BU_TAF_NODE_H 9#define BU_TAF_NODE_H
10 10
11#include <stdint.h> 11#include <stdint.h>
12#include "bu/fstring.h" 12#include "bu/string.h"
13#include "bu/hash.h" 13#include "bu/hash.h"
14#include "bu/exceptionbase.h" 14#include "bu/exceptionbase.h"
15 15
diff --git a/src/tafproperty.cpp b/src/tafproperty.cpp
index c847344..4ef5c24 100644
--- a/src/tafproperty.cpp
+++ b/src/tafproperty.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -14,7 +14,7 @@ Bu::TafProperty::TafProperty( const Bu::TafProperty &rSrc ) :
14{ 14{
15} 15}
16 16
17Bu::TafProperty::TafProperty( const Bu::FString &sName, const Bu::FString &sValue ) : 17Bu::TafProperty::TafProperty( const Bu::String &sName, const Bu::String &sValue ) :
18 TafNode( typeProperty ), 18 TafNode( typeProperty ),
19 sName( sName ), 19 sName( sName ),
20 sValue( sValue ) 20 sValue( sValue )
@@ -25,12 +25,12 @@ Bu::TafProperty::~TafProperty()
25{ 25{
26} 26}
27 27
28const Bu::FString &Bu::TafProperty::getName() const 28const Bu::String &Bu::TafProperty::getName() const
29{ 29{
30 return sName; 30 return sName;
31} 31}
32 32
33const Bu::FString &Bu::TafProperty::getValue() const 33const Bu::String &Bu::TafProperty::getValue() const
34{ 34{
35 return sValue; 35 return sValue;
36} 36}
diff --git a/src/tafproperty.h b/src/tafproperty.h
index 62cc517..7091de5 100644
--- a/src/tafproperty.h
+++ b/src/tafproperty.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -21,15 +21,15 @@ namespace Bu
21 { 21 {
22 public: 22 public:
23 TafProperty( const Bu::TafProperty &rSrc ); 23 TafProperty( const Bu::TafProperty &rSrc );
24 TafProperty( const Bu::FString &sName, const Bu::FString &sValue ); 24 TafProperty( const Bu::String &sName, const Bu::String &sValue );
25 virtual ~TafProperty(); 25 virtual ~TafProperty();
26 26
27 const Bu::FString &getName() const; 27 const Bu::String &getName() const;
28 const Bu::FString &getValue() const; 28 const Bu::String &getValue() const;
29 29
30 private: 30 private:
31 Bu::FString sName; 31 Bu::String sName;
32 Bu::FString sValue; 32 Bu::String sValue;
33 }; 33 };
34} 34}
35 35
diff --git a/src/tafreader.cpp b/src/tafreader.cpp
index ca06daf..6708c8c 100644
--- a/src/tafreader.cpp
+++ b/src/tafreader.cpp
@@ -1,12 +1,12 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
6 */ 6 */
7 7
8#include "bu/taf.h" 8#include "bu/taf.h"
9#include "bu/fstring.h" 9#include "bu/string.h"
10#include "bu/stream.h" 10#include "bu/stream.h"
11 11
12#include <stdlib.h> 12#include <stdlib.h>
@@ -34,7 +34,7 @@ Bu::TafGroup *Bu::TafReader::readGroup()
34 throw TafException("%d:%d: Expected '{' got '%c'.", iLine, iCol, c ); 34 throw TafException("%d:%d: Expected '{' got '%c'.", iLine, iCol, c );
35 next(); 35 next();
36 ws(); 36 ws();
37 FString sName = readStr(); 37 String sName = readStr();
38 TafGroup *pGroup = new TafGroup( sName ); 38 TafGroup *pGroup = new TafGroup( sName );
39 try 39 try
40 { 40 {
@@ -88,7 +88,7 @@ void Bu::TafReader::groupContent( Bu::TafGroup *pGroup )
88 88
89Bu::TafProperty *Bu::TafReader::readProperty() 89Bu::TafProperty *Bu::TafReader::readProperty()
90{ 90{
91 FString sName = readStr(); 91 String sName = readStr();
92 ws(); 92 ws();
93 if( c != '=' ) 93 if( c != '=' )
94 { 94 {
@@ -96,14 +96,14 @@ Bu::TafProperty *Bu::TafReader::readProperty()
96 return new Bu::TafProperty( "", sName ); 96 return new Bu::TafProperty( "", sName );
97 } 97 }
98 next(); 98 next();
99 FString sValue = readStr(); 99 String sValue = readStr();
100 return new Bu::TafProperty( sName, sValue ); 100 return new Bu::TafProperty( sName, sValue );
101 //printf(" %s = %s\n", sName.getStr(), sValue.getStr() ); 101 //printf(" %s = %s\n", sName.getStr(), sValue.getStr() );
102} 102}
103 103
104Bu::TafComment *Bu::TafReader::readComment( bool bEOL ) 104Bu::TafComment *Bu::TafReader::readComment( bool bEOL )
105{ 105{
106 FString sCmnt; 106 String sCmnt;
107 next(); 107 next();
108 if( bEOL ) 108 if( bEOL )
109 { 109 {
@@ -140,10 +140,10 @@ Bu::TafComment *Bu::TafReader::readComment( bool bEOL )
140 return new TafComment( sCmnt, bEOL ); 140 return new TafComment( sCmnt, bEOL );
141} 141}
142 142
143Bu::FString Bu::TafReader::readStr() 143Bu::String Bu::TafReader::readStr()
144{ 144{
145 ws(); 145 ws();
146 FString s; 146 String s;
147 if( c == '"' ) 147 if( c == '"' )
148 { 148 {
149 next(); 149 next();
diff --git a/src/tafreader.h b/src/tafreader.h
index d60f4d2..10ebfc0 100644
--- a/src/tafreader.h
+++ b/src/tafreader.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -9,7 +9,7 @@
9#define BU_TAF_READER_H 9#define BU_TAF_READER_H
10 10
11#include <stdint.h> 11#include <stdint.h>
12#include "bu/fstring.h" 12#include "bu/string.h"
13 13
14namespace Bu 14namespace Bu
15{ 15{
@@ -38,7 +38,7 @@ namespace Bu
38 void ws(); 38 void ws();
39 bool isws(); 39 bool isws();
40 void next(); 40 void next();
41 Bu::FString readStr(); 41 Bu::String readStr();
42 void rawread( char *c ); 42 void rawread( char *c );
43 char c, la; 43 char c, la;
44 Bu::Stream &sIn; 44 Bu::Stream &sIn;
diff --git a/src/tafwriter.cpp b/src/tafwriter.cpp
index 215cb68..b24bd1e 100644
--- a/src/tafwriter.cpp
+++ b/src/tafwriter.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -88,10 +88,10 @@ void Bu::TafWriter::writeComment( const Bu::TafComment *pComment )
88 } 88 }
89} 89}
90 90
91void Bu::TafWriter::writeString( const Bu::FString &str ) 91void Bu::TafWriter::writeString( const Bu::String &str )
92{ 92{
93 sOut.write("\"", 1 ); 93 sOut.write("\"", 1 );
94 for( Bu::FString::const_iterator s = str.begin(); s != str.end(); s++ ) 94 for( Bu::String::const_iterator s = str.begin(); s != str.end(); s++ )
95 { 95 {
96 if( *s == '\"' ) 96 if( *s == '\"' )
97 sOut.write("\\\"", 2 ); 97 sOut.write("\\\"", 2 );
diff --git a/src/tafwriter.h b/src/tafwriter.h
index 5b7bd74..3fd71de 100644
--- a/src/tafwriter.h
+++ b/src/tafwriter.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -10,7 +10,7 @@
10 10
11#include <stdint.h> 11#include <stdint.h>
12 12
13#include "bu/fstring.h" 13#include "bu/string.h"
14 14
15namespace Bu 15namespace Bu
16{ 16{
@@ -35,7 +35,7 @@ namespace Bu
35 private: 35 private:
36 void writeProperty( const Bu::TafProperty *pProp ); 36 void writeProperty( const Bu::TafProperty *pProp );
37 void writeComment( const Bu::TafComment *pComment ); 37 void writeComment( const Bu::TafComment *pComment );
38 void writeString( const Bu::FString &str ); 38 void writeString( const Bu::String &str );
39 void ident(); 39 void ident();
40 Bu::Stream &sOut; 40 Bu::Stream &sOut;
41 int iDepth; 41 int iDepth;
diff --git a/src/tcpserversocket.cpp b/src/tcpserversocket.cpp
index 7d7f6e4..a2fe6b4 100644
--- a/src/tcpserversocket.cpp
+++ b/src/tcpserversocket.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -48,7 +48,7 @@ Bu::TcpServerSocket::TcpServerSocket( int nPort, int nPoolSize ) :
48 startServer( name, nPoolSize ); 48 startServer( name, nPoolSize );
49} 49}
50 50
51Bu::TcpServerSocket::TcpServerSocket(const FString &sAddr,int nPort, int nPoolSize) : 51Bu::TcpServerSocket::TcpServerSocket(const String &sAddr,int nPort, int nPoolSize) :
52 nPort( nPort ) 52 nPort( nPort )
53{ 53{
54#ifdef WIN32 54#ifdef WIN32
diff --git a/src/tcpserversocket.h b/src/tcpserversocket.h
index b1d7e02..efb7287 100644
--- a/src/tcpserversocket.h
+++ b/src/tcpserversocket.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -9,7 +9,7 @@
9#define BU_TCP_SERVER_SOCKET_H 9#define BU_TCP_SERVER_SOCKET_H
10 10
11#include <stdint.h> 11#include <stdint.h>
12#include "bu/fstring.h" 12#include "bu/string.h"
13#include "bu/exceptionbase.h" 13#include "bu/exceptionbase.h"
14 14
15#ifdef WIN32 15#ifdef WIN32
@@ -38,7 +38,7 @@ namespace Bu
38 { 38 {
39 public: 39 public:
40 TcpServerSocket( int nPort, int nPoolSize=40 ); 40 TcpServerSocket( int nPort, int nPoolSize=40 );
41 TcpServerSocket( const FString &sAddr, int nPort, int nPoolSize=40 ); 41 TcpServerSocket( const String &sAddr, int nPort, int nPoolSize=40 );
42 TcpServerSocket( int nSocket, bool bInit, int nPoolSize=40 ); 42 TcpServerSocket( int nSocket, bool bInit, int nPoolSize=40 );
43 TcpServerSocket( const TcpServerSocket &rSrc ); 43 TcpServerSocket( const TcpServerSocket &rSrc );
44 virtual ~TcpServerSocket(); 44 virtual ~TcpServerSocket();
diff --git a/src/tcpsocket.cpp b/src/tcpsocket.cpp
index bbd9cf5..52dfc5c 100644
--- a/src/tcpsocket.cpp
+++ b/src/tcpsocket.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -42,7 +42,7 @@ Bu::TcpSocket::TcpSocket( int nTcpSocket ) :
42 setAddress(); 42 setAddress();
43} 43}
44 44
45Bu::TcpSocket::TcpSocket( const Bu::FString &sAddr, int nPort, int nTimeout, 45Bu::TcpSocket::TcpSocket( const Bu::String &sAddr, int nPort, int nTimeout,
46 bool bBlocking ) : 46 bool bBlocking ) :
47 nTcpSocket( 0 ), 47 nTcpSocket( 0 ),
48 bActive( false ), 48 bActive( false ),
@@ -149,7 +149,7 @@ void Bu::TcpSocket::close()
149 bActive = false; 149 bActive = false;
150} 150}
151 151
152size_t Bu::TcpSocket::read( void *pBuf, size_t nBytes ) 152Bu::size Bu::TcpSocket::read( void *pBuf, Bu::size nBytes )
153{ 153{
154 fd_set rfds; 154 fd_set rfds;
155 FD_ZERO(&rfds); 155 FD_ZERO(&rfds);
@@ -195,11 +195,11 @@ size_t Bu::TcpSocket::read( void *pBuf, size_t nBytes )
195 return 0; 195 return 0;
196} 196}
197 197
198size_t Bu::TcpSocket::read( void *pBuf, size_t nBytes, 198Bu::size Bu::TcpSocket::read( void *pBuf, Bu::size nBytes,
199 uint32_t nSec, uint32_t nUSec ) 199 uint32_t nSec, uint32_t nUSec )
200{ 200{
201 struct timeval tv; 201 struct timeval tv;
202 size_t nRead = 0; 202 Bu::size nRead = 0;
203 203
204 fd_set rfds; 204 fd_set rfds;
205 FD_ZERO(&rfds); 205 FD_ZERO(&rfds);
@@ -239,7 +239,7 @@ size_t Bu::TcpSocket::read( void *pBuf, size_t nBytes,
239 return nRead; 239 return nRead;
240} 240}
241 241
242size_t Bu::TcpSocket::write( const void *pBuf, size_t nBytes ) 242Bu::size Bu::TcpSocket::write( const void *pBuf, Bu::size nBytes )
243{ 243{
244//#ifdef WIN32 244//#ifdef WIN32
245 int nWrote = TEMP_FAILURE_RETRY( 245 int nWrote = TEMP_FAILURE_RETRY(
@@ -261,10 +261,10 @@ size_t Bu::TcpSocket::write( const void *pBuf, size_t nBytes )
261 return nWrote; 261 return nWrote;
262} 262}
263 263
264size_t Bu::TcpSocket::write( const void *pBuf, size_t nBytes, uint32_t nSec, uint32_t nUSec ) 264Bu::size Bu::TcpSocket::write( const void *pBuf, Bu::size nBytes, uint32_t nSec, uint32_t nUSec )
265{ 265{
266 struct timeval tv; 266 struct timeval tv;
267 size_t nWrote = 0; 267 Bu::size nWrote = 0;
268 268
269 fd_set wfds; 269 fd_set wfds;
270 FD_ZERO(&wfds); 270 FD_ZERO(&wfds);
@@ -304,22 +304,22 @@ size_t Bu::TcpSocket::write( const void *pBuf, size_t nBytes, uint32_t nSec, uin
304 return nWrote; 304 return nWrote;
305} 305}
306 306
307long Bu::TcpSocket::tell() 307Bu::size Bu::TcpSocket::tell()
308{ 308{
309 throw UnsupportedException(); 309 throw UnsupportedException();
310} 310}
311 311
312void Bu::TcpSocket::seek( long ) 312void Bu::TcpSocket::seek( Bu::size )
313{ 313{
314 throw UnsupportedException(); 314 throw UnsupportedException();
315} 315}
316 316
317void Bu::TcpSocket::setPos( long ) 317void Bu::TcpSocket::setPos( Bu::size )
318{ 318{
319 throw UnsupportedException(); 319 throw UnsupportedException();
320} 320}
321 321
322void Bu::TcpSocket::setPosEnd( long ) 322void Bu::TcpSocket::setPosEnd( Bu::size )
323{ 323{
324 throw UnsupportedException(); 324 throw UnsupportedException();
325} 325}
@@ -401,7 +401,7 @@ void Bu::TcpSocket::setBlocking( bool bBlocking )
401 fcntl( nTcpSocket, F_SETFL, fcntl( nTcpSocket, F_GETFL, 0 ) | O_NONBLOCK ); 401 fcntl( nTcpSocket, F_SETFL, fcntl( nTcpSocket, F_GETFL, 0 ) | O_NONBLOCK );
402 } 402 }
403#else 403#else
404 u_long iMode; 404 u_Bu::size iMode;
405 if( bBlocking ) 405 if( bBlocking )
406 iMode = 0; 406 iMode = 0;
407 else 407 else
@@ -416,7 +416,7 @@ void Bu::TcpSocket::setBlocking( bool bBlocking )
416#endif 416#endif
417} 417}
418 418
419void Bu::TcpSocket::setSize( long ) 419void Bu::TcpSocket::setSize( Bu::size )
420{ 420{
421} 421}
422 422
@@ -438,7 +438,7 @@ void Bu::TcpSocket::setAddress()
438 sAddress = bu_inet_ntoa( addr.sin_addr ); 438 sAddress = bu_inet_ntoa( addr.sin_addr );
439} 439}
440 440
441Bu::FString Bu::TcpSocket::getAddress() const 441Bu::String Bu::TcpSocket::getAddress() const
442{ 442{
443 return sAddress; 443 return sAddress;
444} 444}
@@ -448,3 +448,18 @@ Bu::TcpSocket::operator int() const
448 return nTcpSocket; 448 return nTcpSocket;
449} 449}
450 450
451Bu::size Bu::TcpSocket::getSize() const
452{
453 throw UnsupportedException();
454}
455
456Bu::size Bu::TcpSocket::getBlockSize() const
457{
458 return 1500; //TODO: Fix this, it's stupid.
459}
460
461Bu::String Bu::TcpSocket::getLocation() const
462{
463 return getAddress();
464}
465
diff --git a/src/tcpsocket.h b/src/tcpsocket.h
index ce15172..dbaaa5e 100644
--- a/src/tcpsocket.h
+++ b/src/tcpsocket.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -10,8 +10,9 @@
10 10
11#include <stdint.h> 11#include <stdint.h>
12 12
13#include "bu/config.h"
13#include "bu/stream.h" 14#include "bu/stream.h"
14#include "bu/fstring.h" 15#include "bu/string.h"
15#include "bu/exceptionbase.h" 16#include "bu/exceptionbase.h"
16 17
17namespace Bu 18namespace Bu
@@ -60,23 +61,23 @@ namespace Bu
60 { 61 {
61 public: 62 public:
62 TcpSocket( int nTcpSocket ); 63 TcpSocket( int nTcpSocket );
63 TcpSocket( const FString &sAddr, int nPort, int nTimeout=30, 64 TcpSocket( const String &sAddr, int nPort, int nTimeout=30,
64 bool bBlocking=true ); 65 bool bBlocking=true );
65 virtual ~TcpSocket(); 66 virtual ~TcpSocket();
66 67
67 virtual void close(); 68 virtual void close();
68 virtual size_t read( void *pBuf, size_t nBytes ); 69 virtual size read( void *pBuf, size nBytes );
69 virtual size_t read( void *pBuf, size_t nBytes, 70 virtual size read( void *pBuf, size nBytes,
70 uint32_t nSec, uint32_t nUSec=0 ); 71 uint32_t nSec, uint32_t nUSec=0 );
71 virtual size_t write( const void *pBuf, size_t nBytes ); 72 virtual size write( const void *pBuf, size nBytes );
72 virtual size_t write( const void *pBuf, size_t nBytes, 73 virtual size write( const void *pBuf, size nBytes,
73 uint32_t nSec, uint32_t nUSec=0 ); 74 uint32_t nSec, uint32_t nUSec=0 );
74 using Stream::write; 75 using Stream::write;
75 76
76 virtual long tell(); 77 virtual size tell();
77 virtual void seek( long offset ); 78 virtual void seek( size offset );
78 virtual void setPos( long pos ); 79 virtual void setPos( size pos );
79 virtual void setPosEnd( long pos ); 80 virtual void setPosEnd( size pos );
80 virtual bool isEos(); 81 virtual bool isEos();
81 virtual bool isOpen(); 82 virtual bool isOpen();
82 83
@@ -92,11 +93,15 @@ namespace Bu
92 virtual bool isBlocking(); 93 virtual bool isBlocking();
93 virtual void setBlocking( bool bBlocking=true ); 94 virtual void setBlocking( bool bBlocking=true );
94 95
95 virtual void setSize( long iSize ); 96 virtual void setSize( size iSize );
96 97
97 Bu::FString getAddress() const; 98 Bu::String getAddress() const;
98 operator int() const; 99 operator int() const;
99 100
101 virtual size getSize() const;
102 virtual size getBlockSize() const;
103 virtual Bu::String getLocation() const;
104
100 private: 105 private:
101 void setAddress(); 106 void setAddress();
102 107
@@ -107,8 +112,8 @@ namespace Bu
107#endif 112#endif
108 bool bActive; 113 bool bActive;
109 bool bBlocking; 114 bool bBlocking;
110 FString sReadBuf; 115 String sReadBuf;
111 FString sAddress; 116 String sAddress;
112 }; 117 };
113} 118}
114 119
diff --git a/src/tests/archive.cpp b/src/tests/archive.cpp
index 08e3b17..c905007 100644
--- a/src/tests/archive.cpp
+++ b/src/tests/archive.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -7,7 +7,7 @@
7 7
8#include "bu/archive.h" 8#include "bu/archive.h"
9#include "bu/file.h" 9#include "bu/file.h"
10#include "bu/fstring.h" 10#include "bu/string.h"
11 11
12using namespace Bu; 12using namespace Bu;
13 13
@@ -16,7 +16,7 @@ int main()
16 File f("test.dat", File::WriteNew ); 16 File f("test.dat", File::WriteNew );
17 Archive ar( f, Archive::save ); 17 Archive ar( f, Archive::save );
18 18
19 Bu::FString s("Hello there"); 19 Bu::String s("Hello there");
20 ar << s; 20 ar << s;
21 21
22 ar.setProp("hi", 45 ); 22 ar.setProp("hi", 45 );
diff --git a/src/tests/archive2.cpp b/src/tests/archive2.cpp
index 75db442..e8d3360 100644
--- a/src/tests/archive2.cpp
+++ b/src/tests/archive2.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/atom.cpp b/src/tests/atom.cpp
index 7784a9e..7808282 100644
--- a/src/tests/atom.cpp
+++ b/src/tests/atom.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/base64.cpp b/src/tests/base64.cpp
index 483199c..413ff92 100644
--- a/src/tests/base64.cpp
+++ b/src/tests/base64.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/buffer.cpp b/src/tests/buffer.cpp
index a12223a..f3f6f41 100644
--- a/src/tests/buffer.cpp
+++ b/src/tests/buffer.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/bzip2.cpp b/src/tests/bzip2.cpp
index f869939..603e937 100644
--- a/src/tests/bzip2.cpp
+++ b/src/tests/bzip2.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/cache.cpp b/src/tests/cache.cpp
index 7fe660a..243012d 100644
--- a/src/tests/cache.cpp
+++ b/src/tests/cache.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -14,7 +14,7 @@
14 14
15#include "bu/cache.h" 15#include "bu/cache.h"
16#include "bu/file.h" 16#include "bu/file.h"
17#include "bu/fstring.h" 17#include "bu/string.h"
18#include "bu/cachecalc.h" 18#include "bu/cachecalc.h"
19 19
20class Bob 20class Bob
@@ -90,7 +90,7 @@ public:
90 writeNum("bobcache/last", cLastId ); 90 writeNum("bobcache/last", cLastId );
91 } 91 }
92 92
93 long readNum( const Bu::FString &sFile ) 93 long readNum( const Bu::String &sFile )
94 { 94 {
95 TRACE( sFile ); 95 TRACE( sFile );
96 Bu::File f( sFile, Bu::File::Read ); 96 Bu::File f( sFile, Bu::File::Read );
@@ -99,13 +99,13 @@ public:
99 return strtol( buf, NULL, 0 ); 99 return strtol( buf, NULL, 0 );
100 } 100 }
101 101
102 void writeNum( const Bu::FString &sFile, long num ) 102 void writeNum( const Bu::String &sFile, long num )
103 { 103 {
104 TRACE( sFile, num ); 104 TRACE( sFile, num );
105 Bu::File f( sFile, 105 Bu::File f( sFile,
106 Bu::File::Write|Bu::File::Create|Bu::File::Truncate 106 Bu::File::Write|Bu::File::Create|Bu::File::Truncate
107 ); 107 );
108 Bu::FString s; 108 Bu::String s;
109 s.format("%d", num ); 109 s.format("%d", num );
110 f.write( s ); 110 f.write( s );
111 } 111 }
@@ -126,7 +126,7 @@ public:
126 virtual Bob *load( const long &key ) 126 virtual Bob *load( const long &key )
127 { 127 {
128 TRACE( key ); 128 TRACE( key );
129 Bu::FString sDest; 129 Bu::String sDest;
130 sDest.format("bobcache/%d", key ); 130 sDest.format("bobcache/%d", key );
131 return new Bob( readNum( sDest ) ); 131 return new Bob( readNum( sDest ) );
132 } 132 }
@@ -134,7 +134,7 @@ public:
134 virtual void unload( Bob *pObj, const long &key ) 134 virtual void unload( Bob *pObj, const long &key )
135 { 135 {
136 TRACE( pObj, key ); 136 TRACE( pObj, key );
137 Bu::FString sDest; 137 Bu::String sDest;
138 sDest.format("bobcache/%d", key ); 138 sDest.format("bobcache/%d", key );
139 writeNum( sDest, pObj->getInt() ); 139 writeNum( sDest, pObj->getInt() );
140 delete pObj; 140 delete pObj;
@@ -144,7 +144,7 @@ public:
144 { 144 {
145 TRACE( rSrc ); 145 TRACE( rSrc );
146 long id = ++cLastId; 146 long id = ++cLastId;
147 Bu::FString sDest; 147 Bu::String sDest;
148 sDest.format("bobcache/%d", id ); 148 sDest.format("bobcache/%d", id );
149 writeNum( sDest, rSrc->getInt() ); 149 writeNum( sDest, rSrc->getInt() );
150 return id; 150 return id;
@@ -153,7 +153,7 @@ public:
153 virtual void destroy( Bob *pObj, const long &key ) 153 virtual void destroy( Bob *pObj, const long &key )
154 { 154 {
155 TRACE( pObj, key ); 155 TRACE( pObj, key );
156 Bu::FString sDest; 156 Bu::String sDest;
157 sDest.format("bobcache/%d", key ); 157 sDest.format("bobcache/%d", key );
158 if( !access( sDest.getStr(), F_OK ) ) 158 if( !access( sDest.getStr(), F_OK ) )
159 unlink( sDest.getStr() ); 159 unlink( sDest.getStr() );
@@ -163,7 +163,7 @@ public:
163 virtual void destroy( const long &key ) 163 virtual void destroy( const long &key )
164 { 164 {
165 TRACE( pObj, key ); 165 TRACE( pObj, key );
166 Bu::FString sDest; 166 Bu::String sDest;
167 sDest.format("bobcache/%d", key ); 167 sDest.format("bobcache/%d", key );
168 if( !access( sDest.getStr(), F_OK ) ) 168 if( !access( sDest.getStr(), F_OK ) )
169 unlink( sDest.getStr() ); 169 unlink( sDest.getStr() );
diff --git a/src/tests/console.cpp b/src/tests/console.cpp
index 8d2f469..670ff5b 100644
--- a/src/tests/console.cpp
+++ b/src/tests/console.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/cryptpass.cpp b/src/tests/cryptpass.cpp
index f9abef6..d272344 100644
--- a/src/tests/cryptpass.cpp
+++ b/src/tests/cryptpass.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/csv.cpp b/src/tests/csv.cpp
index e5efcfb..850fda8 100644
--- a/src/tests/csv.cpp
+++ b/src/tests/csv.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/daysinmonth.cpp b/src/tests/daysinmonth.cpp
index e0aafc6..1e78eb3 100644
--- a/src/tests/daysinmonth.cpp
+++ b/src/tests/daysinmonth.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/fastcgi.cpp b/src/tests/fastcgi.cpp
index a3fa675..7ca4ebc 100644
--- a/src/tests/fastcgi.cpp
+++ b/src/tests/fastcgi.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -27,10 +27,10 @@ public:
27 } 27 }
28 28
29 virtual int onRequest( const StrHash &hParams, 29 virtual int onRequest( const StrHash &hParams,
30 const Bu::FString &sStdIn, Bu::Stream &sStdOut, 30 const Bu::String &sStdIn, Bu::Stream &sStdOut,
31 Bu::Stream &/*sStdErr*/ ) 31 Bu::Stream &/*sStdErr*/ )
32 { 32 {
33 Bu::FString sOut("Content-Type: text/html\r\n\r\n"); 33 Bu::String sOut("Content-Type: text/html\r\n\r\n");
34 sOut += "<html><body><h1>Environment:</h1><ul>"; 34 sOut += "<html><body><h1>Environment:</h1><ul>";
35 for( StrHash::const_iterator i = hParams.begin(); i; i++ ) 35 for( StrHash::const_iterator i = hParams.begin(); i; i++ )
36 { 36 {
@@ -44,8 +44,8 @@ public:
44 sOut += "</li></ul>"; 44 sOut += "</li></ul>";
45 sOut += "<h1>Stdin:</h1>"; 45 sOut += "<h1>Stdin:</h1>";
46 sOut.formatAppend("%d bytes<pre>", sStdIn.getSize() ); 46 sOut.formatAppend("%d bytes<pre>", sStdIn.getSize() );
47 Bu::FString sL, sR; 47 Bu::String sL, sR;
48 for( Bu::FString::const_iterator i = sStdIn.begin(); 48 for( Bu::String::const_iterator i = sStdIn.begin();
49 i; i++ ) 49 i; i++ )
50 { 50 {
51 sL.formatAppend("%02X ", 51 sL.formatAppend("%02X ",
diff --git a/src/tests/formula.cpp b/src/tests/formula.cpp
index b9c4446..a90ddaf 100644
--- a/src/tests/formula.cpp
+++ b/src/tests/formula.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/fstratsptr.cpp b/src/tests/fstratsptr.cpp
index 2303d6a..5053dd1 100644
--- a/src/tests/fstratsptr.cpp
+++ b/src/tests/fstratsptr.cpp
@@ -1,11 +1,11 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
6 */ 6 */
7 7
8#include "bu/fstring.h" 8#include "bu/string.h"
9#include "bu/atom.h" 9#include "bu/atom.h"
10#include "bu/sptr.h" 10#include "bu/sptr.h"
11 11
@@ -15,8 +15,8 @@ public:
15 Person(){}; 15 Person(){};
16 virtual ~Person(){}; 16 virtual ~Person(){};
17 17
18 Bu::Atom<Bu::FString> sFirstName; 18 Bu::Atom<Bu::String> sFirstName;
19 Bu::Atom<Bu::FString> sLastName; 19 Bu::Atom<Bu::String> sLastName;
20}; 20};
21 21
22typedef Bu::SPtr<Person> PersonPtr; 22typedef Bu::SPtr<Person> PersonPtr;
@@ -45,7 +45,7 @@ int main()
45 Swap(one, two); 45 Swap(one, two);
46*/ 46*/
47 47
48 Bu::Atom<Bu::FString> sOne, sTwo; 48 Bu::Atom<Bu::String> sOne, sTwo;
49 sOne = "Hello"; 49 sOne = "Hello";
50 sTwo = sOne; 50 sTwo = sOne;
51 51
diff --git a/src/tests/fstrformat.cpp b/src/tests/fstrformat.cpp
index a8e9def..a911a8f 100644
--- a/src/tests/fstrformat.cpp
+++ b/src/tests/fstrformat.cpp
@@ -1,16 +1,16 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
6 */ 6 */
7 7
8#include "bu/fstring.h" 8#include "bu/string.h"
9#include <stdio.h> 9#include <stdio.h>
10 10
11int main() 11int main()
12{ 12{
13 Bu::FString s; 13 Bu::String s;
14 14
15 s.format("%d, %f, \'%s\'", 144, 12.5, "bob" ); 15 s.format("%d, %f, \'%s\'", 144, 12.5, "bob" );
16 16
diff --git a/src/tests/fstrstd.cpp b/src/tests/fstrstd.cpp
index 86d7c5c..b2fed8a 100644
--- a/src/tests/fstrstd.cpp
+++ b/src/tests/fstrstd.cpp
@@ -1,16 +1,16 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
6 */ 6 */
7 7
8#include <iostream> 8#include <iostream>
9#include "bu/fstring.h" 9#include "bu/string.h"
10 10
11int main() 11int main()
12{ 12{
13 Bu::FString s("Hey there, dude.\n"); 13 Bu::String s("Hey there, dude.\n");
14 14
15// std::cout << s << 5; 15// std::cout << s << 5;
16} 16}
diff --git a/src/tests/hash.cpp b/src/tests/hash.cpp
index 5bd70f6..7cefb79 100644
--- a/src/tests/hash.cpp
+++ b/src/tests/hash.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/hash2.cpp b/src/tests/hash2.cpp
index 4db248e..55bb4c9 100644
--- a/src/tests/hash2.cpp
+++ b/src/tests/hash2.cpp
@@ -1,16 +1,16 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
6 */ 6 */
7 7
8#include <bu/fstring.h> 8#include <bu/string.h>
9#include <bu/hash.h> 9#include <bu/hash.h>
10 10
11int main() 11int main()
12{ 12{
13 Bu::Hash<Bu::FString, int> hCmd; 13 Bu::Hash<Bu::String, int> hCmd;
14 14
15 hCmd.insert("help", 5 ); 15 hCmd.insert("help", 5 );
16 hCmd.insert("exit", 5 ); 16 hCmd.insert("exit", 5 );
diff --git a/src/tests/heap.cpp b/src/tests/heap.cpp
index 7538936..14da55a 100644
--- a/src/tests/heap.cpp
+++ b/src/tests/heap.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -10,7 +10,7 @@
10 10
11#include "bu/formatter.h" 11#include "bu/formatter.h"
12#include "bu/heap.h" 12#include "bu/heap.h"
13#include "bu/fstring.h" 13#include "bu/string.h"
14#include "bu/file.h" 14#include "bu/file.h"
15 15
16typedef struct num 16typedef struct num
@@ -38,15 +38,15 @@ typedef struct num
38 } 38 }
39} num; 39} num;
40 40
41void printHeap( Bu::Heap<Bu::FString> &h, int j ) 41void printHeap( Bu::Heap<Bu::String> &h, int j )
42{ 42{
43// return; 43// return;
44 Bu::FString sFName; 44 Bu::String sFName;
45 sFName.format("graph-step-%02d.dot", j ); 45 sFName.format("graph-step-%02d.dot", j );
46 Bu::File fOut( sFName, Bu::File::WriteNew ); 46 Bu::File fOut( sFName, Bu::File::WriteNew );
47 Bu::Formatter f( fOut ); 47 Bu::Formatter f( fOut );
48 f << "Graph step: " << j << ", total size: " << h.getSize() << f.nl; 48 f << "Graph step: " << j << ", total size: " << h.getSize() << f.nl;
49 for( Bu::Heap<Bu::FString>::iterator i = h.begin(); i; i++ ) 49 for( Bu::Heap<Bu::String>::iterator i = h.begin(); i; i++ )
50 { 50 {
51 f << *i << f.nl; 51 f << *i << f.nl;
52 } 52 }
@@ -73,7 +73,7 @@ int main()
73 } 73 }
74 printf("\n"); 74 printf("\n");
75*/ 75*/
76 Bu::Heap<Bu::FString> hStr; 76 Bu::Heap<Bu::String> hStr;
77 int j = 0; 77 int j = 0;
78 78
79 hStr.enqueue("George"); 79 hStr.enqueue("George");
@@ -100,7 +100,7 @@ int main()
100 } 100 }
101 printf("\n"); 101 printf("\n");
102 102
103 Bu::List<Bu::FString> lStr; 103 Bu::List<Bu::String> lStr;
104 104
105 lStr.insertSorted("George"); 105 lStr.insertSorted("George");
106 lStr.insertSorted("George"); 106 lStr.insertSorted("George");
@@ -110,7 +110,7 @@ int main()
110 lStr.insertSorted("Brianna"); 110 lStr.insertSorted("Brianna");
111 lStr.insertSorted("Kate"); 111 lStr.insertSorted("Kate");
112 lStr.insertSorted("Soggy"); 112 lStr.insertSorted("Soggy");
113 for( Bu::List<Bu::FString>::iterator i = lStr.begin(); i; i++ ) 113 for( Bu::List<Bu::String>::iterator i = lStr.begin(); i; i++ )
114 { 114 {
115 printf("\"%s\" ", (*i).getStr() ); 115 printf("\"%s\" ", (*i).getStr() );
116 } 116 }
diff --git a/src/tests/itoheap.cpp b/src/tests/itoheap.cpp
index 347f1e0..ec06b90 100644
--- a/src/tests/itoheap.cpp
+++ b/src/tests/itoheap.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/itoqueue1.cpp b/src/tests/itoqueue1.cpp
index 11dbb49..27cb93c 100644
--- a/src/tests/itoqueue1.cpp
+++ b/src/tests/itoqueue1.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/itoqueue2.cpp b/src/tests/itoqueue2.cpp
index 5283854..10bc566 100644
--- a/src/tests/itoqueue2.cpp
+++ b/src/tests/itoqueue2.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/itoserver.cpp b/src/tests/itoserver.cpp
index 5f6e4fa..48ef527 100644
--- a/src/tests/itoserver.cpp
+++ b/src/tests/itoserver.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/list.cpp b/src/tests/list.cpp
index c70fbc8..aa3d32d 100644
--- a/src/tests/list.cpp
+++ b/src/tests/list.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/list2.cpp b/src/tests/list2.cpp
index dc936d3..567370e 100644
--- a/src/tests/list2.cpp
+++ b/src/tests/list2.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/listsort.cpp b/src/tests/listsort.cpp
index 60d9611..4873a05 100644
--- a/src/tests/listsort.cpp
+++ b/src/tests/listsort.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -7,7 +7,7 @@
7 7
8#include <bu/list.h> 8#include <bu/list.h>
9#include <bu/sio.h> 9#include <bu/sio.h>
10#include <bu/fstring.h> 10#include <bu/string.h>
11 11
12using namespace Bu; 12using namespace Bu;
13 13
@@ -25,7 +25,7 @@ int main()
25 il.sortI( cmp ); 25 il.sortI( cmp );
26 */ 26 */
27 27
28 FString a("Soggy"), b("Sam"); 28 String a("Soggy"), b("Sam");
29 29
30 if( a < b ) 30 if( a < b )
31 { 31 {
@@ -36,7 +36,7 @@ int main()
36 sio << "Good" << sio.nl; 36 sio << "Good" << sio.nl;
37 } 37 }
38 38
39 typedef List<FString> StrList; 39 typedef List<String> StrList;
40 40
41 StrList lNames; 41 StrList lNames;
42 42
diff --git a/src/tests/logger.cpp b/src/tests/logger.cpp
index e9043db..e97193c 100644
--- a/src/tests/logger.cpp
+++ b/src/tests/logger.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/md5.cpp b/src/tests/md5.cpp
index 368b033..a32f669 100644
--- a/src/tests/md5.cpp
+++ b/src/tests/md5.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/minicron.cpp b/src/tests/minicron.cpp
index 0749f90..aed63e2 100644
--- a/src/tests/minicron.cpp
+++ b/src/tests/minicron.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/mmparse.cpp b/src/tests/mmparse.cpp
index b2c3bf5..c1ce862 100644
--- a/src/tests/mmparse.cpp
+++ b/src/tests/mmparse.cpp
@@ -1,12 +1,12 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
6 */ 6 */
7 7
8#include "bu/minimacro.h" 8#include "bu/minimacro.h"
9#include "bu/fstring.h" 9#include "bu/string.h"
10 10
11int main() 11int main()
12{ 12{
diff --git a/src/tests/multiserver.cpp b/src/tests/multiserver.cpp
index 85971b5..12f4681 100644
--- a/src/tests/multiserver.cpp
+++ b/src/tests/multiserver.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/optparser.cpp b/src/tests/optparser.cpp
index f5d1512..aadb07c 100644
--- a/src/tests/optparser.cpp
+++ b/src/tests/optparser.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -72,7 +72,7 @@ public:
72 72
73 int iBob; 73 int iBob;
74 float dBob; 74 float dBob;
75 Bu::FString sVar; 75 Bu::String sVar;
76}; 76};
77 77
78int main( int argc, char *argv[] ) 78int main( int argc, char *argv[] )
diff --git a/src/tests/procs.cpp b/src/tests/procs.cpp
index bb5ff96..94d2cc5 100644
--- a/src/tests/procs.cpp
+++ b/src/tests/procs.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/queuebuf.cpp b/src/tests/queuebuf.cpp
index 0cb8b48..f872738 100644
--- a/src/tests/queuebuf.cpp
+++ b/src/tests/queuebuf.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/regex.cpp b/src/tests/regex.cpp
index 0a33a93..376fbb2 100644
--- a/src/tests/regex.cpp
+++ b/src/tests/regex.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/ringbuffer.cpp b/src/tests/ringbuffer.cpp
index 003d7be..da5126c 100644
--- a/src/tests/ringbuffer.cpp
+++ b/src/tests/ringbuffer.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/rot13.cpp b/src/tests/rot13.cpp
index 03ba385..1530af3 100644
--- a/src/tests/rot13.cpp
+++ b/src/tests/rot13.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -28,21 +28,21 @@ public:
28 { 28 {
29 } 29 }
30 30
31 virtual size_t stop() 31 virtual Bu::size stop()
32 { 32 {
33 return 0; 33 return 0;
34 } 34 }
35 35
36 virtual size_t read( void *pBuf, size_t nBytes ) 36 virtual Bu::size read( void *pBuf, Bu::size nBytes )
37 { 37 {
38 return rNext.read( pBuf, nBytes ); 38 return rNext.read( pBuf, nBytes );
39 } 39 }
40 40
41 virtual size_t write( const void *pBuf, size_t nBytes ) 41 virtual Bu::size write( const void *pBuf, Bu::size nBytes )
42 { 42 {
43 const char *cBuf = (const char *)pBuf; 43 const char *cBuf = (const char *)pBuf;
44 char *buf = new char[nBytes]; 44 char *buf = new char[nBytes];
45 for( size_t j = 0; j < nBytes; j++ ) 45 for( Bu::size j = 0; j < nBytes; j++ )
46 { 46 {
47 if( cBuf[j] >= 'a' && cBuf[j] <= 'z' ) 47 if( cBuf[j] >= 'a' && cBuf[j] <= 'z' )
48 buf[j] = (cBuf[j]-'a'+13)%26+'a'; 48 buf[j] = (cBuf[j]-'a'+13)%26+'a';
diff --git a/src/tests/serverticks.cpp b/src/tests/serverticks.cpp
index bffa363..3872a16 100644
--- a/src/tests/serverticks.cpp
+++ b/src/tests/serverticks.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/sha1.cpp b/src/tests/sha1.cpp
index b1c798a..ac795e7 100644
--- a/src/tests/sha1.cpp
+++ b/src/tests/sha1.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -28,8 +28,8 @@ int main( int argc, char *argv[] )
28 break; 28 break;
29 } 29 }
30 30
31 Bu::FString sRes = m.getResult(); 31 Bu::String sRes = m.getResult();
32 for( Bu::FString::iterator i = sRes.begin(); i; i++ ) 32 for( Bu::String::iterator i = sRes.begin(); i; i++ )
33 { 33 {
34 sio << Fmt::hex(2,false) << (int)(unsigned char)(*i); 34 sio << Fmt::hex(2,false) << (int)(unsigned char)(*i);
35 } 35 }
diff --git a/src/tests/sharedcore.cpp b/src/tests/sharedcore.cpp
index 9b0a0ec..c68f07b 100644
--- a/src/tests/sharedcore.cpp
+++ b/src/tests/sharedcore.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/signals.cpp b/src/tests/signals.cpp
index e53c16e..14bbc9c 100644
--- a/src/tests/signals.cpp
+++ b/src/tests/signals.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -32,22 +32,22 @@ public:
32 sio << iState << ": void fnc1( " << a << " )" << sio.nl; 32 sio << iState << ": void fnc1( " << a << " )" << sio.nl;
33 } 33 }
34 34
35 void fnc2( int a, Bu::FString b ) 35 void fnc2( int a, Bu::String b )
36 { 36 {
37 sio << iState << ": void fnc2( " << a << ", \"" << b << "\" )" << sio.nl; 37 sio << iState << ": void fnc2( " << a << ", \"" << b << "\" )" << sio.nl;
38 } 38 }
39 39
40 void fnc3( int a, Bu::FString b, double c ) 40 void fnc3( int a, Bu::String b, double c )
41 { 41 {
42 sio << iState << ": void fnc3( " << a << ", \"" << b << "\", " << c << " )" << sio.nl; 42 sio << iState << ": void fnc3( " << a << ", \"" << b << "\", " << c << " )" << sio.nl;
43 } 43 }
44 44
45 void fnc4( int a, Bu::FString b, double c, char d ) 45 void fnc4( int a, Bu::String b, double c, char d )
46 { 46 {
47 sio << iState << ": void fnc4( " << a << ", \"" << b << "\", " << c << ", '" << d << "' )" << sio.nl; 47 sio << iState << ": void fnc4( " << a << ", \"" << b << "\", " << c << ", '" << d << "' )" << sio.nl;
48 } 48 }
49 49
50 void fnc5( int a, Bu::FString b, double c, char d, long e ) 50 void fnc5( int a, Bu::String b, double c, char d, long e )
51 { 51 {
52 sio << iState << ": void fnc5( " << a << ", \"" << b << "\", " << c << ", '" << d << "', " << e << " )" << sio.nl; 52 sio << iState << ": void fnc5( " << a << ", \"" << b << "\", " << c << ", '" << d << "', " << e << " )" << sio.nl;
53 } 53 }
@@ -66,22 +66,22 @@ void pfnc1( int a )
66 sio << ": void pfnc1( " << a << " )" << sio.nl; 66 sio << ": void pfnc1( " << a << " )" << sio.nl;
67} 67}
68 68
69void pfnc2( int a, Bu::FString b ) 69void pfnc2( int a, Bu::String b )
70{ 70{
71 sio << ": void pfnc2( " << a << ", \"" << b << "\" )" << sio.nl; 71 sio << ": void pfnc2( " << a << ", \"" << b << "\" )" << sio.nl;
72} 72}
73 73
74void pfnc3( int a, Bu::FString b, double c ) 74void pfnc3( int a, Bu::String b, double c )
75{ 75{
76 sio << ": void pfnc3( " << a << ", \"" << b << "\", " << c << " )" << sio.nl; 76 sio << ": void pfnc3( " << a << ", \"" << b << "\", " << c << " )" << sio.nl;
77} 77}
78 78
79void pfnc4( int a, Bu::FString b, double c, char d ) 79void pfnc4( int a, Bu::String b, double c, char d )
80{ 80{
81 sio << ": void pfnc4( " << a << ", \"" << b << "\", " << c << ", '" << d << "' )" << sio.nl; 81 sio << ": void pfnc4( " << a << ", \"" << b << "\", " << c << ", '" << d << "' )" << sio.nl;
82} 82}
83 83
84void pfnc5( int a, Bu::FString b, double c, char d, long e ) 84void pfnc5( int a, Bu::String b, double c, char d, long e )
85{ 85{
86 sio << ": void pfnc5( " << a << ", \"" << b << "\", " << c << ", '" << d << "', " << e << " )" << sio.nl; 86 sio << ": void pfnc5( " << a << ", \"" << b << "\", " << c << ", '" << d << "', " << e << " )" << sio.nl;
87} 87}
@@ -105,22 +105,22 @@ int main()
105 cb1 = slot( &pfnc1 ); 105 cb1 = slot( &pfnc1 );
106 cb1( 5 ); 106 cb1( 5 );
107 107
108 Signal2<void, int, Bu::FString> cb2( slot( &t, &Thing::fnc2 ) ); 108 Signal2<void, int, Bu::String> cb2( slot( &t, &Thing::fnc2 ) );
109 cb2( 5, "Hi there" ); 109 cb2( 5, "Hi there" );
110 cb2 = slot( &pfnc2 ); 110 cb2 = slot( &pfnc2 );
111 cb2( 5, "Hi there" ); 111 cb2( 5, "Hi there" );
112 112
113 Signal3<void, int, Bu::FString, double> cb3( slot( &t, &Thing::fnc3 ) ); 113 Signal3<void, int, Bu::String, double> cb3( slot( &t, &Thing::fnc3 ) );
114 cb3( 5, "Hi there", 12.85 ); 114 cb3( 5, "Hi there", 12.85 );
115 cb3 = slot( &pfnc3 ); 115 cb3 = slot( &pfnc3 );
116 cb3( 5, "Hi there", 12.85 ); 116 cb3( 5, "Hi there", 12.85 );
117 117
118 Signal4<void, int, Bu::FString, double, char> cb4( slot( &t, &Thing::fnc4 ) ); 118 Signal4<void, int, Bu::String, double, char> cb4( slot( &t, &Thing::fnc4 ) );
119 cb4( 5, "Hi there", 12.85, 'z' ); 119 cb4( 5, "Hi there", 12.85, 'z' );
120 cb4 = slot( &pfnc4 ); 120 cb4 = slot( &pfnc4 );
121 cb4( 5, "Hi there", 12.85, 'z' ); 121 cb4( 5, "Hi there", 12.85, 'z' );
122 122
123 Signal5<void, int, Bu::FString, double, char, long> cb5( slot( &t, &Thing::fnc5 ) ); 123 Signal5<void, int, Bu::String, double, char, long> cb5( slot( &t, &Thing::fnc5 ) );
124 cb5( 5, "Hi there", 12.85, 'z', 849 ); 124 cb5( 5, "Hi there", 12.85, 'z', 849 );
125 cb5 = slot( &pfnc5 ); 125 cb5 = slot( &pfnc5 );
126 cb5( 5, "Hi there", 12.85, 'z', 849 ); 126 cb5( 5, "Hi there", 12.85, 'z', 849 );
diff --git a/src/tests/size.cpp b/src/tests/size.cpp
index a9a921d..dfad16f 100644
--- a/src/tests/size.cpp
+++ b/src/tests/size.cpp
@@ -1,20 +1,20 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
6 */ 6 */
7 7
8#include "bu/hash.h" 8#include "bu/hash.h"
9#include "bu/fstring.h" 9#include "bu/string.h"
10 10
11#define pSize( t ) printf("%15s: %db\n", #t, sizeof( t ) ); 11#define pSize( t ) printf("%15s: %db\n", #t, sizeof( t ) );
12 12
13int main() 13int main()
14{ 14{
15 typedef Bu::Hash<char, char> charcharHash; 15 typedef Bu::Hash<char, char> charcharHash;
16 typedef Bu::Hash<Bu::FString, Bu::FString> strstrHash; 16 typedef Bu::Hash<Bu::String, Bu::String> strstrHash;
17 pSize( Bu::FString ); 17 pSize( Bu::String );
18 pSize( charcharHash ); 18 pSize( charcharHash );
19 pSize( strstrHash ); 19 pSize( strstrHash );
20} 20}
diff --git a/src/tests/socketblock.cpp b/src/tests/socketblock.cpp
index 793ef96..e36bb33 100644
--- a/src/tests/socketblock.cpp
+++ b/src/tests/socketblock.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/socketbreak.cpp b/src/tests/socketbreak.cpp
index 7d3c71a..d58ebcf 100644
--- a/src/tests/socketbreak.cpp
+++ b/src/tests/socketbreak.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -26,9 +26,9 @@ int main()
26 26
27 char buf[3]; 27 char buf[3];
28 printf("About to write.\n"); 28 printf("About to write.\n");
29 printf("write: %d\n", sSend.write("hi", 2 ) ); 29 printf("write: %lld\n", sSend.write("hi", 2 ) );
30 printf("About to read.\n"); 30 printf("About to read.\n");
31 printf("read: %d\n", sSend.read( buf, 2 ) ); 31 printf("read: %lld\n", sSend.read( buf, 2 ) );
32 32
33 return 0; 33 return 0;
34} 34}
diff --git a/src/tests/speed.cpp b/src/tests/speed.cpp
index c6770de..2fa29aa 100644
--- a/src/tests/speed.cpp
+++ b/src/tests/speed.cpp
@@ -1,11 +1,11 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
6 */ 6 */
7 7
8#include "bu/fstring.h" 8#include "bu/string.h"
9#include <sys/time.h> 9#include <sys/time.h>
10 10
11template<typename a> 11template<typename a>
@@ -50,9 +50,9 @@ void fullTest( tst t )
50 50
51int main() 51int main()
52{ 52{
53 Bu::FString str; 53 Bu::String str;
54 for( int j = 0; j < 500; j++ ) 54 for( int j = 0; j < 500; j++ )
55 str.append("Hey, this is a test string. It will be reapeated many, many times. How's that?"); 55 str.append("Hey, this is a test string. It will be reapeated many, many times. How's that?");
56 fullTest( tstCopy<Bu::FString>( str ) ); 56 fullTest( tstCopy<Bu::String>( str ) );
57} 57}
58 58
diff --git a/src/tests/stdstream.cpp b/src/tests/stdstream.cpp
index e1f04f5..95df42e 100644
--- a/src/tests/stdstream.cpp
+++ b/src/tests/stdstream.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/streamstack.cpp b/src/tests/streamstack.cpp
index b8c48e7..4a0e128 100644
--- a/src/tests/streamstack.cpp
+++ b/src/tests/streamstack.cpp
@@ -1,3 +1,10 @@
1/*
2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 *
4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE.
6 */
7
1#include "bu/streamstack.h" 8#include "bu/streamstack.h"
2 9
3#include "bu/file.h" 10#include "bu/file.h"
@@ -24,7 +31,7 @@ public:
24 31
25 void write() 32 void write()
26 { 33 {
27 Bu::FString s; 34 Bu::String s;
28 time_t tNow = time( NULL ); 35 time_t tNow = time( NULL );
29 s = ctime( &tNow ); 36 s = ctime( &tNow );
30 long lSize = s.getSize()-1; 37 long lSize = s.getSize()-1;
@@ -34,7 +41,7 @@ public:
34 41
35 void read() 42 void read()
36 { 43 {
37 Bu::FString s; 44 Bu::String s;
38 long lSize; 45 long lSize;
39 rStream.read( &lSize, sizeof(long) ); 46 rStream.read( &lSize, sizeof(long) );
40 s.setSize( lSize ); 47 s.setSize( lSize );
diff --git a/src/tests/fstring.cpp b/src/tests/string.cpp
index c343172..12ce8a8 100644
--- a/src/tests/fstring.cpp
+++ b/src/tests/string.cpp
@@ -1,12 +1,12 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
6 */ 6 */
7 7
8#include "bu/hash.h" 8#include "bu/hash.h"
9#include "bu/fstring.h" 9#include "bu/string.h"
10#include <sys/time.h> 10#include <sys/time.h>
11#include <string> 11#include <string>
12 12
@@ -27,9 +27,9 @@ inline double getTime()
27} 27}
28#endif 28#endif
29 29
30Bu::FString genThing() 30Bu::String genThing()
31{ 31{
32 Bu::FString bob; 32 Bu::String bob;
33 bob.append("ab "); 33 bob.append("ab ");
34 bob += "cd "; 34 bob += "cd ";
35 bob += "efg"; 35 bob += "efg";
@@ -39,7 +39,7 @@ Bu::FString genThing()
39 return bob; 39 return bob;
40} 40}
41 41
42void thing( Bu::FString str ) 42void thing( Bu::String str )
43{ 43{
44 printf("Hey: %s\n", str.getStr() ); 44 printf("Hey: %s\n", str.getStr() );
45} 45}
@@ -49,21 +49,21 @@ void copyfunc( std::string temp )
49 temp += "Hi"; 49 temp += "Hi";
50} 50}
51 51
52void copyfunc( Bu::FString temp ) 52void copyfunc( Bu::String temp )
53{ 53{
54 temp += "Hi"; 54 temp += "Hi";
55} 55}
56 56
57void doTimings() 57void doTimings()
58{ 58{
59 Bu::FString fs1, fs2; 59 Bu::String fs1, fs2;
60 std::string ss1, ss2; 60 std::string ss1, ss2;
61 double dStart, dEnd, tfs1, tfs2, tfs3, tss1, tss2, tss3; 61 double dStart, dEnd, tfs1, tfs2, tfs3, tss1, tss2, tss3;
62 int nChars = 500000, nChunks=5000, nCopies=5000000, nChunkSize=1024*4; 62 int nChars = 500000, nChunks=5000, nCopies=5000000, nChunkSize=1024*4;
63 char *buf = new char[nChunkSize]; 63 char *buf = new char[nChunkSize];
64 memset( buf, '!', nChunkSize ); 64 memset( buf, '!', nChunkSize );
65 65
66 printf("Timing Bu::FString single chars...\n"); 66 printf("Timing Bu::String single chars...\n");
67 dStart = getTime(); 67 dStart = getTime();
68 for( int j = 0; j < nChars; j++ ) fs1 += (char)('a'+(j%26)); 68 for( int j = 0; j < nChars; j++ ) fs1 += (char)('a'+(j%26));
69 fs1.getStr(); 69 fs1.getStr();
@@ -77,7 +77,7 @@ void doTimings()
77 dEnd = getTime(); 77 dEnd = getTime();
78 tss1 = dEnd-dStart; 78 tss1 = dEnd-dStart;
79 79
80 printf("Timing Bu::FString %d char chunks...\n", nChunkSize); 80 printf("Timing Bu::String %d char chunks...\n", nChunkSize);
81 dStart = getTime(); 81 dStart = getTime();
82 for( int j = 0; j < nChunks; j++ ) fs2.append(buf, nChunkSize); 82 for( int j = 0; j < nChunks; j++ ) fs2.append(buf, nChunkSize);
83 fs2.getStr(); 83 fs2.getStr();
@@ -93,9 +93,9 @@ void doTimings()
93 93
94 fs2 = "Hello there."; 94 fs2 = "Hello there.";
95 ss2 = "Hello there."; 95 ss2 = "Hello there.";
96 printf("Timing Bu::FString copies...\n"); 96 printf("Timing Bu::String copies...\n");
97 dStart = getTime(); 97 dStart = getTime();
98 for( int j = 0; j < nCopies; j++ ) Bu::FString stmp = fs2; 98 for( int j = 0; j < nCopies; j++ ) Bu::String stmp = fs2;
99 dEnd = getTime(); 99 dEnd = getTime();
100 tfs3 = dEnd-dStart; 100 tfs3 = dEnd-dStart;
101 101
@@ -107,7 +107,7 @@ void doTimings()
107 107
108 printf( 108 printf(
109 "Results: singles: chunks: copies:\n" 109 "Results: singles: chunks: copies:\n"
110 "Bu::FString %10.2f/s %10.2f/s %10.2f/s\n" 110 "Bu::String %10.2f/s %10.2f/s %10.2f/s\n"
111 "std::string %10.2f/s %10.2f/s %10.2f/s\n", 111 "std::string %10.2f/s %10.2f/s %10.2f/s\n",
112 nChars/tfs1, nChunks/tfs2, nCopies/tfs3, 112 nChars/tfs1, nChunks/tfs2, nCopies/tfs3,
113 nChars/tss1, nChunks/tss2, nCopies/tss3 ); 113 nChars/tss1, nChunks/tss2, nCopies/tss3 );
@@ -118,16 +118,16 @@ void doTimings()
118#define pem printf("---------\n%08tX: %s\n%08tX: %s\n", (ptrdiff_t)str.getStr(), str.getStr(), (ptrdiff_t)str2.getStr(), str2.getStr() ); 118#define pem printf("---------\n%08tX: %s\n%08tX: %s\n", (ptrdiff_t)str.getStr(), str.getStr(), (ptrdiff_t)str2.getStr(), str2.getStr() );
119int main( ) 119int main( )
120{ 120{
121 Bu::FString fs1; 121 Bu::String fs1;
122 for( int j = 0; j < 500000; j++ ) fs1 += (char)('a'+(j%26)); 122 for( int j = 0; j < 500000; j++ ) fs1 += (char)('a'+(j%26));
123 return 0; 123 return 0;
124 124
125 Bu::FString str("th"); 125 Bu::String str("th");
126 126
127 str.prepend("Hello "); 127 str.prepend("Hello ");
128 str.append("ere."); 128 str.append("ere.");
129 129
130 Bu::FString str2( str ); 130 Bu::String str2( str );
131 pem; 131 pem;
132 str += " What's up?"; 132 str += " What's up?";
133 pem; 133 pem;
diff --git a/src/tests/taf.cpp b/src/tests/taf.cpp
index 484e784..1703fbc 100644
--- a/src/tests/taf.cpp
+++ b/src/tests/taf.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/tcpsocket.cpp b/src/tests/tcpsocket.cpp
index 30dd22f..89c015c 100644
--- a/src/tests/tcpsocket.cpp
+++ b/src/tests/tcpsocket.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/telnetsrv.cpp b/src/tests/telnetsrv.cpp
index 4504aaf..aac6b39 100644
--- a/src/tests/telnetsrv.cpp
+++ b/src/tests/telnetsrv.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -36,7 +36,7 @@ public:
36 printf("New dim = (%dx%d)\n", iWidth, iHeight ); 36 printf("New dim = (%dx%d)\n", iWidth, iHeight );
37 } 37 }
38 38
39 virtual void gotLine( Bu::FString &sLine ) 39 virtual void gotLine( Bu::String &sLine )
40 { 40 {
41 printf("Line: \"%s\"\n", sLine.getStr() ); 41 printf("Line: \"%s\"\n", sLine.getStr() );
42 write("\n\r", 2 ); 42 write("\n\r", 2 );
diff --git a/src/tests/tracer.cpp b/src/tests/tracer.cpp
index c736d9e..703fa1a 100644
--- a/src/tests/tracer.cpp
+++ b/src/tests/tracer.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/udpsocket.cpp b/src/tests/udpsocket.cpp
index 18c7bb9..2a74acf 100644
--- a/src/tests/udpsocket.cpp
+++ b/src/tests/udpsocket.cpp
@@ -1,3 +1,10 @@
1/*
2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 *
4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE.
6 */
7
1#include "bu/udpsocket.h" 8#include "bu/udpsocket.h"
2#include "bu/sio.h" 9#include "bu/sio.h"
3 10
diff --git a/src/tests/url.cpp b/src/tests/url.cpp
index 6331664..a381cbe 100644
--- a/src/tests/url.cpp
+++ b/src/tests/url.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/uuid.cpp b/src/tests/uuid.cpp
index 1393e8c..b6470fa 100644
--- a/src/tests/uuid.cpp
+++ b/src/tests/uuid.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tests/variant.cpp b/src/tests/variant.cpp
index 79893c0..68dec4f 100644
--- a/src/tests/variant.cpp
+++ b/src/tests/variant.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/tools/bnfcompile.cpp b/src/tools/bnfcompile.cpp
index 16e75a5..011ec84 100644
--- a/src/tools/bnfcompile.cpp
+++ b/src/tools/bnfcompile.cpp
@@ -1,3 +1,10 @@
1/*
2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 *
4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE.
6 */
7
1#include <bu/sio.h> 8#include <bu/sio.h>
2#include <bu/lexer.h> 9#include <bu/lexer.h>
3#include <bu/parser.h> 10#include <bu/parser.h>
@@ -123,7 +130,7 @@ public:
123 } 130 }
124 } 131 }
125 132
126 virtual FString tokenToString( const Token &t ) 133 virtual String tokenToString( const Token &t )
127 { 134 {
128 switch( (TokenType)t.iToken ) 135 switch( (TokenType)t.iToken )
129 { 136 {
@@ -146,7 +153,7 @@ public:
146private: 153private:
147 Stream &rSrc; 154 Stream &rSrc;
148 QueueBuf qbIn; 155 QueueBuf qbIn;
149 FString sBuf; 156 String sBuf;
150}; 157};
151 158
152class BnfParser 159class BnfParser
@@ -201,9 +208,9 @@ private:
201 next(); 208 next();
202 if( pCur->iToken == tokIdentifier ) 209 if( pCur->iToken == tokIdentifier )
203 { 210 {
204 hTokens.insert( pCur->vExtra.get<Bu::FString>(), ++iLastToken ); 211 hTokens.insert( pCur->vExtra.get<Bu::String>(), ++iLastToken );
205 sio << "Added token[" << iLastToken << "]: " 212 sio << "Added token[" << iLastToken << "]: "
206 << pCur->vExtra.get<Bu::FString>() << sio.nl; 213 << pCur->vExtra.get<Bu::String>() << sio.nl;
207 } 214 }
208 else if( pCur->iToken == tokSemiColon ) 215 else if( pCur->iToken == tokSemiColon )
209 break; 216 break;
@@ -214,7 +221,7 @@ private:
214 221
215 void nonTerminal() 222 void nonTerminal()
216 { 223 {
217 Bu::FString sNtName = pCur->vExtra.get<Bu::FString>(); 224 Bu::String sNtName = pCur->vExtra.get<Bu::String>();
218 Parser::NonTerminal nt; 225 Parser::NonTerminal nt;
219 p.addNonTerminal( sNtName ); 226 p.addNonTerminal( sNtName );
220 sio.incIndent(); 227 sio.incIndent();
@@ -258,8 +265,8 @@ private:
258 { 265 {
259 case tokIdentifier: 266 case tokIdentifier:
260 { 267 {
261 const Bu::FString &sName = 268 const Bu::String &sName =
262 pCur->vExtra.get<Bu::FString>(); 269 pCur->vExtra.get<Bu::String>();
263 if( hTokens.has( sName ) ) 270 if( hTokens.has( sName ) )
264 { 271 {
265 pr.append( 272 pr.append(
@@ -292,8 +299,8 @@ private:
292 next(); 299 next();
293 if( pCur->iToken != tokIdentifier ) 300 if( pCur->iToken != tokIdentifier )
294 tokenError("tokIdentifier"); 301 tokenError("tokIdentifier");
295 Bu::FString sName = 302 Bu::String sName =
296 pCur->vExtra.get<Bu::FString>(); 303 pCur->vExtra.get<Bu::String>();
297 next(); 304 next();
298 if( pCur->iToken != tokCloseSquare ) 305 if( pCur->iToken != tokCloseSquare )
299 tokenError("tokCloseSquare"); 306 tokenError("tokCloseSquare");
@@ -317,8 +324,8 @@ private:
317 next(); 324 next();
318 if( pCur->iToken != tokIdentifier ) 325 if( pCur->iToken != tokIdentifier )
319 tokenError("tokIdentifier"); 326 tokenError("tokIdentifier");
320 Bu::FString sName = 327 Bu::String sName =
321 pCur->vExtra.get<Bu::FString>(); 328 pCur->vExtra.get<Bu::String>();
322 next(); 329 next();
323 if( pCur->iToken != tokCloseCurly ) 330 if( pCur->iToken != tokCloseCurly )
324 tokenError("tokCloseCurly"); 331 tokenError("tokCloseCurly");
@@ -366,14 +373,14 @@ private:
366 pCur = l.nextToken(); 373 pCur = l.nextToken();
367 } 374 }
368 375
369 void tokenError( const FString &s ) 376 void tokenError( const String &s )
370 { 377 {
371 throw ExceptionBase( ("Expected " + s + " but found " 378 throw ExceptionBase( ("Expected " + s + " but found "
372 + l.tokenToString( *pCur ) + ".").getStr() ); 379 + l.tokenToString( *pCur ) + ".").getStr() );
373 } 380 }
374 381
375private: 382private:
376 typedef Bu::Hash<Bu::FString, int> TokenHash; 383 typedef Bu::Hash<Bu::String, int> TokenHash;
377 TokenHash hTokens; 384 TokenHash hTokens;
378 BnfLexer &l; 385 BnfLexer &l;
379 BnfLexer::Token *pCur; 386 BnfLexer::Token *pCur;
diff --git a/src/tools/mkunit.cpp b/src/tools/mkunit.cpp
index 12ce65f..741a888 100644
--- a/src/tools/mkunit.cpp
+++ b/src/tools/mkunit.cpp
@@ -1,3 +1,10 @@
1/*
2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 *
4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE.
6 */
7
1#include <bu/file.h> 8#include <bu/file.h>
2#include <bu/optparser.h> 9#include <bu/optparser.h>
3#include <bu/buffer.h> 10#include <bu/buffer.h>
@@ -15,7 +22,7 @@ public:
15 { 22 {
16 } 23 }
17 24
18 Bu::FString sName; 25 Bu::String sName;
19 bool bExpectPass; 26 bool bExpectPass;
20}; 27};
21typedef Bu::List<Test> TestList; 28typedef Bu::List<Test> TestList;
@@ -23,7 +30,7 @@ typedef Bu::List<Test> TestList;
23class Suite 30class Suite
24{ 31{
25public: 32public:
26 Bu::FString sName; 33 Bu::String sName;
27 TestList lTest; 34 TestList lTest;
28}; 35};
29//typedef Bu::List<Suite> SuiteList; 36//typedef Bu::List<Suite> SuiteList;
@@ -66,7 +73,7 @@ Bu::Formatter &operator<<( Bu::Formatter &f, const Suite &s )
66class Parser 73class Parser
67{ 74{
68public: 75public:
69 Parser( const Bu::FString &sFile ) : 76 Parser( const Bu::String &sFile ) :
70 sIn( sFile ), 77 sIn( sFile ),
71 fIn( sFile, File::Read ), 78 fIn( sFile, File::Read ),
72 bIn( fIn ), 79 bIn( fIn ),
@@ -99,10 +106,10 @@ public:
99 return cBuf; 106 return cBuf;
100 } 107 }
101 108
102 TokType nextToken( Variant &v, Bu::FString &sWsOut, int &iLineStart, 109 TokType nextToken( Variant &v, Bu::String &sWsOut, int &iLineStart,
103 int &iCharStart ) 110 int &iCharStart )
104 { 111 {
105 Bu::FString sTok, sWs; 112 Bu::String sTok, sWs;
106 113
107 char buf; 114 char buf;
108 try 115 try
@@ -307,7 +314,7 @@ public:
307 void firstPass() 314 void firstPass()
308 { 315 {
309 Variant v; 316 Variant v;
310 Bu::FString sWs; 317 Bu::String sWs;
311 int iL, iC; 318 int iL, iC;
312 for(;;) 319 for(;;)
313 { 320 {
@@ -322,7 +329,7 @@ public:
322 if( nextToken( v, sWs, iL, iC ) != tokFluff ) 329 if( nextToken( v, sWs, iL, iC ) != tokFluff )
323 throw Bu::ExceptionBase("%d:%d: Expected string " 330 throw Bu::ExceptionBase("%d:%d: Expected string "
324 "following suite.", iL, iC ); 331 "following suite.", iL, iC );
325 s.sName = v.get<Bu::FString>(); 332 s.sName = v.get<Bu::String>();
326 if( nextToken( v, sWs, iL, iC ) != tokChar || 333 if( nextToken( v, sWs, iL, iC ) != tokChar ||
327 v.get<char>() != '{' ) 334 v.get<char>() != '{' )
328 throw Bu::ExceptionBase("%d:%d: Expected {, got " 335 throw Bu::ExceptionBase("%d:%d: Expected {, got "
@@ -346,7 +353,7 @@ public:
346 throw Bu::ExceptionBase("%d:%d: Expected " 353 throw Bu::ExceptionBase("%d:%d: Expected "
347 "string following test.", iL, iC ); 354 "string following test.", iL, iC );
348 Test t; 355 Test t;
349 t.sName = v.get<Bu::FString>(); 356 t.sName = v.get<Bu::String>();
350 if( nextToken( v, sWs, iL, iC ) != tokBlock ) 357 if( nextToken( v, sWs, iL, iC ) != tokBlock )
351 throw Bu::ExceptionBase("%d:%d: Expected " 358 throw Bu::ExceptionBase("%d:%d: Expected "
352 "{...} block.", 359 "{...} block.",
@@ -380,7 +387,7 @@ public:
380 } 387 }
381 } 388 }
382 389
383 void secondPass( const Bu::FString &sOut ) 390 void secondPass( const Bu::String &sOut )
384 { 391 {
385 File fOut( sOut, File::WriteNew ); 392 File fOut( sOut, File::WriteNew );
386 Formatter f( fOut ); 393 Formatter f( fOut );
@@ -393,7 +400,7 @@ public:
393 iChar = 0; 400 iChar = 0;
394 bool bHasIncluded = false; 401 bool bHasIncluded = false;
395 402
396 Bu::FString sWs; 403 Bu::String sWs;
397 Variant v; 404 Variant v;
398 int iL, iC; 405 int iL, iC;
399 for(;;) 406 for(;;)
@@ -408,7 +415,7 @@ public:
408 if( nextToken( v, sWs, iL, iC ) != tokFluff ) 415 if( nextToken( v, sWs, iL, iC ) != tokFluff )
409 throw Bu::ExceptionBase("%d:%d: Expected string " 416 throw Bu::ExceptionBase("%d:%d: Expected string "
410 "following suite.", iL, iC ); 417 "following suite.", iL, iC );
411 s.sName = v.get<Bu::FString>(); 418 s.sName = v.get<Bu::String>();
412 if( nextToken( v, sWs, iL, iC ) != tokChar || 419 if( nextToken( v, sWs, iL, iC ) != tokChar ||
413 v.get<char>() != '{' ) 420 v.get<char>() != '{' )
414 throw Bu::ExceptionBase("%d:%d: Expected {", 421 throw Bu::ExceptionBase("%d:%d: Expected {",
@@ -421,7 +428,7 @@ public:
421 bHasIncluded = true; 428 bHasIncluded = true;
422 } 429 }
423 430
424 Bu::FString sClass = "_UnitSuite_" + s.sName; 431 Bu::String sClass = "_UnitSuite_" + s.sName;
425 f << "class " << sClass 432 f << "class " << sClass
426 << " : public Bu::UnitSuite" << f.nl 433 << " : public Bu::UnitSuite" << f.nl
427 << "{" << f.nl << "public:" << f.nl 434 << "{" << f.nl << "public:" << f.nl
@@ -441,7 +448,7 @@ public:
441 } 448 }
442 else if( t == tokEof ) 449 else if( t == tokEof )
443 { 450 {
444 Bu::FString sClass = "_UnitSuite_" + s.sName; 451 Bu::String sClass = "_UnitSuite_" + s.sName;
445 f << sWs << f.nl << "int main( int argc, char *argv[] )" 452 f << sWs << f.nl << "int main( int argc, char *argv[] )"
446 << f.nl << "{" << f.nl << "\treturn " << sClass 453 << f.nl << "{" << f.nl << "\treturn " << sClass
447 << "().run( argc, argv );" << f.nl << "}" << f.nl; 454 << "().run( argc, argv );" << f.nl << "}" << f.nl;
@@ -458,7 +465,7 @@ public:
458 { 465 {
459 case tokFluff: 466 case tokFluff:
460 fOut.write( sWs ); 467 fOut.write( sWs );
461 fOut.write( v.get<Bu::FString>() ); 468 fOut.write( v.get<Bu::String>() );
462 break; 469 break;
463 470
464 case tokTest: 471 case tokTest:
@@ -468,7 +475,7 @@ public:
468 throw Bu::ExceptionBase("%d:%d: Expected " 475 throw Bu::ExceptionBase("%d:%d: Expected "
469 "string following test.", iL, iC ); 476 "string following test.", iL, iC );
470 Test t; 477 Test t;
471 t.sName = v.get<Bu::FString>(); 478 t.sName = v.get<Bu::String>();
472 if( nextToken( v, sWs, iL, iC ) != tokBlock ) 479 if( nextToken( v, sWs, iL, iC ) != tokBlock )
473 throw Bu::ExceptionBase("%d:%d: Expected " 480 throw Bu::ExceptionBase("%d:%d: Expected "
474 "{...} block.", 481 "{...} block.",
@@ -499,7 +506,7 @@ public:
499 fOut.write( sWs ); 506 fOut.write( sWs );
500 f << f.nl << "#line " << iL << " \"" << sIn 507 f << f.nl << "#line " << iL << " \"" << sIn
501 << "\"" << f.nl; 508 << "\"" << f.nl;
502 fOut.write( v.get<Bu::FString>() ); 509 fOut.write( v.get<Bu::String>() );
503 510
504 break; 511 break;
505 512
@@ -521,7 +528,7 @@ public:
521 } 528 }
522 529
523private: 530private:
524 Bu::FString sIn; 531 Bu::String sIn;
525 File fIn; 532 File fIn;
526 Buffer bIn; 533 Buffer bIn;
527 char cBuf; 534 char cBuf;
diff --git a/src/tools/myriad.cpp b/src/tools/myriad.cpp
index b6e435d..7d4df75 100644
--- a/src/tools/myriad.cpp
+++ b/src/tools/myriad.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -75,9 +75,9 @@ public:
75 int iBlockSize; 75 int iBlockSize;
76 int iPreallocate; 76 int iPreallocate;
77 int iStream; 77 int iStream;
78 Bu::FString sFile; 78 Bu::String sFile;
79 Bu::FString sSrc; 79 Bu::String sSrc;
80 Bu::FString sDst; 80 Bu::String sDst;
81}; 81};
82 82
83Bu::Formatter &operator>>( Bu::Formatter &f, Mode &e ) 83Bu::Formatter &operator>>( Bu::Formatter &f, Mode &e )
diff --git a/src/tools/myriadfs.cpp b/src/tools/myriadfs.cpp
index 66955a5..88db0c0 100644
--- a/src/tools/myriadfs.cpp
+++ b/src/tools/myriadfs.cpp
@@ -1,3 +1,10 @@
1/*
2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 *
4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE.
6 */
7
1#define FUSE_USE_VERSION 26 8#define FUSE_USE_VERSION 26
2 9
3#include <fuse.h> 10#include <fuse.h>
diff --git a/src/tools/parser.cpp b/src/tools/parser.cpp
index 7933f31..aa9e3e4 100644
--- a/src/tools/parser.cpp
+++ b/src/tools/parser.cpp
@@ -1,3 +1,10 @@
1/*
2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 *
4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE.
6 */
7
1#include <bu/parser.h> 8#include <bu/parser.h>
2#include <bu/lexer.h> 9#include <bu/lexer.h>
3#include <bu/file.h> 10#include <bu/file.h>
@@ -118,7 +125,7 @@ public:
118 case '8': 125 case '8':
119 case '9': 126 case '9':
120 { 127 {
121 Bu::FString sTmp; 128 Bu::String sTmp;
122 sTmp += b; 129 sTmp += b;
123 qbIn.seek( 1 ); 130 qbIn.seek( 1 );
124 for(;;) 131 for(;;)
diff --git a/src/tools/viewcsv.cpp b/src/tools/viewcsv.cpp
index d81525e..6997b9b 100644
--- a/src/tools/viewcsv.cpp
+++ b/src/tools/viewcsv.cpp
@@ -1,3 +1,10 @@
1/*
2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 *
4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE.
6 */
7
1#include <bu/sio.h> 8#include <bu/sio.h>
2#include <bu/optparser.h> 9#include <bu/optparser.h>
3#include <bu/csvreader.h> 10#include <bu/csvreader.h>
@@ -38,7 +45,7 @@ public:
38 return 0; 45 return 0;
39 } 46 }
40 47
41 Bu::FString sFileIn; 48 Bu::String sFileIn;
42 bool bHeader; 49 bool bHeader;
43}; 50};
44 51
@@ -245,10 +252,10 @@ public:
245 setHeaderRow( !bHeaderRow ); 252 setHeaderRow( !bHeaderRow );
246 } 253 }
247 254
248 Bu::FString prompt( const Bu::FString &sPrompt ) 255 Bu::String prompt( const Bu::String &sPrompt )
249 { 256 {
250 int maxx, maxy; 257 int maxx, maxy;
251 Bu::FString sStr; 258 Bu::String sStr;
252 259
253 RegEx re( sPrompt ); 260 RegEx re( sPrompt );
254 261
@@ -292,7 +299,7 @@ public:
292 sysCaret.reset(); 299 sysCaret.reset();
293 } 300 }
294 301
295 void findNext( const Bu::FString &sTerm ) 302 void findNext( const Bu::String &sTerm )
296 { 303 {
297 RegEx re( sTerm ); 304 RegEx re( sTerm );
298 305
@@ -398,7 +405,7 @@ int main( int argc, char *argv[] )
398 CsvView view( doc ); 405 CsvView view( doc );
399 view.setHeaderRow( opt.bHeader ); 406 view.setHeaderRow( opt.bHeader );
400 407
401 Bu::FString sSearchTerm; 408 Bu::String sSearchTerm;
402 409
403 bool bRun = true; 410 bool bRun = true;
404 do 411 do
diff --git a/src/trace.cpp b/src/trace.cpp
index bd06683..906ce54 100644
--- a/src/trace.cpp
+++ b/src/trace.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/trace.h b/src/trace.h
index 9d5ac80..0ebd831 100644
--- a/src/trace.h
+++ b/src/trace.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/udpsocket.cpp b/src/udpsocket.cpp
index da57b8d..91e04c1 100644
--- a/src/udpsocket.cpp
+++ b/src/udpsocket.cpp
@@ -1,3 +1,10 @@
1/*
2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 *
4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE.
6 */
7
1#include "bu/udpsocket.h" 8#include "bu/udpsocket.h"
2 9
3#include "bu/sio.h" 10#include "bu/sio.h"
@@ -21,7 +28,7 @@ Bu::UdpSocket::UdpSocket( int iUdpSocket ) :
21{ 28{
22} 29}
23 30
24Bu::UdpSocket::UdpSocket( const Bu::FString &sAddr, int iPort, int iFlags ) : 31Bu::UdpSocket::UdpSocket( const Bu::String &sAddr, int iPort, int iFlags ) :
25 iUdpSocket( 0 ), 32 iUdpSocket( 0 ),
26 paTarget( NULL ), 33 paTarget( NULL ),
27 bBound( false ) 34 bBound( false )
@@ -72,9 +79,9 @@ Bu::UdpSocket::~UdpSocket()
72 paTarget = NULL; 79 paTarget = NULL;
73} 80}
74 81
75Bu::FString Bu::UdpSocket::addrToStr( const addr &a ) 82Bu::String Bu::UdpSocket::addrToStr( const addr &a )
76{ 83{
77 Bu::FString sOut; 84 Bu::String sOut;
78 sOut.format("%d.%d.%d.%d", 85 sOut.format("%d.%d.%d.%d",
79 (a&0xff), 86 (a&0xff),
80 (a&0xff00)>>8, 87 (a&0xff00)>>8,
@@ -90,24 +97,24 @@ void Bu::UdpSocket::close()
90 ::close( iUdpSocket ); 97 ::close( iUdpSocket );
91} 98}
92 99
93size_t Bu::UdpSocket::read( void *pBuf, size_t nBytes ) 100Bu::size Bu::UdpSocket::read( void *pBuf, Bu::size nBytes )
94{ 101{
95 return recv( iUdpSocket, pBuf, nBytes, 0 ); 102 return recv( iUdpSocket, pBuf, nBytes, 0 );
96} 103}
97 104
98size_t Bu::UdpSocket::read( void *pBuf, size_t nBytes, 105Bu::size Bu::UdpSocket::read( void *pBuf, Bu::size nBytes,
99 Bu::UdpSocket::addr &aHost, int &iPort ) 106 Bu::UdpSocket::addr &aHost, int &iPort )
100{ 107{
101 sockaddr_in name; 108 sockaddr_in name;
102 size_t size = sizeof(name); 109 size_t size = sizeof(name);
103 size_t ret = recvfrom( iUdpSocket, pBuf, nBytes, 0, 110 Bu::size ret = recvfrom( iUdpSocket, pBuf, nBytes, 0,
104 (struct sockaddr *)&name, &size ); 111 (struct sockaddr *)&name, &size );
105 aHost = name.sin_addr.s_addr; 112 aHost = name.sin_addr.s_addr;
106 iPort = ntohs(name.sin_port); 113 iPort = ntohs(name.sin_port);
107 return ret; 114 return ret;
108} 115}
109 116
110size_t Bu::UdpSocket::write( const void *pBuf, size_t nBytes ) 117Bu::size Bu::UdpSocket::write( const void *pBuf, Bu::size nBytes )
111{ 118{
112 if( bBound ) 119 if( bBound )
113 { 120 {
@@ -120,22 +127,22 @@ size_t Bu::UdpSocket::write( const void *pBuf, size_t nBytes )
120 } 127 }
121} 128}
122 129
123long Bu::UdpSocket::tell() 130Bu::size Bu::UdpSocket::tell()
124{ 131{
125 throw Bu::UnsupportedException(); 132 throw Bu::UnsupportedException();
126} 133}
127 134
128void Bu::UdpSocket::seek( long ) 135void Bu::UdpSocket::seek( Bu::size )
129{ 136{
130 throw Bu::UnsupportedException(); 137 throw Bu::UnsupportedException();
131} 138}
132 139
133void Bu::UdpSocket::setPos( long ) 140void Bu::UdpSocket::setPos( Bu::size )
134{ 141{
135 throw Bu::UnsupportedException(); 142 throw Bu::UnsupportedException();
136} 143}
137 144
138void Bu::UdpSocket::setPosEnd( long ) 145void Bu::UdpSocket::setPosEnd( Bu::size )
139{ 146{
140 throw Bu::UnsupportedException(); 147 throw Bu::UnsupportedException();
141} 148}
@@ -211,7 +218,22 @@ void Bu::UdpSocket::setBlocking( bool bBlocking )
211#endif 218#endif
212} 219}
213 220
214void Bu::UdpSocket::setSize( long ) 221void Bu::UdpSocket::setSize( Bu::size )
222{
223 throw Bu::UnsupportedException();
224}
225
226Bu::size Bu::UdpSocket::getSize() const
227{
228 throw Bu::UnsupportedException();
229}
230
231Bu::size Bu::UdpSocket::getBlockSize() const
232{
233 return 1500;
234}
235
236Bu::String Bu::UdpSocket::getLocation() const
215{ 237{
216 throw Bu::UnsupportedException(); 238 throw Bu::UnsupportedException();
217} 239}
diff --git a/src/udpsocket.h b/src/udpsocket.h
index 253839a..8fe114d 100644
--- a/src/udpsocket.h
+++ b/src/udpsocket.h
@@ -1,3 +1,10 @@
1/*
2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 *
4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE.
6 */
7
1#ifndef BU_UDP_SOCKET_H 8#ifndef BU_UDP_SOCKET_H
2#define BU_UDP_SOCKET_H 9#define BU_UDP_SOCKET_H
3 10
@@ -13,24 +20,24 @@ namespace Bu
13 { 20 {
14 public: 21 public:
15 UdpSocket( int iUdpSocket ); 22 UdpSocket( int iUdpSocket );
16 UdpSocket( const Bu::FString &sAddr, int iPort, int iFlags ); 23 UdpSocket( const Bu::String &sAddr, int iPort, int iFlags );
17 virtual ~UdpSocket(); 24 virtual ~UdpSocket();
18 25
19 typedef uint32_t addr; 26 typedef uint32_t addr;
20 27
21 static Bu::FString addrToStr( const addr &a ); 28 static Bu::String addrToStr( const addr &a );
22 29
23 virtual void close(); 30 virtual void close();
24 virtual size_t read( void *pBuf, size_t nBytes ); 31 virtual Bu::size read( void *pBuf, Bu::size nBytes );
25 virtual size_t read( void *pBuf, size_t nBytes, 32 virtual Bu::size read( void *pBuf, Bu::size nBytes,
26 addr &sHost, int &iPort ); 33 addr &sHost, int &iPort );
27 virtual size_t write( const void *pBuf, size_t nBytes ); 34 virtual Bu::size write( const void *pBuf, Bu::size nBytes );
28 using Stream::write; 35 using Stream::write;
29 36
30 virtual long tell(); 37 virtual Bu::size tell();
31 virtual void seek( long offset ); 38 virtual void seek( Bu::size offset );
32 virtual void setPos( long pos ); 39 virtual void setPos( Bu::size pos );
33 virtual void setPosEnd( long pos ); 40 virtual void setPosEnd( Bu::size pos );
34 virtual bool isEos(); 41 virtual bool isEos();
35 virtual bool isOpen(); 42 virtual bool isOpen();
36 43
@@ -46,7 +53,7 @@ namespace Bu
46 virtual bool isBlocking(); 53 virtual bool isBlocking();
47 virtual void setBlocking( bool bBlocking=true ); 54 virtual void setBlocking( bool bBlocking=true );
48 55
49 virtual void setSize( long iSize ); 56 virtual void setSize( Bu::size iSize );
50 57
51 enum { 58 enum {
52 // Flags 59 // Flags
@@ -56,6 +63,9 @@ namespace Bu
56 Broadcast = 0x04, ///< Open for broadcast 63 Broadcast = 0x04, ///< Open for broadcast
57 }; 64 };
58 65
66 virtual size getSize() const;
67 virtual size getBlockSize() const;
68 virtual Bu::String getLocation() const;
59 69
60 private: 70 private:
61#ifdef WIN32 71#ifdef WIN32
diff --git a/src/unit/archive.unit b/src/unit/archive.unit
index a7f2640..89fde0c 100644
--- a/src/unit/archive.unit
+++ b/src/unit/archive.unit
@@ -1,6 +1,6 @@
1// vim: syntax=cpp 1// vim: syntax=cpp
2/* 2/*
3 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 3 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
4 * 4 *
5 * This file is part of the libbu++ library and is released under the 5 * This file is part of the libbu++ library and is released under the
6 * terms of the license contained in the file LICENSE. 6 * terms of the license contained in the file LICENSE.
@@ -105,7 +105,7 @@ suite Archive
105 MemBuf mb; 105 MemBuf mb;
106 { 106 {
107 Archive ar( mb, Archive::save ); 107 Archive ar( mb, Archive::save );
108 FString sStr("This is a test string."); 108 String sStr("This is a test string.");
109 List<int> lList; 109 List<int> lList;
110 lList.append( 10 ); 110 lList.append( 10 );
111 lList.append( 20 ); 111 lList.append( 20 );
@@ -118,7 +118,7 @@ suite Archive
118 mb.setPos( 0 ); 118 mb.setPos( 0 );
119 { 119 {
120 Archive ar( mb, Archive::load ); 120 Archive ar( mb, Archive::load );
121 FString sStr; 121 String sStr;
122 List<int> lList; 122 List<int> lList;
123 ar >> sStr; 123 ar >> sStr;
124 ar >> lList; 124 ar >> lList;
@@ -138,7 +138,7 @@ suite Archive
138 MemBuf mb; 138 MemBuf mb;
139 { 139 {
140 Archive ar( mb, Archive::save ); 140 Archive ar( mb, Archive::save );
141 FString sStr("This is a test string."); 141 String sStr("This is a test string.");
142 Array<int> lArray; 142 Array<int> lArray;
143 lArray.append( 10 ); 143 lArray.append( 10 );
144 lArray.append( 20 ); 144 lArray.append( 20 );
@@ -151,7 +151,7 @@ suite Archive
151 mb.setPos( 0 ); 151 mb.setPos( 0 );
152 { 152 {
153 Archive ar( mb, Archive::load ); 153 Archive ar( mb, Archive::load );
154 FString sStr; 154 String sStr;
155 Array<int> lArray; 155 Array<int> lArray;
156 ar >> sStr; 156 ar >> sStr;
157 ar >> lArray; 157 ar >> lArray;
@@ -171,7 +171,7 @@ suite Archive
171 MemBuf mb; 171 MemBuf mb;
172 { 172 {
173 Archive ar( mb, Archive::save ); 173 Archive ar( mb, Archive::save );
174 Array<FString> lArray; 174 Array<String> lArray;
175 lArray.append( "10" ); 175 lArray.append( "10" );
176 lArray.append( "20" ); 176 lArray.append( "20" );
177 lArray.append( "30" ); 177 lArray.append( "30" );
@@ -182,10 +182,10 @@ suite Archive
182 mb.setPos( 0 ); 182 mb.setPos( 0 );
183 { 183 {
184 Archive ar( mb, Archive::load ); 184 Archive ar( mb, Archive::load );
185 Array<FString> lArray; 185 Array<String> lArray;
186 ar >> lArray; 186 ar >> lArray;
187 unitTest( lArray.getSize() == 4 ); 187 unitTest( lArray.getSize() == 4 );
188 Array<FString>::iterator i = lArray.begin(); 188 Array<String>::iterator i = lArray.begin();
189 unitTest( *i == "10" ); i++; 189 unitTest( *i == "10" ); i++;
190 unitTest( *i == "20" ); i++; 190 unitTest( *i == "20" ); i++;
191 unitTest( *i == "30" ); i++; 191 unitTest( *i == "30" ); i++;
diff --git a/src/unit/array.unit b/src/unit/array.unit
index f3fdeda..f6e6718 100644
--- a/src/unit/array.unit
+++ b/src/unit/array.unit
@@ -1,6 +1,6 @@
1// vim: syntax=cpp 1// vim: syntax=cpp
2/* 2/*
3 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 3 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
4 * 4 *
5 * This file is part of the libbu++ library and is released under the 5 * This file is part of the libbu++ library and is released under the
6 * terms of the license contained in the file LICENSE. 6 * terms of the license contained in the file LICENSE.
@@ -55,7 +55,7 @@ suite Array
55 55
56 test copy 56 test copy
57 { 57 {
58 typedef Bu::Hash<Bu::FString, Bu::FString> StrHash; 58 typedef Bu::Hash<Bu::String, Bu::String> StrHash;
59 typedef Bu::Array<StrHash> StrHashArray; 59 typedef Bu::Array<StrHash> StrHashArray;
60 60
61 StrHash h1; 61 StrHash h1;
diff --git a/src/unit/buffer.unit b/src/unit/buffer.unit
index 8ed1ec5..8106e4e 100644
--- a/src/unit/buffer.unit
+++ b/src/unit/buffer.unit
@@ -1,6 +1,6 @@
1// vim: syntax=cpp 1// vim: syntax=cpp
2/* 2/*
3 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 3 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
4 * 4 *
5 * This file is part of the libbu++ library and is released under the 5 * This file is part of the libbu++ library and is released under the
6 * terms of the license contained in the file LICENSE. 6 * terms of the license contained in the file LICENSE.
@@ -14,12 +14,12 @@ suite Buffer
14{ 14{
15 test emptyFile 15 test emptyFile
16 { 16 {
17 Bu::FString sTmp("empty-XXXXXX"); 17 Bu::String sTmp("empty-XXXXXX");
18 Bu::File fEmpty = tempFile(sTmp); 18 Bu::File fEmpty = tempFile(sTmp);
19 Bu::Buffer buf( fEmpty ); 19 Bu::Buffer buf( fEmpty );
20 20
21 unitTest( buf.isEos() == false ); 21 unitTest( buf.isEos() == false );
22 Bu::FString sLine = buf.readLine(); 22 Bu::String sLine = buf.readLine();
23 unitTest( sLine == "" ); 23 unitTest( sLine == "" );
24 unitTest( fEmpty.isEos() == true ); 24 unitTest( fEmpty.isEos() == true );
25 unitTest( buf.isEos() == true ); 25 unitTest( buf.isEos() == true );
diff --git a/src/unit/entities/unit b/src/unit/entities/unit
index 6876c54..4c5a835 100644
--- a/src/unit/entities/unit
+++ b/src/unit/entities/unit
@@ -5,7 +5,7 @@
5 name="source" 5 name="source"
6 filename="{=name:%tolower}.cpp" 6 filename="{=name:%tolower}.cpp"
7>/* 7>/*
8 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 8 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
9 * 9 *
10 * This file is part of the libbu++ library and is released under the 10 * This file is part of the libbu++ library and is released under the
11 * terms of the license contained in the file LICENSE. 11 * terms of the license contained in the file LICENSE.
diff --git a/src/unit/file.unit b/src/unit/file.unit
index f8cf7c1..fb04e57 100644
--- a/src/unit/file.unit
+++ b/src/unit/file.unit
@@ -1,6 +1,6 @@
1// vim: syntax=cpp 1// vim: syntax=cpp
2/* 2/*
3 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 3 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
4 * 4 *
5 * This file is part of the libbu++ library and is released under the 5 * This file is part of the libbu++ library and is released under the
6 * terms of the license contained in the file LICENSE. 6 * terms of the license contained in the file LICENSE.
diff --git a/src/unit/hash.unit b/src/unit/hash.unit
index 124b074..64e70b6 100644
--- a/src/unit/hash.unit
+++ b/src/unit/hash.unit
@@ -1,19 +1,19 @@
1// vim: syntax=cpp 1// vim: syntax=cpp
2/* 2/*
3 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 3 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
4 * 4 *
5 * This file is part of the libbu++ library and is released under the 5 * This file is part of the libbu++ library and is released under the
6 * terms of the license contained in the file LICENSE. 6 * terms of the license contained in the file LICENSE.
7 */ 7 */
8 8
9#include "bu/fstring.h" 9#include "bu/string.h"
10#include "bu/hash.h" 10#include "bu/hash.h"
11 11
12#include <stdio.h> 12#include <stdio.h>
13 13
14typedef Bu::Hash<Bu::FString, int> StrIntHash; 14typedef Bu::Hash<Bu::String, int> StrIntHash;
15typedef Bu::Hash<Bu::FString, Bu::FString> StrStrHash; 15typedef Bu::Hash<Bu::String, Bu::String> StrStrHash;
16typedef Bu::Hash<int, Bu::FString> IntStrHash; 16typedef Bu::Hash<int, Bu::String> IntStrHash;
17 17
18suite Hash 18suite Hash
19{ 19{
@@ -24,7 +24,7 @@ suite Hash
24 for(int i=1;i<10000;i++) 24 for(int i=1;i<10000;i++)
25 { 25 {
26 sprintf(buf,"%d",i); 26 sprintf(buf,"%d",i);
27 Bu::FString sTmp(buf); 27 Bu::String sTmp(buf);
28 h[sTmp] = i; 28 h[sTmp] = i;
29 unitTest( h.has(sTmp) ); 29 unitTest( h.has(sTmp) );
30 } 30 }
diff --git a/src/unit/list.unit b/src/unit/list.unit
index 66e45b2..2b315dc 100644
--- a/src/unit/list.unit
+++ b/src/unit/list.unit
@@ -1,12 +1,12 @@
1// vim: syntax=cpp 1// vim: syntax=cpp
2/* 2/*
3 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 3 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
4 * 4 *
5 * This file is part of the libbu++ library and is released under the 5 * This file is part of the libbu++ library and is released under the
6 * terms of the license contained in the file LICENSE. 6 * terms of the license contained in the file LICENSE.
7 */ 7 */
8 8
9#include "bu/fstring.h" 9#include "bu/string.h"
10#include "bu/list.h" 10#include "bu/list.h"
11 11
12typedef Bu::List<int> IntList; 12typedef Bu::List<int> IntList;
diff --git a/src/unit/membuf.unit b/src/unit/membuf.unit
index 1da3b90..aefc2c1 100644
--- a/src/unit/membuf.unit
+++ b/src/unit/membuf.unit
@@ -1,6 +1,6 @@
1// vim: syntax=cpp 1// vim: syntax=cpp
2/* 2/*
3 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 3 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
4 * 4 *
5 * This file is part of the libbu++ library and is released under the 5 * This file is part of the libbu++ library and is released under the
6 * terms of the license contained in the file LICENSE. 6 * terms of the license contained in the file LICENSE.
diff --git a/src/unit/myriad.unit b/src/unit/myriad.unit
index ad8fb5d..e0f7ef4 100644
--- a/src/unit/myriad.unit
+++ b/src/unit/myriad.unit
@@ -1,12 +1,12 @@
1// vim: syntax=cpp 1// vim: syntax=cpp
2/* 2/*
3 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 3 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
4 * 4 *
5 * This file is part of the libbu++ library and is released under the 5 * This file is part of the libbu++ library and is released under the
6 * terms of the license contained in the file LICENSE. 6 * terms of the license contained in the file LICENSE.
7 */ 7 */
8 8
9#include "bu/fstring.h" 9#include "bu/string.h"
10#include "bu/file.h" 10#include "bu/file.h"
11#include "bu/myriad.h" 11#include "bu/myriad.h"
12#include "bu/myriadstream.h" 12#include "bu/myriadstream.h"
@@ -56,7 +56,7 @@ Bu::ArchiveBase &operator<<( Bu::ArchiveBase &ar, const VerifyObject &vo )
56 { 56 {
57 int iRand = random()%128; 57 int iRand = random()%128;
58// ar << iRand; 58// ar << iRand;
59 Bu::FString sDat( iRand ); 59 Bu::String sDat( iRand );
60 for( int j = 0; j < iRand; j++ ) 60 for( int j = 0; j < iRand; j++ )
61 sDat[j] = (char)((uint8_t)(random()%256)); 61 sDat[j] = (char)((uint8_t)(random()%256));
62 ar << sDat; 62 ar << sDat;
@@ -64,7 +64,7 @@ Bu::ArchiveBase &operator<<( Bu::ArchiveBase &ar, const VerifyObject &vo )
64 sum.addData( sDat.getStr(), iRand ); 64 sum.addData( sDat.getStr(), iRand );
65 vo.iBytesWritten += 4 + iRand; 65 vo.iBytesWritten += 4 + iRand;
66 } 66 }
67 Bu::FString sRes = sum.getResult(); 67 Bu::String sRes = sum.getResult();
68 ar << sRes; 68 ar << sRes;
69 vo.iBytesWritten += 4 + sRes.getSize(); 69 vo.iBytesWritten += 4 + sRes.getSize();
70 return ar; 70 return ar;
@@ -79,13 +79,13 @@ Bu::ArchiveBase &operator>>( Bu::ArchiveBase &ar, VerifyObject &vo )
79 { 79 {
80 int iRand; 80 int iRand;
81// ar >> iRand; 81// ar >> iRand;
82 Bu::FString sStr; 82 Bu::String sStr;
83 ar >> sStr; 83 ar >> sStr;
84 iRand = sStr.getSize(); 84 iRand = sStr.getSize();
85 sum.addData( &iRand, 4 ); 85 sum.addData( &iRand, 4 );
86 sum.addData( sStr.getStr(), iRand ); 86 sum.addData( sStr.getStr(), iRand );
87 } 87 }
88 Bu::FString sSum; 88 Bu::String sSum;
89 ar >> sSum; 89 ar >> sSum;
90 unitTest( sSum == sum.getResult() ); 90 unitTest( sSum == sum.getResult() );
91 int iTooMuch; 91 int iTooMuch;
@@ -104,7 +104,7 @@ suite Myriad
104{ 104{
105 test setSize 105 test setSize
106 { 106 {
107 FString sFileName("myriad-XXXXXXX"); 107 String sFileName("myriad-XXXXXXX");
108 108
109 File fMyriad = tempFile( sFileName ); 109 File fMyriad = tempFile( sFileName );
110 Myriad m( fMyriad, 32 ); 110 Myriad m( fMyriad, 32 );
@@ -194,7 +194,7 @@ suite Myriad
194 194
195 test stressGrow 195 test stressGrow
196 { 196 {
197 FString sFileName("myriad-XXXXXXX"); 197 String sFileName("myriad-XXXXXXX");
198 198
199 File fMyriad = tempFile( sFileName ); 199 File fMyriad = tempFile( sFileName );
200 Myriad m( fMyriad ); 200 Myriad m( fMyriad );
@@ -256,7 +256,7 @@ suite Myriad
256 256
257 test stressTruncate 257 test stressTruncate
258 { 258 {
259 FString sFileName("myriad-XXXXXXX"); 259 String sFileName("myriad-XXXXXXX");
260 260
261 File fMyriad = tempFile( sFileName ); 261 File fMyriad = tempFile( sFileName );
262 Myriad m( fMyriad ); 262 Myriad m( fMyriad );
@@ -289,7 +289,7 @@ suite Myriad
289 289
290 test stressTruncate2 290 test stressTruncate2
291 { 291 {
292 FString sFileName("myriad-XXXXXXX"); 292 String sFileName("myriad-XXXXXXX");
293 293
294 Array<int> aStream; 294 Array<int> aStream;
295 295
@@ -329,7 +329,7 @@ suite Myriad
329 329
330 test stressArchive 330 test stressArchive
331 { 331 {
332 FString sFileName("myriad-XXXXXX"); 332 String sFileName("myriad-XXXXXX");
333 Array<int> aStream; 333 Array<int> aStream;
334 334
335 srandom( 2096 ); 335 srandom( 2096 );
diff --git a/src/unit/queuebuf.unit b/src/unit/queuebuf.unit
index 29ba858..605490e 100644
--- a/src/unit/queuebuf.unit
+++ b/src/unit/queuebuf.unit
@@ -1,6 +1,6 @@
1// vim: syntax=cpp 1// vim: syntax=cpp
2/* 2/*
3 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 3 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
4 * 4 *
5 * This file is part of the libbu++ library and is released under the 5 * This file is part of the libbu++ library and is released under the
6 * terms of the license contained in the file LICENSE. 6 * terms of the license contained in the file LICENSE.
@@ -30,7 +30,7 @@ suite QueueBuf
30 unitTest( qb.read( buf, 7 ) == 0 ); 30 unitTest( qb.read( buf, 7 ) == 0 );
31 } 31 }
32 32
33 void QBUF_RANDSTR( Bu::FString &fill, unsigned int iSize ) 33 void QBUF_RANDSTR( Bu::String &fill, unsigned int iSize )
34 { 34 {
35 char c; 35 char c;
36 for( unsigned int i=0; i<iSize; ++i ) 36 for( unsigned int i=0; i<iSize; ++i )
@@ -44,7 +44,7 @@ suite QueueBuf
44 { 44 {
45 srandom(time(NULL)); 45 srandom(time(NULL));
46 Bu::QueueBuf qb; 46 Bu::QueueBuf qb;
47 Bu::FString sTmp; 47 Bu::String sTmp;
48 char buf[4096]; 48 char buf[4096];
49 49
50 for( int i=0; i<200; ++i ) 50 for( int i=0; i<200; ++i )
@@ -65,12 +65,12 @@ suite QueueBuf
65 printf("%02x",(int)(uint8_t)s[i]); 65 printf("%02x",(int)(uint8_t)s[i]);
66 } 66 }
67 67
68 void QBUF_HASH( Bu::FString &fill, const char *s, int iSize ) 68 void QBUF_HASH( Bu::String &fill, const char *s, int iSize )
69 { 69 {
70 Bu::Md5 hash; 70 Bu::Md5 hash;
71 hash.reset(); 71 hash.reset();
72 hash.addData( s, iSize ); 72 hash.addData( s, iSize );
73 const Bu::FString &sTmp = hash.getResult(); 73 const Bu::String &sTmp = hash.getResult();
74 fill.append( sTmp.getStr(), 16 ); 74 fill.append( sTmp.getStr(), 16 );
75 } 75 }
76 76
@@ -78,8 +78,8 @@ suite QueueBuf
78 { 78 {
79 srandom(time(NULL)); 79 srandom(time(NULL));
80 Bu::QueueBuf qb; 80 Bu::QueueBuf qb;
81 Bu::FString sTmp; 81 Bu::String sTmp;
82 Bu::FString sTmp2; 82 Bu::String sTmp2;
83 char buf[4096]; 83 char buf[4096];
84 84
85 for( int i=0; i<200; ++i ) 85 for( int i=0; i<200; ++i )
diff --git a/src/unit/fstring.unit b/src/unit/string.unit
index c6d7414..f51e4de 100644
--- a/src/unit/fstring.unit
+++ b/src/unit/string.unit
@@ -1,34 +1,34 @@
1// vim: syntax=cpp 1// vim: syntax=cpp
2/* 2/*
3 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 3 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
4 * 4 *
5 * This file is part of the libbu++ library and is released under the 5 * This file is part of the libbu++ library and is released under the
6 * terms of the license contained in the file LICENSE. 6 * terms of the license contained in the file LICENSE.
7 */ 7 */
8 8
9#include "bu/fstring.h" 9#include "bu/string.h"
10 10
11#include <dirent.h> 11#include <dirent.h>
12 12
13suite FString 13suite String
14{ 14{
15 test compare1 15 test compare1
16 { 16 {
17 Bu::FString b("Bob"); 17 Bu::String b("Bob");
18 unitTest( !(b == "Bobo") ); 18 unitTest( !(b == "Bobo") );
19 unitTest( b == "Bob" ); 19 unitTest( b == "Bob" );
20 } 20 }
21 21
22 test compare2 22 test compare2
23 { 23 {
24 Bu::FString b("Bobo"); 24 Bu::String b("Bobo");
25 unitTest( !(b == "Bob") ); 25 unitTest( !(b == "Bob") );
26 unitTest( b == "Bobo" ); 26 unitTest( b == "Bobo" );
27 } 27 }
28 28
29 test appendSingle 29 test appendSingle
30 { 30 {
31 Bu::FString b; 31 Bu::String b;
32 for( char l = 'a'; l < 'g'; l++ ) 32 for( char l = 'a'; l < 'g'; l++ )
33 b += l; 33 b += l;
34 unitTest( b == "abcdef" ); 34 unitTest( b == "abcdef" );
@@ -37,8 +37,8 @@ suite FString
37 37
38 test shared1 38 test shared1
39 { 39 {
40 Bu::FString a("Hey there"); 40 Bu::String a("Hey there");
41 Bu::FString b( a ); 41 Bu::String b( a );
42 unitTest( a.getConstStr() == b.getConstStr() ); 42 unitTest( a.getConstStr() == b.getConstStr() );
43 b += " guy"; 43 b += " guy";
44 unitTest( a.getConstStr() != b.getConstStr() ); 44 unitTest( a.getConstStr() != b.getConstStr() );
@@ -48,7 +48,7 @@ suite FString
48 48
49 test insert 49 test insert
50 { 50 {
51 Bu::FString a("abcd"); 51 Bu::String a("abcd");
52 a.insert( 2, "-!-", 3 ); 52 a.insert( 2, "-!-", 3 );
53 unitTest( a == "ab-!-cd" ); 53 unitTest( a == "ab-!-cd" );
54 54
@@ -67,7 +67,7 @@ suite FString
67 67
68 test remove 68 test remove
69 { 69 {
70 Bu::FString a("abHEYcd"); 70 Bu::String a("abHEYcd");
71 a.remove( 2, 3 ); 71 a.remove( 2, 3 );
72 unitTest( a == "abcd" ); 72 unitTest( a == "abcd" );
73 a.remove( 2, 5 ); 73 a.remove( 2, 5 );
@@ -79,42 +79,42 @@ suite FString
79 79
80 test add1 80 test add1
81 { 81 {
82 Bu::FString a("hi there"); 82 Bu::String a("hi there");
83 Bu::FString b(", yeah!"); 83 Bu::String b(", yeah!");
84 Bu::FString c = a + b; 84 Bu::String c = a + b;
85 85
86 unitTest( c == "hi there, yeah!" ); 86 unitTest( c == "hi there, yeah!" );
87 } 87 }
88 88
89 test add2 89 test add2
90 { 90 {
91 Bu::FString a("hi there"); 91 Bu::String a("hi there");
92 Bu::FString c = a + ", yeah!"; 92 Bu::String c = a + ", yeah!";
93 93
94 unitTest( c == "hi there, yeah!" ); 94 unitTest( c == "hi there, yeah!" );
95 } 95 }
96 96
97 test add3 97 test add3
98 { 98 {
99 Bu::FString a("hi there"); 99 Bu::String a("hi there");
100 Bu::FString b(", yeah!"); 100 Bu::String b(", yeah!");
101 Bu::FString c = a + ", Mr. Man" + b; 101 Bu::String c = a + ", Mr. Man" + b;
102 102
103 unitTest( c == "hi there, Mr. Man, yeah!" ); 103 unitTest( c == "hi there, Mr. Man, yeah!" );
104 } 104 }
105 105
106 test add4 106 test add4
107 { 107 {
108 Bu::FString b(", yeah!"); 108 Bu::String b(", yeah!");
109 Bu::FString c = "hi there" + b; 109 Bu::String c = "hi there" + b;
110 110
111 unitTest( c == "hi there, yeah!" ); 111 unitTest( c == "hi there, yeah!" );
112 } 112 }
113 113
114 test add5 114 test add5
115 { 115 {
116 Bu::FString b; 116 Bu::String b;
117 Bu::FString c = "sup?"; 117 Bu::String c = "sup?";
118 b += "hey, " + c; 118 b += "hey, " + c;
119 119
120 unitTest( b == "hey, sup?" ); 120 unitTest( b == "hey, sup?" );
@@ -122,17 +122,17 @@ suite FString
122 122
123 test add6 123 test add6
124 { 124 {
125 Bu::FString a("Hello"); 125 Bu::String a("Hello");
126 char b[256] = {"Dude"}; 126 char b[256] = {"Dude"};
127 Bu::FString c = a + "/" + b; 127 Bu::String c = a + "/" + b;
128 128
129 unitTest( c == "Hello/Dude" ); 129 unitTest( c == "Hello/Dude" );
130 } 130 }
131 131
132 test add7 132 test add7
133 { 133 {
134 const Bu::FString a("hello "); 134 const Bu::String a("hello ");
135 Bu::FString b(" how "); 135 Bu::String b(" how ");
136 unitTest( a == "hello " ); 136 unitTest( a == "hello " );
137 unitTest( a + "dude" == "hello dude" ); 137 unitTest( a + "dude" == "hello dude" );
138 unitTest( a + "dude" + b + "are you?" == "hello dude how are you?" ); 138 unitTest( a + "dude" + b + "are you?" == "hello dude how are you?" );
@@ -140,16 +140,16 @@ suite FString
140 140
141 test subStr1 141 test subStr1
142 { 142 {
143 Bu::FString a("abcdefghijklmnop"); 143 Bu::String a("abcdefghijklmnop");
144 Bu::FString::iterator i = a.find('f'); 144 Bu::String::iterator i = a.find('f');
145 unitTest( a.getSubStr( i, Bu::FString::iterator() ) == "fghijklmnop" ); 145 unitTest( a.getSubStr( i, Bu::String::iterator() ) == "fghijklmnop" );
146 Bu::FString::iterator j = i.find('l'); 146 Bu::String::iterator j = i.find('l');
147 unitTest( a.getSubStr( i, j ) == "fghijk" ); 147 unitTest( a.getSubStr( i, j ) == "fghijk" );
148 } 148 }
149 149
150 test compareSub1 150 test compareSub1
151 { 151 {
152 Bu::FString a("just a string."); 152 Bu::String a("just a string.");
153 unitTest( a.compareSub("a ", 5, 2) == true ); 153 unitTest( a.compareSub("a ", 5, 2) == true );
154 unitTest( a.compareSub("string.aoeu", 7, 11 ) == false ); 154 unitTest( a.compareSub("string.aoeu", 7, 11 ) == false );
155 unitTest( a.compareSub("string.aoeu", 7, 3 ) == true ); 155 unitTest( a.compareSub("string.aoeu", 7, 3 ) == true );
@@ -157,17 +157,17 @@ suite FString
157 157
158 test compareSub2 158 test compareSub2
159 { 159 {
160 Bu::FString a("just a string."); 160 Bu::String a("just a string.");
161 unitTest( a.compareSub(Bu::FString("a "), 5, 2) == true ); 161 unitTest( a.compareSub(Bu::String("a "), 5, 2) == true );
162 unitTest( a.compareSub(Bu::FString("string.aoeu"), 7, 11 ) == false ); 162 unitTest( a.compareSub(Bu::String("string.aoeu"), 7, 11 ) == false );
163 unitTest( a.compareSub(Bu::FString("string.aoeu"), 7, 3 ) == true ); 163 unitTest( a.compareSub(Bu::String("string.aoeu"), 7, 3 ) == true );
164 } 164 }
165 165
166 test iterator1 166 test iterator1
167 { 167 {
168 Bu::FString a("This is a test."); 168 Bu::String a("This is a test.");
169 Bu::FString b; 169 Bu::String b;
170 for( Bu::FString::iterator i = a.begin(); i; i++ ) 170 for( Bu::String::iterator i = a.begin(); i; i++ )
171 { 171 {
172 b += *i; 172 b += *i;
173 } 173 }
@@ -176,10 +176,10 @@ suite FString
176 176
177 test iterator2 177 test iterator2
178 { 178 {
179 Bu::FString a("This is a test."); 179 Bu::String a("This is a test.");
180 Bu::FString b("--This is a test."); 180 Bu::String b("--This is a test.");
181 Bu::FString::iterator ai = a.begin(); 181 Bu::String::iterator ai = a.begin();
182 Bu::FString::iterator bi = b.begin(); 182 Bu::String::iterator bi = b.begin();
183 unitTest( ai.compare( bi ) == false ); 183 unitTest( ai.compare( bi ) == false );
184 unitTest( bi.compare( ai ) == false ); 184 unitTest( bi.compare( ai ) == false );
185 bi++; bi++; 185 bi++; bi++;
@@ -189,10 +189,10 @@ suite FString
189 189
190 test iterator3 190 test iterator3
191 { 191 {
192 Bu::FString a("1234honour"); 192 Bu::String a("1234honour");
193 Bu::FString b("--1234ueje"); 193 Bu::String b("--1234ueje");
194 Bu::FString::iterator ai = a.begin(); 194 Bu::String::iterator ai = a.begin();
195 Bu::FString::iterator bi = b.begin(); 195 Bu::String::iterator bi = b.begin();
196 unitTest( ai.compare( bi, 4 ) == false ); 196 unitTest( ai.compare( bi, 4 ) == false );
197 unitTest( bi.compare( ai, 4 ) == false ); 197 unitTest( bi.compare( ai, 4 ) == false );
198 bi++; bi++; 198 bi++; bi++;
@@ -205,8 +205,8 @@ suite FString
205 205
206 test iterator4 206 test iterator4
207 { 207 {
208 Bu::FString a("1234aoeu"); 208 Bu::String a("1234aoeu");
209 Bu::FString::iterator ai = a.begin(); 209 Bu::String::iterator ai = a.begin();
210 unitTest( ai.compare("1234") == false ); 210 unitTest( ai.compare("1234") == false );
211 unitTest( ai.compare("1234aoeu") == true ); 211 unitTest( ai.compare("1234aoeu") == true );
212 unitTest( ai.compare("1234aoeuee") == false ); 212 unitTest( ai.compare("1234aoeuee") == false );
@@ -214,8 +214,8 @@ suite FString
214 214
215 test iterator5 215 test iterator5
216 { 216 {
217 Bu::FString a("1234aoeu"); 217 Bu::String a("1234aoeu");
218 Bu::FString::iterator ai = a.begin(); 218 Bu::String::iterator ai = a.begin();
219 unitTest( ai.compare("1234", 4) == true ); 219 unitTest( ai.compare("1234", 4) == true );
220 unitTest( ai.compare("1234aoeu", 8) == true ); 220 unitTest( ai.compare("1234aoeu", 8) == true );
221 unitTest( ai.compare("1234aoeuee", 10) == false ); 221 unitTest( ai.compare("1234aoeuee", 10) == false );
@@ -223,9 +223,9 @@ suite FString
223 223
224 test iterator6 224 test iterator6
225 { 225 {
226 Bu::FString a("just ->this part"); 226 Bu::String a("just ->this part");
227 Bu::FString b; 227 Bu::String b;
228 Bu::FString::iterator s = a.begin(); 228 Bu::String::iterator s = a.begin();
229 for(; s; s++ ) 229 for(; s; s++ )
230 { 230 {
231 if( *s == '>' ) 231 if( *s == '>' )
@@ -239,7 +239,7 @@ suite FString
239 239
240 b.append( s ); 240 b.append( s );
241 241
242 Bu::FString c; 242 Bu::String c;
243 c.set( b.begin() ); 243 c.set( b.begin() );
244 244
245 // This is here because the comparison operator used to cause flattening. 245 // This is here because the comparison operator used to cause flattening.
@@ -249,9 +249,9 @@ suite FString
249 249
250 test iterator7 250 test iterator7
251 { 251 {
252 Bu::FString a("just [this] part"); 252 Bu::String a("just [this] part");
253 Bu::FString b; 253 Bu::String b;
254 Bu::FString::iterator s = a.begin(); 254 Bu::String::iterator s = a.begin();
255 for(; s; s++ ) 255 for(; s; s++ )
256 { 256 {
257 if( *s == '[' ) 257 if( *s == '[' )
@@ -260,7 +260,7 @@ suite FString
260 break; 260 break;
261 } 261 }
262 } 262 }
263 Bu::FString::iterator e = s; 263 Bu::String::iterator e = s;
264 for(; e; e++ ) 264 for(; e; e++ )
265 { 265 {
266 if( *e == ']' ) 266 if( *e == ']' )
@@ -273,9 +273,9 @@ suite FString
273 273
274 b.append( s, e ); 274 b.append( s, e );
275 275
276 for( Bu::FString::iterator i = b.begin(); i;) 276 for( Bu::String::iterator i = b.begin(); i;)
277 { 277 {
278 Bu::FString::iterator k = i; 278 Bu::String::iterator k = i;
279 k++; 279 k++;
280 if( !k ) 280 if( !k )
281 { 281 {
@@ -284,12 +284,12 @@ suite FString
284 } 284 }
285 i = k; 285 i = k;
286 } 286 }
287 Bu::FString l; 287 Bu::String l;
288 l.set( b.begin() ); 288 l.set( b.begin() );
289 unitTest( l == "thisthisthisthi" ); 289 unitTest( l == "thisthisthisthi" );
290 for( Bu::FString::iterator i = b.begin(); i;) 290 for( Bu::String::iterator i = b.begin(); i;)
291 { 291 {
292 Bu::FString::iterator k = i; 292 Bu::String::iterator k = i;
293 k++; 293 k++;
294 if( !k ) 294 if( !k )
295 { 295 {
@@ -304,7 +304,7 @@ suite FString
304 304
305 test isSet1 305 test isSet1
306 { 306 {
307 Bu::FString bob; 307 Bu::String bob;
308 308
309 unitTest( bob.isSet() == false ); 309 unitTest( bob.isSet() == false );
310 bob = "something"; 310 bob = "something";
@@ -315,7 +315,7 @@ suite FString
315 315
316 test swap1 316 test swap1
317 { 317 {
318 Bu::FString a, b; 318 Bu::String a, b;
319 a = "Goodbye"; 319 a = "Goodbye";
320 b = "Hello"; 320 b = "Hello";
321 Bu::swap( a, b ); 321 Bu::swap( a, b );
@@ -325,7 +325,7 @@ suite FString
325 325
326 test swap2 326 test swap2
327 { 327 {
328 Bu::FString a, b; 328 Bu::String a, b;
329 a = "Goodbye"; 329 a = "Goodbye";
330 b = "Hello"; 330 b = "Hello";
331 std::swap( a, b ); 331 std::swap( a, b );
@@ -335,14 +335,14 @@ suite FString
335 335
336 test replace1 336 test replace1
337 { 337 {
338 Bu::FString a; 338 Bu::String a;
339 a = "This is a test."; 339 a = "This is a test.";
340 unitTest( a.replace("i", "ooo") == "Thooos ooos a test." ); 340 unitTest( a.replace("i", "ooo") == "Thooos ooos a test." );
341 } 341 }
342 342
343 test coreDerefBug1 343 test coreDerefBug1
344 { 344 {
345 Bu::FString a, b; 345 Bu::String a, b;
346 a = "bob"; 346 a = "bob";
347 a.setSize( 0 ); 347 a.setSize( 0 );
348 b = a; 348 b = a;
diff --git a/src/unit/substream.unit b/src/unit/substream.unit
index 49817b0..456e69a 100644
--- a/src/unit/substream.unit
+++ b/src/unit/substream.unit
@@ -1,6 +1,6 @@
1// vim: syntax=cpp 1// vim: syntax=cpp
2/* 2/*
3 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 3 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
4 * 4 *
5 * This file is part of the libbu++ library and is released under the 5 * This file is part of the libbu++ library and is released under the
6 * terms of the license contained in the file LICENSE. 6 * terms of the license contained in the file LICENSE.
diff --git a/src/unit/taf.unit b/src/unit/taf.unit
index cab04d2..5fedcec 100644
--- a/src/unit/taf.unit
+++ b/src/unit/taf.unit
@@ -1,6 +1,6 @@
1// vim: syntax=cpp 1// vim: syntax=cpp
2/* 2/*
3 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 3 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
4 * 4 *
5 * This file is part of the libbu++ library and is released under the 5 * This file is part of the libbu++ library and is released under the
6 * terms of the license contained in the file LICENSE. 6 * terms of the license contained in the file LICENSE.
@@ -18,7 +18,7 @@ suite Taf
18 test read1 18 test read1
19 { 19 {
20#define FN_TMP ("/tmp/tmpXXXXXXXX") 20#define FN_TMP ("/tmp/tmpXXXXXXXX")
21 Bu::FString sFnTmp(FN_TMP); 21 Bu::String sFnTmp(FN_TMP);
22 Bu::File fOut = Bu::File::tempFile( sFnTmp ); 22 Bu::File fOut = Bu::File::tempFile( sFnTmp );
23 const char *data = 23 const char *data =
24 "{test: name=\"Bob\"}" 24 "{test: name=\"Bob\"}"
@@ -43,7 +43,7 @@ suite Taf
43 Bu::TafWriter tw( mb ); 43 Bu::TafWriter tw( mb );
44 44
45 Bu::TafGroup g("Test data"); 45 Bu::TafGroup g("Test data");
46 Bu::FString sData( 256 ); 46 Bu::String sData( 256 );
47 for( int j = 0; j < 256; j++ ) 47 for( int j = 0; j < 256; j++ )
48 sData[j] = (unsigned char)j; 48 sData[j] = (unsigned char)j;
49 g.addChild( new Bu::TafProperty("Encoded", sData) ); 49 g.addChild( new Bu::TafProperty("Encoded", sData) );
@@ -87,7 +87,7 @@ suite Taf
87 Bu::TafWriter tw( mb ); 87 Bu::TafWriter tw( mb );
88 88
89 Bu::TafGroup g("Test Group"); 89 Bu::TafGroup g("Test Group");
90 Bu::FString sVal; 90 Bu::String sVal;
91 g.addChild( new Bu::TafProperty("Lame", sVal) ); 91 g.addChild( new Bu::TafProperty("Lame", sVal) );
92 tw.writeGroup( &g ); 92 tw.writeGroup( &g );
93 93
diff --git a/src/unit/variant.unit b/src/unit/variant.unit
index ecfa5c3..ca977ee 100644
--- a/src/unit/variant.unit
+++ b/src/unit/variant.unit
@@ -1,6 +1,6 @@
1// vim: syntax=cpp 1// vim: syntax=cpp
2/* 2/*
3 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 3 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
4 * 4 *
5 * This file is part of the libbu++ library and is released under the 5 * This file is part of the libbu++ library and is released under the
6 * terms of the license contained in the file LICENSE. 6 * terms of the license contained in the file LICENSE.
diff --git a/src/unit/xml.unit b/src/unit/xml.unit
index 67216f0..ab339c2 100644
--- a/src/unit/xml.unit
+++ b/src/unit/xml.unit
@@ -1,12 +1,12 @@
1// vim: syntax=cpp 1// vim: syntax=cpp
2/* 2/*
3 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 3 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
4 * 4 *
5 * This file is part of the libbu++ library and is released under the 5 * This file is part of the libbu++ library and is released under the
6 * terms of the license contained in the file LICENSE. 6 * terms of the license contained in the file LICENSE.
7 */ 7 */
8 8
9#include "bu/fstring.h" 9#include "bu/string.h"
10#include "bu/xmlreader.h" 10#include "bu/xmlreader.h"
11#include "bu/membuf.h" 11#include "bu/membuf.h"
12 12
@@ -14,7 +14,7 @@ suite Xml
14{ 14{
15 test declaration 15 test declaration
16 { 16 {
17 Bu::FString sXml("<?xml ?> <hi />"); 17 Bu::String sXml("<?xml ?> <hi />");
18 Bu::MemBuf buf( sXml ); 18 Bu::MemBuf buf( sXml );
19 Bu::XmlReader xr( buf ); 19 Bu::XmlReader xr( buf );
20 } 20 }
diff --git a/src/unitsuite.cpp b/src/unitsuite.cpp
index ce6d037..db930a4 100644
--- a/src/unitsuite.cpp
+++ b/src/unitsuite.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -158,14 +158,14 @@ int Bu::UnitSuite::run( int argc, char *argv[] )
158 return 0; 158 return 0;
159} 159}
160 160
161Bu::File Bu::UnitSuite::tempFile( Bu::FString &sFileName ) 161Bu::File Bu::UnitSuite::tempFile( Bu::String &sFileName )
162{ 162{
163 Bu::File f = Bu::File::tempFile( sFileName ); 163 Bu::File f = Bu::File::tempFile( sFileName );
164 lFileCleanup.append( sFileName ); 164 lFileCleanup.append( sFileName );
165 return f; 165 return f;
166} 166}
167 167
168void Bu::UnitSuite::add( Test fTest, const Bu::FString &sName, Expect e ) 168void Bu::UnitSuite::add( Test fTest, const Bu::String &sName, Expect e )
169{ 169{
170 TestInfo ti; 170 TestInfo ti;
171 ti.sName = sName; 171 ti.sName = sName;
@@ -173,7 +173,7 @@ void Bu::UnitSuite::add( Test fTest, const Bu::FString &sName, Expect e )
173 long index = ti.sName.rfindIdx("::"); 173 long index = ti.sName.rfindIdx("::");
174 if( index != -1 ) 174 if( index != -1 )
175 { 175 {
176 FString tmp = sSuiteName; 176 String tmp = sSuiteName;
177 tmp += ti.sName.getStr()+index; 177 tmp += ti.sName.getStr()+index;
178 ti.sName = tmp; 178 ti.sName = tmp;
179 } 179 }
@@ -183,7 +183,7 @@ void Bu::UnitSuite::add( Test fTest, const Bu::FString &sName, Expect e )
183 iNameWidth = ti.sName.getSize(); 183 iNameWidth = ti.sName.getSize();
184} 184}
185 185
186void Bu::UnitSuite::setName( const FString &sName ) 186void Bu::UnitSuite::setName( const String &sName )
187{ 187{
188 sSuiteName = sName; 188 sSuiteName = sName;
189} 189}
diff --git a/src/unitsuite.h b/src/unitsuite.h
index 475ee48..2250a4d 100644
--- a/src/unitsuite.h
+++ b/src/unitsuite.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -10,7 +10,7 @@
10 10
11#include <stdint.h> 11#include <stdint.h>
12#include "bu/list.h" 12#include "bu/list.h"
13#include "bu/fstring.h" 13#include "bu/string.h"
14#include "bu/file.h" 14#include "bu/file.h"
15#include "bu/array.h" 15#include "bu/array.h"
16 16
@@ -63,7 +63,7 @@ namespace Bu
63 63
64 int run( int argc=0, char *argv[]=NULL ); 64 int run( int argc=0, char *argv[]=NULL );
65 65
66 Bu::File tempFile( Bu::FString &sFileName ); 66 Bu::File tempFile( Bu::String &sFileName );
67 67
68 typedef void (UnitSuite::*Test)(); 68 typedef void (UnitSuite::*Test)();
69 69
@@ -71,12 +71,12 @@ namespace Bu
71 { 71 {
72 public: 72 public:
73 Failed() : str(""), bFile( false ) { } 73 Failed() : str(""), bFile( false ) { }
74 Failed( const FString &s ) : str( s ), bFile( false ) { } 74 Failed( const String &s ) : str( s ), bFile( false ) { }
75 Failed( const FString &s, const FString &sFile, int nLine ) : 75 Failed( const String &s, const String &sFile, int nLine ) :
76 str( s ), sFile( sFile ), nLine( nLine ), bFile( true ) { } 76 str( s ), sFile( sFile ), nLine( nLine ), bFile( true ) { }
77 77
78 FString str; 78 String str;
79 FString sFile; 79 String sFile;
80 int nLine; 80 int nLine;
81 bool bFile; 81 bool bFile;
82 }; 82 };
@@ -93,8 +93,8 @@ namespace Bu
93 }; 93 };
94 94
95 protected: 95 protected:
96 void add( Test fTest, const Bu::FString &sName, Expect e=expectPass ); 96 void add( Test fTest, const Bu::String &sName, Expect e=expectPass );
97 void setName( const FString &sName ); 97 void setName( const String &sName );
98 98
99 void dispProgress(); 99 void dispProgress();
100 void setStepCount( int iSteps ); 100 void setStepCount( int iSteps );
@@ -102,23 +102,23 @@ namespace Bu
102 void setProgress( int iAmnt ); 102 void setProgress( int iAmnt );
103 103
104 private: 104 private:
105 int onListCases( Bu::Array<Bu::FString> aParam ); 105 int onListCases( Bu::Array<Bu::String> aParam );
106 106
107 private: 107 private:
108 typedef struct TestInfo 108 typedef struct TestInfo
109 { 109 {
110 FString sName; 110 String sName;
111 Test fTest; 111 Test fTest;
112 Expect eExpect; 112 Expect eExpect;
113 } TestInfo; 113 } TestInfo;
114 114
115 typedef Bu::List<TestInfo> TestList; 115 typedef Bu::List<TestInfo> TestList;
116 TestList lTests; 116 TestList lTests;
117 FString sSuiteName; 117 String sSuiteName;
118 118
119 int iOptions; 119 int iOptions;
120 120
121 typedef Bu::List<Bu::FString> StrList; 121 typedef Bu::List<Bu::String> StrList;
122 StrList lFileCleanup; 122 StrList lFileCleanup;
123 int iNameWidth; 123 int iNameWidth;
124 int iStepCount; 124 int iStepCount;
diff --git a/src/url.cpp b/src/url.cpp
index 1f9f563..7b4a48e 100644
--- a/src/url.cpp
+++ b/src/url.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -21,7 +21,7 @@ Bu::Url::Url()
21{ 21{
22} 22}
23 23
24Bu::Url::Url( const Bu::FString &sUrl ) 24Bu::Url::Url( const Bu::String &sUrl )
25{ 25{
26 parseUrl( sUrl ); 26 parseUrl( sUrl );
27} 27}
@@ -30,22 +30,22 @@ Bu::Url::~Url()
30{ 30{
31} 31}
32 32
33void Bu::Url::parseUrl( const Bu::FString &sUrl ) 33void Bu::Url::parseUrl( const Bu::String &sUrl )
34{ 34{
35 clear(); 35 clear();
36 36
37 Bu::FString::const_iterator i = sUrl.begin(); 37 Bu::String::const_iterator i = sUrl.begin();
38 parseProtocol( i ); 38 parseProtocol( i );
39 parseUserPass( i ); 39 parseUserPass( i );
40 parseHost( i ); 40 parseHost( i );
41 parsePath( i ); 41 parsePath( i );
42} 42}
43 43
44Bu::FString Bu::Url::decode( const Bu::FString &sStr ) 44Bu::String Bu::Url::decode( const Bu::String &sStr )
45{ 45{
46 Bu::FString sRet; 46 Bu::String sRet;
47 char buf[3] = {0, 0, 0}; 47 char buf[3] = {0, 0, 0};
48 for( Bu::FString::const_iterator i = sStr.begin(); i; i++ ) 48 for( Bu::String::const_iterator i = sStr.begin(); i; i++ )
49 { 49 {
50 if( *i == '+' ) 50 if( *i == '+' )
51 { 51 {
@@ -67,10 +67,10 @@ Bu::FString Bu::Url::decode( const Bu::FString &sStr )
67 return sRet; 67 return sRet;
68} 68}
69 69
70Bu::FString Bu::Url::encode( const Bu::FString &sStr ) 70Bu::String Bu::Url::encode( const Bu::String &sStr )
71{ 71{
72 Bu::FString sRet; 72 Bu::String sRet;
73 for( Bu::FString::const_iterator i = sStr.begin(); i; i++ ) 73 for( Bu::String::const_iterator i = sStr.begin(); i; i++ )
74 { 74 {
75 if( *i == ' ' ) 75 if( *i == ' ' )
76 { 76 {
@@ -96,17 +96,17 @@ Bu::FString Bu::Url::encode( const Bu::FString &sStr )
96 return sRet; 96 return sRet;
97} 97}
98 98
99void Bu::Url::parseProtocol( Bu::FString::const_iterator &i ) 99void Bu::Url::parseProtocol( Bu::String::const_iterator &i )
100{ 100{
101 Bu::FString::const_iterator s = i.find("://", 3); 101 Bu::String::const_iterator s = i.find("://", 3);
102 if( !s ) 102 if( !s )
103 throw Bu::ExceptionBase("No :// in url"); 103 throw Bu::ExceptionBase("No :// in url");
104 Bu::FString sTmp( i, s ); 104 Bu::String sTmp( i, s );
105 setProtocol( sTmp ); 105 setProtocol( sTmp );
106 i = s + 3; 106 i = s + 3;
107} 107}
108 108
109void Bu::Url::setProtocol( const Bu::FString &sNewProto, bool bAutoSetPort ) 109void Bu::Url::setProtocol( const Bu::String &sNewProto, bool bAutoSetPort )
110{ 110{
111 sProtocol = sNewProto; 111 sProtocol = sNewProto;
112#ifndef WIN32 112#ifndef WIN32
@@ -121,13 +121,13 @@ void Bu::Url::setProtocol( const Bu::FString &sNewProto, bool bAutoSetPort )
121#endif 121#endif
122} 122}
123 123
124void Bu::Url::parseUserPass( Bu::FString::const_iterator &i ) 124void Bu::Url::parseUserPass( Bu::String::const_iterator &i )
125{ 125{
126 Bu::FString::const_iterator s = i.find('@'); 126 Bu::String::const_iterator s = i.find('@');
127 if( !s ) 127 if( !s )
128 return; 128 return;
129 129
130 Bu::FString::const_iterator p = i.find(':'); 130 Bu::String::const_iterator p = i.find(':');
131 if( p ) 131 if( p )
132 { 132 {
133 sUser.set( i, p ); 133 sUser.set( i, p );
@@ -141,9 +141,9 @@ void Bu::Url::parseUserPass( Bu::FString::const_iterator &i )
141 i = s + 1; 141 i = s + 1;
142} 142}
143 143
144void Bu::Url::parseHost( Bu::FString::const_iterator &i ) 144void Bu::Url::parseHost( Bu::String::const_iterator &i )
145{ 145{
146 Bu::FString::const_iterator s = i; 146 Bu::String::const_iterator s = i;
147 for( ; s && *s != '/'; s++ ) 147 for( ; s && *s != '/'; s++ )
148 { 148 {
149 if( *s == ':' ) 149 if( *s == ':' )
@@ -151,7 +151,7 @@ void Bu::Url::parseHost( Bu::FString::const_iterator &i )
151 sHost.set( i, s ); 151 sHost.set( i, s );
152 i = s + 1; 152 i = s + 1;
153 s = i.find('/'); 153 s = i.find('/');
154 Bu::FString sPort( i, s ); 154 Bu::String sPort( i, s );
155 iPort = strtol( sPort.getStr(), NULL, 10 ); 155 iPort = strtol( sPort.getStr(), NULL, 10 );
156 i = s; 156 i = s;
157 return; 157 return;
@@ -161,17 +161,17 @@ void Bu::Url::parseHost( Bu::FString::const_iterator &i )
161 i = s; 161 i = s;
162} 162}
163 163
164void Bu::Url::parsePath( const Bu::FString &sPath ) 164void Bu::Url::parsePath( const Bu::String &sPath )
165{ 165{
166 Bu::FString::const_iterator i = sPath.begin(); 166 Bu::String::const_iterator i = sPath.begin();
167 parsePath( i ); 167 parsePath( i );
168} 168}
169 169
170void Bu::Url::parsePath( Bu::FString::const_iterator &i ) 170void Bu::Url::parsePath( Bu::String::const_iterator &i )
171{ 171{
172 if( i ) 172 if( i )
173 { 173 {
174 Bu::FString::const_iterator s = i.find('?'); 174 Bu::String::const_iterator s = i.find('?');
175 sPath.set( i, s ); 175 sPath.set( i, s );
176 i = s + 1; 176 i = s + 1;
177 if( s ) 177 if( s )
@@ -185,17 +185,17 @@ void Bu::Url::parsePath( Bu::FString::const_iterator &i )
185 } 185 }
186} 186}
187 187
188void Bu::Url::parseParams( const Bu::FString &sQuery ) 188void Bu::Url::parseParams( const Bu::String &sQuery )
189{ 189{
190 Bu::FString::const_iterator i = sQuery.begin(); 190 Bu::String::const_iterator i = sQuery.begin();
191 parseParams( i ); 191 parseParams( i );
192} 192}
193 193
194void Bu::Url::parseParams( Bu::FString::const_iterator &i ) 194void Bu::Url::parseParams( Bu::String::const_iterator &i )
195{ 195{
196 bool bName = true; 196 bool bName = true;
197 Bu::FString sName, sValue; 197 Bu::String sName, sValue;
198 for( Bu::FString::const_iterator s = i; s; s++ ) 198 for( Bu::String::const_iterator s = i; s; s++ )
199 { 199 {
200 if( bName ) 200 if( bName )
201 { 201 {
@@ -239,7 +239,7 @@ void Bu::Url::parseParams( Bu::FString::const_iterator &i )
239 } 239 }
240} 240}
241 241
242void Bu::Url::addParam( const Bu::FString &n, const Bu::FString &v ) 242void Bu::Url::addParam( const Bu::String &n, const Bu::String &v )
243{ 243{
244 lParam.append( Param( n, v ) ); 244 lParam.append( Param( n, v ) );
245} 245}
@@ -254,9 +254,9 @@ void Bu::Url::clear()
254 iPort.clear(); 254 iPort.clear();
255} 255}
256 256
257Bu::FString Bu::Url::getFullPath() const 257Bu::String Bu::Url::getFullPath() const
258{ 258{
259 Bu::FString sBuf = sPath; 259 Bu::String sBuf = sPath;
260 if( !lParam.isEmpty() ) 260 if( !lParam.isEmpty() )
261 { 261 {
262 for( ParamList::const_iterator i = lParam.begin(); i; i++ ) 262 for( ParamList::const_iterator i = lParam.begin(); i; i++ )
@@ -277,9 +277,9 @@ Bu::FString Bu::Url::getFullPath() const
277 return sBuf; 277 return sBuf;
278} 278}
279 279
280Bu::FString Bu::Url::getUrl() const 280Bu::String Bu::Url::getUrl() const
281{ 281{
282 Bu::FString sBuf = sProtocol + "://" + sHost + getFullPath(); 282 Bu::String sBuf = sProtocol + "://" + sHost + getFullPath();
283 return sBuf; 283 return sBuf;
284} 284}
285 285
diff --git a/src/url.h b/src/url.h
index ea761ef..d751578 100644
--- a/src/url.h
+++ b/src/url.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -8,7 +8,7 @@
8#ifndef BU_URL_H 8#ifndef BU_URL_H
9#define BU_URL_H 9#define BU_URL_H
10 10
11#include "bu/fstring.h" 11#include "bu/string.h"
12#include "bu/atom.h" 12#include "bu/atom.h"
13 13
14namespace Bu 14namespace Bu
@@ -20,61 +20,61 @@ namespace Bu
20 { 20 {
21 Param() { } 21 Param() { }
22 Param( const Param &r ) : sName( r.sName ), sValue( r.sValue ) { } 22 Param( const Param &r ) : sName( r.sName ), sValue( r.sValue ) { }
23 Param( const Bu::FString &n, const Bu::FString &v ) : 23 Param( const Bu::String &n, const Bu::String &v ) :
24 sName( n ), sValue( v ) { } 24 sName( n ), sValue( v ) { }
25 Bu::FString sName; 25 Bu::String sName;
26 Bu::FString sValue; 26 Bu::String sValue;
27 } Param; 27 } Param;
28 typedef Bu::List<Param> ParamList; 28 typedef Bu::List<Param> ParamList;
29 29
30 public: 30 public:
31 Url(); 31 Url();
32 Url( const Bu::FString &sUrl ); 32 Url( const Bu::String &sUrl );
33 virtual ~Url(); 33 virtual ~Url();
34 34
35 void parseUrl( const Bu::FString &sUrl ); 35 void parseUrl( const Bu::String &sUrl );
36 void parseParams( const Bu::FString &sQuery ); 36 void parseParams( const Bu::String &sQuery );
37 void parseParams( Bu::FString::const_iterator &i ); 37 void parseParams( Bu::String::const_iterator &i );
38 void parsePath( const Bu::FString &sPath ); 38 void parsePath( const Bu::String &sPath );
39 void parsePath( Bu::FString::const_iterator &i ); 39 void parsePath( Bu::String::const_iterator &i );
40 void clear(); 40 void clear();
41 41
42 Bu::FString getUrl() const; 42 Bu::String getUrl() const;
43 Bu::FString getFullPath() const; 43 Bu::String getFullPath() const;
44 44
45 const Bu::FString &getProtocol() const { return sProtocol; } 45 const Bu::String &getProtocol() const { return sProtocol; }
46 const Bu::FString &getUser() const { return sUser; } 46 const Bu::String &getUser() const { return sUser; }
47 const Bu::FString &getPass() const { return sPass; } 47 const Bu::String &getPass() const { return sPass; }
48 const Bu::FString &getHost() const { return sHost; } 48 const Bu::String &getHost() const { return sHost; }
49 const Bu::FString &getPath() const { return sPath; } 49 const Bu::String &getPath() const { return sPath; }
50 int getPort() const { return iPort; } 50 int getPort() const { return iPort; }
51 ParamList::const_iterator getParamBegin() const 51 ParamList::const_iterator getParamBegin() const
52 { return lParam.begin(); } 52 { return lParam.begin(); }
53 53
54 void setProtocol( const Bu::FString &sNewHost, bool bAutoSetPort=true ); 54 void setProtocol( const Bu::String &sNewHost, bool bAutoSetPort=true );
55 void setUser( const Bu::FString &s ) { sUser = s; } 55 void setUser( const Bu::String &s ) { sUser = s; }
56 void setPass( const Bu::FString &s ) { sPass = s; } 56 void setPass( const Bu::String &s ) { sPass = s; }
57 void setHost( const Bu::FString &s ) { sHost = s; } 57 void setHost( const Bu::String &s ) { sHost = s; }
58 void setPath( const Bu::FString &s ) { sPath = s; } 58 void setPath( const Bu::String &s ) { sPath = s; }
59 void setPort( int i ) { iPort = i; } 59 void setPort( int i ) { iPort = i; }
60 void addParam( const Bu::FString &n, const Bu::FString &v ); 60 void addParam( const Bu::String &n, const Bu::String &v );
61 61
62 bool hasPort() const { return iPort.has(); } 62 bool hasPort() const { return iPort.has(); }
63 63
64 static Bu::FString decode( const Bu::FString &sStr ); 64 static Bu::String decode( const Bu::String &sStr );
65 static Bu::FString encode( const Bu::FString &sStr ); 65 static Bu::String encode( const Bu::String &sStr );
66 66
67 private: // Parsing code 67 private: // Parsing code
68 void parseProtocol( Bu::FString::const_iterator &i ); 68 void parseProtocol( Bu::String::const_iterator &i );
69 void parseUserPass( Bu::FString::const_iterator &i ); 69 void parseUserPass( Bu::String::const_iterator &i );
70 void parseHost( Bu::FString::const_iterator &i ); 70 void parseHost( Bu::String::const_iterator &i );
71 71
72 private: 72 private:
73 Bu::FString sProtocol; 73 Bu::String sProtocol;
74 Bu::FString sUser; 74 Bu::String sUser;
75 Bu::FString sPass; 75 Bu::String sPass;
76 Bu::FString sHost; 76 Bu::String sHost;
77 Bu::FString sPath; 77 Bu::String sPath;
78 Bu::Atom<int> iPort; 78 Bu::Atom<int> iPort;
79 ParamList lParam; 79 ParamList lParam;
80 80
diff --git a/src/urn.cpp b/src/urn.cpp
index b798a1f..106fb64 100644
--- a/src/urn.cpp
+++ b/src/urn.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/urn.h b/src/urn.h
index b798a1f..106fb64 100644
--- a/src/urn.h
+++ b/src/urn.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/utfstring.cpp b/src/utfstring.cpp
index ae5efaf..eb23713 100644
--- a/src/utfstring.cpp
+++ b/src/utfstring.cpp
@@ -1,29 +1,17 @@
1#include "bu/utfstring.h" 1/*
2 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3template class Bu::FBasicString<short>; 3 *
4 4 * This file is part of the libbu++ library and is released under the
5template<> uint32_t Bu::__calcHashCode<Bu::UtfString>( const Bu::UtfString &k ) 5 * terms of the license contained in the file LICENSE.
6{ 6 */
7 long j, sz = k.getSize()*2;
8 const char *s = (const char *)k.getStr();
9 7
10 long nPos = 0; 8#include "bu/utfstring.h"
11 for( j = 0; j < sz; j++, s++ )
12 {
13 nPos = *s + (nPos << 6) + (nPos << 16) - nPos;
14 }
15
16 return nPos;
17}
18 9
19template<> bool Bu::__cmpHashKeys<Bu::UtfString>( 10Bu::UtfString::UtfString()
20 const Bu::UtfString &a, const Bu::UtfString &b )
21{ 11{
22 return a == b;
23} 12}
24 13
25template<> void Bu::__tracer_format<Bu::UtfString>( const Bu::UtfString &v ) 14Bu::UtfString::~UtfString()
26{ 15{
27 printf("(%ld)\"%s\"", v.getSize(), (const char *)v.getStr() );
28} 16}
29 17
diff --git a/src/utfstring.h b/src/utfstring.h
index bbacb74..2140af1 100644
--- a/src/utfstring.h
+++ b/src/utfstring.h
@@ -1,24 +1,29 @@
1/*
2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 *
4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE.
6 */
7
1#ifndef BU_UTF_STRING_H 8#ifndef BU_UTF_STRING_H
2#define BU_UTF_STRING_H 9#define BU_UTF_STRING_H
3 10
4#include "bu/fbasicstring.h" 11#include "bu/string.h"
5 12
6namespace Bu 13namespace Bu
7{ 14{
8 typedef FBasicString<short> UtfString; 15 class UtfString
9 16 {
10 template<typename T> 17 public:
11 uint32_t __calcHashCode( const T &k ); 18 UtfString();
19 virtual ~UtfString();
12 20
13 template<typename T> 21 typedef uint32_t point;
14 bool __cmpHashKeys( const T &a, const T &b );
15 22
16 template<> uint32_t __calcHashCode<UtfString>( const UtfString &k ); 23 private:
17 template<> bool __cmpHashKeys<UtfString>( 24 typedef BasicString<uint16_t> RawString;
18 const UtfString &a, const UtfString &b ); 25 RawString rsStore;
19 26 };
20 template<typename t> void __tracer_format( const t &v ); 27};
21 template<> void __tracer_format<UtfString>( const UtfString &v );
22}
23 28
24#endif 29#endif
diff --git a/src/util.cpp b/src/util.cpp
index 0d2420a..6983dfd 100644
--- a/src/util.cpp
+++ b/src/util.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/util.h b/src/util.h
index 803c49f..691184d 100644
--- a/src/util.h
+++ b/src/util.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/uuid.cpp b/src/uuid.cpp
index 410cf6b..69af5b4 100644
--- a/src/uuid.cpp
+++ b/src/uuid.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -25,12 +25,12 @@ Bu::Uuid::~Uuid()
25{ 25{
26} 26}
27 27
28Bu::FString Bu::Uuid::toRawString() 28Bu::String Bu::Uuid::toRawString()
29{ 29{
30 return Bu::FString( (char *)data, 16 ); 30 return Bu::String( (char *)data, 16 );
31} 31}
32 32
33Bu::FString Bu::Uuid::toString() 33Bu::String Bu::Uuid::toString()
34{ 34{
35 Bu::MemBuf mb; 35 Bu::MemBuf mb;
36 Bu::Formatter f( mb ); 36 Bu::Formatter f( mb );
diff --git a/src/uuid.h b/src/uuid.h
index b9a37e9..327686f 100644
--- a/src/uuid.h
+++ b/src/uuid.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -8,7 +8,7 @@
8#ifndef BU_UUID_H 8#ifndef BU_UUID_H
9#define BU_UUID_H 9#define BU_UUID_H
10 10
11#include "bu/fstring.h" 11#include "bu/string.h"
12 12
13namespace Bu 13namespace Bu
14{ 14{
@@ -19,8 +19,8 @@ namespace Bu
19 Uuid( const Uuid &src ); 19 Uuid( const Uuid &src );
20 virtual ~Uuid(); 20 virtual ~Uuid();
21 21
22 Bu::FString toRawString(); 22 Bu::String toRawString();
23 Bu::FString toString(); 23 Bu::String toString();
24 24
25 static Uuid gen(); 25 static Uuid gen();
26 static Uuid genV1(); 26 static Uuid genV1();
diff --git a/src/variant.cpp b/src/variant.cpp
index a239e0f..fd0511f 100644
--- a/src/variant.cpp
+++ b/src/variant.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -9,7 +9,7 @@
9 9
10namespace Bu 10namespace Bu
11{ 11{
12 Formatter &operator<<( Formatter &f, const FString &s ); 12 Formatter &operator<<( Formatter &f, const String &s );
13}; 13};
14 14
15Bu::VariantTypeRoot::VariantTypeRoot() 15Bu::VariantTypeRoot::VariantTypeRoot()
@@ -37,7 +37,7 @@ Bu::Variant::Variant( const Variant &v ) :
37Bu::Variant::Variant( const char *t ) : 37Bu::Variant::Variant( const char *t ) :
38 pCore( NULL ) 38 pCore( NULL )
39{ 39{
40 set( Bu::FString( t ) ); 40 set( Bu::String( t ) );
41} 41}
42 42
43Bu::Variant::~Variant() 43Bu::Variant::~Variant()
@@ -54,7 +54,7 @@ bool Bu::Variant::isSet() const
54 return pCore != NULL; 54 return pCore != NULL;
55} 55}
56 56
57Bu::FString Bu::Variant::toString() const 57Bu::String Bu::Variant::toString() const
58{ 58{
59 if( !pCore ) 59 if( !pCore )
60 return "***NO DATA***"; 60 return "***NO DATA***";
@@ -90,14 +90,14 @@ Bu::Formatter &Bu::operator<<( Bu::Formatter &f, const Bu::Variant &v )
90 return f << v.toString(); 90 return f << v.toString();
91} 91}
92 92
93template<> Bu::FString Bu::VariantType<int>::toString() const 93template<> Bu::String Bu::VariantType<int>::toString() const
94{ 94{
95 Bu::FString s; 95 Bu::String s;
96 s.format("%d", data ); 96 s.format("%d", data );
97 return s; 97 return s;
98} 98}
99 99
100template<> Bu::FString Bu::VariantType<bool>::toString() const 100template<> Bu::String Bu::VariantType<bool>::toString() const
101{ 101{
102 return data?"true":"false"; 102 return data?"true":"false";
103} 103}
diff --git a/src/variant.h b/src/variant.h
index f659ad2..2b88efe 100644
--- a/src/variant.h
+++ b/src/variant.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -8,7 +8,7 @@
8#ifndef BU_VARIANT_H 8#ifndef BU_VARIANT_H
9#define BU_VARIANT_H 9#define BU_VARIANT_H
10 10
11#include <bu/fstring.h> 11#include <bu/string.h>
12#include <typeinfo> 12#include <typeinfo>
13#include <bu/membuf.h> 13#include <bu/membuf.h>
14#include <bu/formatter.h> 14#include <bu/formatter.h>
@@ -26,7 +26,7 @@ namespace Bu
26 VariantTypeRoot(); 26 VariantTypeRoot();
27 virtual ~VariantTypeRoot(); 27 virtual ~VariantTypeRoot();
28 28
29 virtual Bu::FString toString() const=0; 29 virtual Bu::String toString() const=0;
30 virtual const std::type_info &getType() const=0; 30 virtual const std::type_info &getType() const=0;
31 virtual VariantTypeRoot *clone() const=0; 31 virtual VariantTypeRoot *clone() const=0;
32 }; 32 };
@@ -65,7 +65,7 @@ namespace Bu
65 return data; 65 return data;
66 } 66 }
67 67
68 virtual Bu::FString toString() const 68 virtual Bu::String toString() const
69 { 69 {
70 MemBuf mb; 70 MemBuf mb;
71 Formatter f( mb ); 71 Formatter f( mb );
@@ -124,7 +124,7 @@ namespace Bu
124 virtual ~Variant(); 124 virtual ~Variant();
125 125
126 bool isSet() const; 126 bool isSet() const;
127 Bu::FString toString() const; 127 Bu::String toString() const;
128 const std::type_info &getType() const; 128 const std::type_info &getType() const;
129 129
130 Variant &operator=( const Variant &rhs ); 130 Variant &operator=( const Variant &rhs );
@@ -228,8 +228,8 @@ namespace Bu
228 228
229 Bu::Formatter &operator<<( Bu::Formatter &f, const Variant &v ); 229 Bu::Formatter &operator<<( Bu::Formatter &f, const Variant &v );
230 230
231 template<> Bu::FString VariantType<int>::toString() const; 231 template<> Bu::String VariantType<int>::toString() const;
232 template<> Bu::FString VariantType<bool>::toString() const; 232 template<> Bu::String VariantType<bool>::toString() const;
233}; 233};
234 234
235#endif 235#endif
diff --git a/src/xmlreader.cpp b/src/xmlreader.cpp
index 7da2755..ba7fb3d 100644
--- a/src/xmlreader.cpp
+++ b/src/xmlreader.cpp
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
diff --git a/src/xmlreader.h b/src/xmlreader.h
index 8533c1a..7cb44c9 100644
--- a/src/xmlreader.h
+++ b/src/xmlreader.h
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copyright (C) 2007-2010 Xagasoft, All rights reserved. 2 * Copyright (C) 2007-2011 Xagasoft, All rights reserved.
3 * 3 *
4 * This file is part of the libbu++ library and is released under the 4 * This file is part of the libbu++ library and is released under the
5 * terms of the license contained in the file LICENSE. 5 * terms of the license contained in the file LICENSE.
@@ -8,7 +8,7 @@
8#ifndef BU_XML_READER_H 8#ifndef BU_XML_READER_H
9#define BU_XML_READER_H 9#define BU_XML_READER_H
10 10
11#include "bu/fstring.h" 11#include "bu/string.h"
12#include "bu/exceptionbase.h" 12#include "bu/exceptionbase.h"
13 13
14namespace Bu 14namespace Bu
@@ -27,8 +27,8 @@ namespace Bu
27 Stream &rInput; 27 Stream &rInput;
28 int iCurToken; 28 int iCurToken;
29 int iNextToken; 29 int iNextToken;
30 Bu::FString sBuf; 30 Bu::String sBuf;
31 Bu::FString sStr; 31 Bu::String sStr;
32 bool bIgnoreWS; 32 bool bIgnoreWS;
33 typedef struct StreamPos 33 typedef struct StreamPos
34 { 34 {
diff --git a/support/fixstrings.sh b/support/fixstrings.sh
new file mode 100755
index 0000000..d7de847
--- /dev/null
+++ b/support/fixstrings.sh
@@ -0,0 +1,17 @@
1#!/bin/bash
2
3echo Automatically fixing all .cpp, .h, .unit, and .doxy files in this tree.
4echo Files are updated in place, you have them in version control, right?
5echo If this isn\'t what you want, press ctrl+c, otherwise, enter.
6echo
7read
8for i in $(find . -iname '*.cpp' -o -iname '*.h' -o -iname '*.unit' -o -iname '*.doxy'); do
9 echo -n $i...
10 sed -i $i \
11 -e 's@"fstring.h@"bu/string.h@' \
12 -e 's@"bu/fstring.h@"bu/string.h@' \
13 -e 's@<fstring.h@<bu/string.h@' \
14 -e 's@<bu/fstring.h@<bu/string.h@' \
15 -e 's@FString@String@'
16 echo done.
17done