summaryrefslogtreecommitdiffstats
path: root/sca-cpp/trunk/kernel
diff options
context:
space:
mode:
authorjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2010-11-14 09:27:28 +0000
committerjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2010-11-14 09:27:28 +0000
commit2c7009b5200ff5b7462b56239c909daef8ed7910 (patch)
tree40b116d31a3c7f56540d12ed05a5b80f3e7c4ef3 /sca-cpp/trunk/kernel
parentefccdd821b68280ee3b73c8ef5cda121bc27f620 (diff)
Port to Ubuntu server 10.10 64-bit. C++ code fixes required to compile and run on 64-bit. Update INSTALL doc and build scripts. Remove a few obsolete scripts.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1034963 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-cpp/trunk/kernel')
-rw-r--r--sca-cpp/trunk/kernel/fstream.hpp2
-rw-r--r--sca-cpp/trunk/kernel/function.hpp4
-rw-r--r--sca-cpp/trunk/kernel/gc.hpp18
-rw-r--r--sca-cpp/trunk/kernel/hash.hpp14
-rw-r--r--sca-cpp/trunk/kernel/list.hpp6
-rw-r--r--sca-cpp/trunk/kernel/parallel.hpp22
-rw-r--r--sca-cpp/trunk/kernel/sstream.hpp23
-rw-r--r--sca-cpp/trunk/kernel/stream.hpp7
-rw-r--r--sca-cpp/trunk/kernel/string-test.cpp12
-rw-r--r--sca-cpp/trunk/kernel/string.hpp34
-rw-r--r--sca-cpp/trunk/kernel/tree.hpp6
-rw-r--r--sca-cpp/trunk/kernel/xml.hpp2
-rw-r--r--sca-cpp/trunk/kernel/xsd-test.cpp2
13 files changed, 77 insertions, 75 deletions
diff --git a/sca-cpp/trunk/kernel/fstream.hpp b/sca-cpp/trunk/kernel/fstream.hpp
index 033024de1d..8efb798b57 100644
--- a/sca-cpp/trunk/kernel/fstream.hpp
+++ b/sca-cpp/trunk/kernel/fstream.hpp
@@ -101,7 +101,7 @@ public:
fclose(file);
}
- const int read(void* buf, int size) {
+ const size_t read(void* buf, size_t size) {
return fread(buf, 1, size, file);
}
diff --git a/sca-cpp/trunk/kernel/function.hpp b/sca-cpp/trunk/kernel/function.hpp
index db7318303a..701e0f1fa9 100644
--- a/sca-cpp/trunk/kernel/function.hpp
+++ b/sca-cpp/trunk/kernel/function.hpp
@@ -83,7 +83,7 @@ public:
Callable() {
}
- virtual const int size() const = 0;
+ virtual const size_t size() const = 0;
virtual const R operator()(P... p) const = 0;
@@ -110,7 +110,7 @@ public:
return function(std::forward<P>(p)...);
}
- virtual const int size() const {
+ virtual const size_t size() const {
return sizeof(function);
}
diff --git a/sca-cpp/trunk/kernel/gc.hpp b/sca-cpp/trunk/kernel/gc.hpp
index 77a879629a..09dcd1e5ac 100644
--- a/sca-cpp/trunk/kernel/gc.hpp
+++ b/sca-cpp/trunk/kernel/gc.hpp
@@ -244,40 +244,40 @@ template<typename T> T* gc_new() {
}
template<typename T> apr_status_t gc_pool_acleanup(void* v) {
- int* m = static_cast<int*>(v);
- int n = *m;
+ size_t* m = static_cast<size_t*>(v);
+ size_t n = *m;
T* t = (T*)(m + 1);
- for (int i = 0; i < n; i++, t++)
+ for (size_t i = 0; i < n; i++, t++)
t->~T();
return APR_SUCCESS;
}
-template<typename T> T* gc_anew(apr_pool_t* p, int n) {
- int* gc_anew_ptr = static_cast<int*>(apr_palloc(p, sizeof(int) + sizeof(T[n])));
+template<typename T> T* gc_anew(apr_pool_t* p, size_t n) {
+ size_t* gc_anew_ptr = static_cast<size_t*>(apr_palloc(p, sizeof(size_t) + sizeof(T[n])));
assert(gc_anew_ptr != NULL);
*gc_anew_ptr = n;
apr_pool_cleanup_register(p, gc_anew_ptr, gc_pool_acleanup<T>, apr_pool_cleanup_null) ;
return (T*)(gc_anew_ptr + 1);
}
-template<typename T> T* gc_anew(const gc_pool& p, int n) {
+template<typename T> T* gc_anew(const gc_pool& p, size_t n) {
return gc_anew<T>(pool(p), n);
}
-template<typename T> T* gc_anew(int n) {
+template<typename T> T* gc_anew(size_t n) {
return gc_anew<T>(gc_current_pool(), n);
}
/**
* Allocate an array of chars.
*/
-char* gc_cnew(apr_pool_t* p, int n) {
+char* gc_cnew(apr_pool_t* p, size_t n) {
char* gc_cnew_ptr = static_cast<char*>(apr_palloc(p, n));
assert(gc_cnew_ptr != NULL);
return gc_cnew_ptr;
}
-char* gc_cnew(int n) {
+char* gc_cnew(size_t n) {
return gc_cnew(gc_current_pool(), n);
}
diff --git a/sca-cpp/trunk/kernel/hash.hpp b/sca-cpp/trunk/kernel/hash.hpp
index 5cd213f09e..9de13dd690 100644
--- a/sca-cpp/trunk/kernel/hash.hpp
+++ b/sca-cpp/trunk/kernel/hash.hpp
@@ -43,8 +43,8 @@ namespace tuscany
* tree at contrib/ltree/crc32.[ch] and from FreeBSD at
* src/usr.bin/cksum/crc32.c.
*/
-const unsigned int crc32hash(const char* data, const unsigned int len) {
- return apr_memcache_hash_default(NULL, data, len);
+const unsigned int crc32hash(const char* data, const size_t len) {
+ return (unsigned int)apr_memcache_hash_default(NULL, data, len);
}
/**
@@ -89,7 +89,7 @@ const unsigned int crc32hash(const char* data, const unsigned int len) {
*
* -- Ralf S. Engelschall <rse@engelschall.com>
*/
-const unsigned int times33hash(const char* data, const unsigned int len) {
+const unsigned int times33hash(const char* data, const size_t len) {
apr_ssize_t l = len;
return apr_hashfunc_default(data, &l);
}
@@ -107,8 +107,8 @@ const unsigned int times33hash(const char* data, const unsigned int len) {
* Passes Bob Jenkin's frog.c torture-test. No collisions possible for 4 byte
* keys, no small 1 to 7 bit differentials.
*/
-const unsigned int murmurhash(const char* key, const unsigned int klen) {
- unsigned int len = klen;
+const unsigned int murmurhash(const char* key, const size_t klen) {
+ unsigned int len = (unsigned int)klen;
const unsigned int seed = 0;
// 'm' and 'r' are mixing constants generated offline.
@@ -153,8 +153,8 @@ const unsigned int murmurhash(const char* key, const unsigned int klen) {
* An endian and alignment neutral, but half the speed, version of
* the murmur hash.
*/
-const unsigned int portablemurmurhash(const char* key, const unsigned int klen) {
- unsigned int len = klen;
+const unsigned int portablemurmurhash(const char* key, const size_t klen) {
+ unsigned int len = (unsigned int)klen;
const unsigned int seed = 0;
// 'm' and 'r' are mixing constants generated offline.
diff --git a/sca-cpp/trunk/kernel/list.hpp b/sca-cpp/trunk/kernel/list.hpp
index db2f457317..a8dbcc1b0c 100644
--- a/sca-cpp/trunk/kernel/list.hpp
+++ b/sca-cpp/trunk/kernel/list.hpp
@@ -379,14 +379,14 @@ template<typename T> const list<T> cdddr(const list<T>& p) {
* Returns the length of a list.
*/
template<typename T> struct lengthRef {
- const int operator()(const int c, const list<T>& p) {
+ const size_t operator()(const size_t c, const list<T>& p) {
if(isNil(p))
return c;
return (*this)(c + 1, cdr(p));
}
};
-template<typename T> const int length(const list<T>& p) {
+template<typename T> const size_t length(const list<T>& p) {
return lengthRef<T> ()(0, p);
}
@@ -537,7 +537,7 @@ template<typename T> const list<T> seq(const T& start, const T& end) {
/**
* Returns the i-th element of a list.
*/
-template<typename T> const T listRef(const list<T>& l, const int i) {
+template<typename T> const T listRef(const list<T>& l, const size_t i) {
if (i == 0)
return car(l);
return listRef(cdr(l), i - 1);
diff --git a/sca-cpp/trunk/kernel/parallel.hpp b/sca-cpp/trunk/kernel/parallel.hpp
index 09cf0df9a3..09829f0758 100644
--- a/sca-cpp/trunk/kernel/parallel.hpp
+++ b/sca-cpp/trunk/kernel/parallel.hpp
@@ -42,7 +42,7 @@ namespace tuscany {
/**
* Returns the current thread id.
*/
-unsigned int threadId() {
+long int threadId() {
return syscall(__NR_gettid);
}
@@ -134,7 +134,7 @@ public:
*/
template<typename T> class wqueue {
public:
- wqueue(int max) : max(max), size(0), tail(0), head(0), values(new (gc_anew<T>(max)) T[max]) {
+ wqueue(size_t max) : max(max), size(0), tail(0), head(0), values(new (gc_anew<T>(max)) T[max]) {
pthread_mutex_init(&mutex, NULL);
pthread_cond_init(&full, NULL);
pthread_cond_init(&empty, NULL);
@@ -150,23 +150,23 @@ public:
}
private:
- const int max;
- int size;
- int tail;
- int head;
+ const size_t max;
+ size_t size;
+ size_t tail;
+ size_t head;
pthread_mutex_t mutex;
pthread_cond_t full;
pthread_cond_t empty;
gc_ptr<T> values;
- template<typename X> friend const int enqueue(wqueue<X>& q, const X& v);
+ template<typename X> friend const size_t enqueue(wqueue<X>& q, const X& v);
template<typename X> friend const X dequeue(wqueue<X>& q);
};
/**
* Adds an element to the tail of the queue.
*/
-template<typename T> const int enqueue(wqueue<T>&q, const T& v) {
+template<typename T> const size_t enqueue(wqueue<T>&q, const T& v) {
pthread_mutex_lock(&q.mutex);
while(q.size == q.max)
pthread_cond_wait(&q.full, &q.mutex);
@@ -211,7 +211,7 @@ void *workerThreadFunc(void *arg) {
/**
* Returns a list of worker threads.
*/
-const list<pthread_t> workerThreads(wqueue<lambda<bool()> >& wqueue, const int count) {
+const list<pthread_t> workerThreads(wqueue<lambda<bool()> >& wqueue, const size_t count) {
if (count == 0)
return list<pthread_t>();
pthread_t thread;
@@ -229,7 +229,7 @@ private:
// copies of the queue and thread pool when a worker is copied
class sharedWorker {
public:
- sharedWorker(int max) : work(wqueue<lambda<bool()> >(max)), threads(workerThreads(work, max)) {
+ sharedWorker(size_t max) : work(wqueue<lambda<bool()> >(max)), threads(workerThreads(work, max)) {
}
wqueue<lambda<bool()> > work;
@@ -237,7 +237,7 @@ private:
};
public:
- worker(int max) : w(*(new (gc_new<sharedWorker>()) sharedWorker(max))) {
+ worker(size_t max) : w(*(new (gc_new<sharedWorker>()) sharedWorker(max))) {
}
worker(const worker& wk) : w(wk.w) {
diff --git a/sca-cpp/trunk/kernel/sstream.hpp b/sca-cpp/trunk/kernel/sstream.hpp
index 693ba5f88f..770c169e09 100644
--- a/sca-cpp/trunk/kernel/sstream.hpp
+++ b/sca-cpp/trunk/kernel/sstream.hpp
@@ -60,10 +60,11 @@ public:
ostringstream& vprintf(const char* fmt, ...) {
va_list args;
- va_start (args, fmt);
string s;
+ va_start (args, fmt);
s.len = vsnprintf(NULL, 0, fmt, args);
s.buf = gc_cnew(s.len + 1);
+ va_start (args, fmt);
vsnprintf(s.buf, s.len + 1, fmt, args);
buf = cons(s, buf);
len += s.len;
@@ -104,7 +105,7 @@ private:
friend const string str(ostringstream& os);
- int len;
+ size_t len;
list<string> buf;
};
@@ -122,7 +123,7 @@ class istringstream : public istream {
public:
istringstream(const string& s) {
cur = 0;
- const int slen = length(s);
+ const size_t slen = length(s);
len = slen;
buf = c_str(s);
}
@@ -136,8 +137,8 @@ public:
buf = is.buf;
}
- const int read(void* b, int size) {
- const int n = len - cur;
+ const size_t read(void* b, size_t size) {
+ const size_t n = len - cur;
if (n == 0)
return 0;
if (n > size) {
@@ -173,8 +174,8 @@ public:
}
private:
- int len;
- int cur;
+ size_t len;
+ size_t cur;
const char* buf;
};
@@ -183,10 +184,10 @@ private:
*/
const list<string> tokenize(const char* sep, const string& str) {
struct nested {
- static const list<string> tokenize(const char* sep, const string& str, const int start = 0) {
+ static const list<string> tokenize(const char* sep, const string& str, const size_t start = 0) {
if (start >= length(str))
return list<string>();
- const int i = find(str, sep, start);
+ const size_t i = find(str, sep, start);
if (i == length(str))
return mklist(string(substr(str, start)));
return cons(string(substr(str, start, i - start)), tokenize(sep, str, i + 1));
@@ -222,7 +223,7 @@ struct ilistRead{
}
const list<string> operator()() {
char buffer[1024];
- const int n = read(is, buffer, sizeof(buffer));
+ const size_t n = read(is, buffer, sizeof(buffer));
if (n ==0)
return list<string>();
return cons(string(buffer, n), (*this)());
@@ -236,7 +237,7 @@ const list<string> streamList(istream& is) {
/**
* Fragment the first element of a list of strings to fit the given max length.
*/
-const list<string> fragment(list<string> l, int max) {
+const list<string> fragment(list<string> l, size_t max) {
const string s = car(l);
if (length(s) <= max)
return l;
diff --git a/sca-cpp/trunk/kernel/stream.hpp b/sca-cpp/trunk/kernel/stream.hpp
index f9d5cc3afe..53fb5e9ff7 100644
--- a/sca-cpp/trunk/kernel/stream.hpp
+++ b/sca-cpp/trunk/kernel/stream.hpp
@@ -106,7 +106,7 @@ ostream& operator<<(ostream& os, unused const stream_endl e) {
*/
class istream {
public:
- virtual const int read(void* buf, int size) = 0;
+ virtual const size_t read(void* buf, size_t size) = 0;
virtual const bool eof() = 0;
virtual const bool fail() = 0;
virtual const int get() = 0;
@@ -116,7 +116,7 @@ public:
/**
* Read from an input stream.
*/
-const int read(istream& is, void * buf, int size) {
+const size_t read(istream& is, void * buf, size_t size) {
return is.read(buf, size);
}
@@ -164,10 +164,11 @@ public:
odebugstream& vprintf(const char* fmt, ...) {
va_list args;
- va_start (args, fmt);
string s;
+ va_start (args, fmt);
s.len = vsnprintf(NULL, 0, fmt, args);
s.buf = gc_cnew(s.len + 1);
+ va_start (args, fmt);
vsnprintf(s.buf, s.len + 1, fmt, args);
buf = buf + s;
va_end (args);
diff --git a/sca-cpp/trunk/kernel/string-test.cpp b/sca-cpp/trunk/kernel/string-test.cpp
index 323756c7e4..23fa2b9457 100644
--- a/sca-cpp/trunk/kernel/string-test.cpp
+++ b/sca-cpp/trunk/kernel/string-test.cpp
@@ -122,11 +122,11 @@ string add(string& x, string& y) {
char charBuffer[16384];
struct addStrings{
- const int size;
- addStrings(const int size) : size(size) {
+ const size_t size;
+ addStrings(const size_t size) : size(size) {
}
bool operator()() const {
- const int sz = size / 4;
+ const size_t sz = size / 4;
string x(charBuffer, sz);
string y(charBuffer, sz);
assert(length(add(x, y)) == sz * 2);
@@ -135,11 +135,11 @@ struct addStrings{
};
struct addStdStrings{
- const int size;
- addStdStrings(const int size) : size(size) {
+ const size_t size;
+ addStdStrings(const size_t size) : size(size) {
}
bool operator()() const {
- const int sz = size / 4;
+ const size_t sz = size / 4;
std::string x(charBuffer, sz);
std::string y(charBuffer, sz);
assert(stdAdd(x, y).length() == (unsigned int)(sz * 2));
diff --git a/sca-cpp/trunk/kernel/string.hpp b/sca-cpp/trunk/kernel/string.hpp
index 1daec2aac7..cf7b4092d2 100644
--- a/sca-cpp/trunk/kernel/string.hpp
+++ b/sca-cpp/trunk/kernel/string.hpp
@@ -94,7 +94,7 @@ public:
string_memcpy(buf, s, len + 1);
}
- string(const char* s, const int n) {
+ string(const char* s, const size_t n) {
len = n;
if (len == 0) {
buf = stringEmptyBuffer;
@@ -105,7 +105,7 @@ public:
buf[len] = '\0';
}
- string(const int n, const char c) {
+ string(const size_t n, const char c) {
len = n;
if (len == 0) {
buf = stringEmptyBuffer;
@@ -152,7 +152,7 @@ public:
}
const bool operator<(const string& s) const {
- const int n = len < s.len? len : s.len;
+ const size_t n = len < s.len? len : s.len;
const int c = memcmp(buf, s.buf, n);
if (c < 0)
return true;
@@ -162,7 +162,7 @@ public:
}
const bool operator>(const string& s) const {
- const int n = len < s.len? len : s.len;
+ const size_t n = len < s.len? len : s.len;
int c = memcmp(buf, s.buf, n);
if (c > 0)
return true;
@@ -178,12 +178,12 @@ private:
friend class ostringstream;
friend const string operator+(const string& a, const string& b);
friend const string operator+(const string& a, const char* b);
- friend const int length(const string& s);
+ friend const size_t length(const string& s);
friend const char* c_str(const string& s);
- friend const int find(const string& s1, const char* s2, const int start);
- friend const string substr(const string& s, const int pos, const int n);
+ friend const size_t find(const string& s1, const char* s2, const size_t start);
+ friend const string substr(const string& s, const size_t pos, const size_t n);
- int len;
+ size_t len;
char* buf;
};
@@ -202,7 +202,7 @@ const string operator+(const string& a, const string& b) {
const string operator+(const string& a, const char* b) {
string s;
- const int blen = strlen(b);
+ const size_t blen = strlen(b);
s.len = a.len + blen;
s.buf = gc_cnew(s.len + 1);
string_memcpy(s.buf, a.buf, a.len);
@@ -214,7 +214,7 @@ const string operator+(const string& a, const char* b) {
/**
* Returns the length of a string.
*/
-const int length(const string& s) {
+const size_t length(const string& s) {
return s.len;
}
@@ -228,7 +228,7 @@ const char* c_str(const string& s) {
/**
* Find the first occurrence of string s2 in s1, starting at the given position.
*/
-const int find(const string& s1, const char* s2, const int start) {
+const size_t find(const string& s1, const char* s2, const size_t start) {
if (start >= s1.len)
return s1.len;
const char *f = strstr(s1.buf + start, s2);
@@ -237,7 +237,7 @@ const int find(const string& s1, const char* s2, const int start) {
return f - s1.buf;
}
-const int find(const string& s1, const char* s2) {
+const size_t find(const string& s1, const char* s2) {
return find(s1, s2, 0);
}
@@ -251,14 +251,14 @@ const bool contains(const string& s1, const char* s2) {
/**
* Find the first occurence of any character from a string in a string.
*/
-const int find_first_of(const string& s1, const string& s2) {
+const size_t find_first_of(const string& s1, const string& s2) {
return strcspn(c_str(s1), c_str(s2));
}
/**
* Find the first occurence of a character in a string.
*/
-const int find(const string& s, const char c) {
+const size_t find(const string& s, const char c) {
const char* cs = c_str(s);
const char* f = strchr(cs, c);
if (f == NULL)
@@ -269,7 +269,7 @@ const int find(const string& s, const char c) {
/**
* Find the last occurence of a character in a string.
*/
-const int find_last(const string& s, const char c) {
+const size_t find_last(const string& s, const char c) {
const char* cs = c_str(s);
const char* f = strrchr(cs, c);
if (f == NULL)
@@ -280,7 +280,7 @@ const int find_last(const string& s, const char c) {
/**
* Return a substring of a string.
*/
-const string substr(const string& s, const int pos, const int n) {
+const string substr(const string& s, const size_t pos, const size_t n) {
if (pos >= s.len)
return string();
if (pos + n > s.len)
@@ -288,7 +288,7 @@ const string substr(const string& s, const int pos, const int n) {
return string(s.buf + pos, n);
}
-const string substr(const string& s, const int pos) {
+const string substr(const string& s, const size_t pos) {
return substr(s, pos, length(s));
}
diff --git a/sca-cpp/trunk/kernel/tree.hpp b/sca-cpp/trunk/kernel/tree.hpp
index 436385aa1b..89a131c324 100644
--- a/sca-cpp/trunk/kernel/tree.hpp
+++ b/sca-cpp/trunk/kernel/tree.hpp
@@ -96,14 +96,14 @@ template<typename T> const list<T> sort(const list<T>& l) {
/**
* Make a balanced tree from an ordered list of leaves.
*/
-template<typename T> const list<T> btreeHelper(const list<T>& elements, const int n) {
+template<typename T> const list<T> btreeHelper(const list<T>& elements, const size_t n) {
if (n == 0)
return cons<T>(list<T>(), elements);
- const int leftSize = (n - 1) / 2; {
+ const size_t leftSize = (n - 1) / 2; {
const list<T> leftResult = btreeHelper<T>(elements, leftSize); {
const list<T> leftTree = car(leftResult);
const list<T> nonLeftElements = cdr(leftResult);
- const int rightSize = n - (leftSize + 1); {
+ const size_t rightSize = n - (leftSize + 1); {
const T thisEntry = car(nonLeftElements);
const list<T> rightResult = btreeHelper<T>(cdr(nonLeftElements), rightSize); {
const list<T> rightTree = car(rightResult);
diff --git a/sca-cpp/trunk/kernel/xml.hpp b/sca-cpp/trunk/kernel/xml.hpp
index 895ed7035e..3459592c97 100644
--- a/sca-cpp/trunk/kernel/xml.hpp
+++ b/sca-cpp/trunk/kernel/xml.hpp
@@ -196,7 +196,7 @@ int readCallback(void *context, char* buffer, int len) {
const string s(car(f));
rc.ilist = cdr(f);
memcpy(buffer, c_str(s), length(s));
- return length(s);
+ return (int)length(s);
}
/**
diff --git a/sca-cpp/trunk/kernel/xsd-test.cpp b/sca-cpp/trunk/kernel/xsd-test.cpp
index f430f1848d..fbd2ee6dca 100644
--- a/sca-cpp/trunk/kernel/xsd-test.cpp
+++ b/sca-cpp/trunk/kernel/xsd-test.cpp
@@ -45,7 +45,7 @@ bool printNode(xmlTextReaderPtr reader) {
}
int xmlRead(void *context, char* buffer, int len) {
- return fread(buffer, 1, len, (FILE*)context);
+ return (int)fread(buffer, 1, len, (FILE*)context);
}
int xmlClose(void *context) {