summaryrefslogtreecommitdiffstats
path: root/sca-cpp/trunk/runtime/core/src/tuscany/sca/util
diff options
context:
space:
mode:
authorjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2009-11-23 05:48:11 +0000
committerjsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68>2009-11-23 05:48:11 +0000
commit1c2df9a2458897ff6c2393913b2723457e42a0da (patch)
tree69652a0305830b4472f39c55ad1168522d8301f1 /sca-cpp/trunk/runtime/core/src/tuscany/sca/util
parente5d978186780787e8dad6681cca139486df93643 (diff)
Simplified the automake build using configure options instead of environment variables and cleaned up some of the makefile.am files. Adjusted build instructions. Moved directories that don't yet build or work out of the main build dir and obsolete docs to a contrib dir.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@883254 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-cpp/trunk/runtime/core/src/tuscany/sca/util')
-rw-r--r--sca-cpp/trunk/runtime/core/src/tuscany/sca/util/DefaultLogWriter.cpp51
-rw-r--r--sca-cpp/trunk/runtime/core/src/tuscany/sca/util/DefaultLogWriter.h51
-rw-r--r--sca-cpp/trunk/runtime/core/src/tuscany/sca/util/File.cpp243
-rw-r--r--sca-cpp/trunk/runtime/core/src/tuscany/sca/util/File.h160
-rw-r--r--sca-cpp/trunk/runtime/core/src/tuscany/sca/util/FileLogWriter.cpp57
-rw-r--r--sca-cpp/trunk/runtime/core/src/tuscany/sca/util/FileLogWriter.h58
-rw-r--r--sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Library.cpp175
-rw-r--r--sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Library.h103
-rw-r--r--sca-cpp/trunk/runtime/core/src/tuscany/sca/util/LogWriter.cpp37
-rw-r--r--sca-cpp/trunk/runtime/core/src/tuscany/sca/util/LogWriter.h53
-rw-r--r--sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Logger.cpp276
-rw-r--r--sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Logger.h136
-rw-r--r--sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Logging.h44
-rw-r--r--sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Mutex.cpp103
-rw-r--r--sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Mutex.h84
-rw-r--r--sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Queue.cpp222
-rw-r--r--sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Queue.h93
-rw-r--r--sca-cpp/trunk/runtime/core/src/tuscany/sca/util/SDOUtils.cpp438
-rw-r--r--sca-cpp/trunk/runtime/core/src/tuscany/sca/util/SDOUtils.h106
-rw-r--r--sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Thread.cpp124
-rw-r--r--sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Thread.h90
-rw-r--r--sca-cpp/trunk/runtime/core/src/tuscany/sca/util/ThreadLocal.cpp114
-rw-r--r--sca-cpp/trunk/runtime/core/src/tuscany/sca/util/ThreadLocal.h84
-rw-r--r--sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Utils.cpp598
-rw-r--r--sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Utils.h76
25 files changed, 0 insertions, 3576 deletions
diff --git a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/DefaultLogWriter.cpp b/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/DefaultLogWriter.cpp
deleted file mode 100644
index 48cc0aa1e6..0000000000
--- a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/DefaultLogWriter.cpp
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev$ $Date$ */
-
-#include <iostream>
-
-#include "tuscany/sca/util/DefaultLogWriter.h"
-
-using namespace std;
-
-namespace tuscany
-{
- namespace sca
- {
- namespace util
- {
- DefaultLogWriter::~DefaultLogWriter()
- {
- }
-
- void DefaultLogWriter::log(int level, const char* tid, const char* msg)
- {
- cout << tid << " ";
- for (int i=0; i < level; i++)
- {
- cout << " ";
- }
- cout << msg <<endl;
- }
-
- } // End namespace util
- } // End namespace sca
-} // End namespace tuscany
-
diff --git a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/DefaultLogWriter.h b/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/DefaultLogWriter.h
deleted file mode 100644
index 80e07d696c..0000000000
--- a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/DefaultLogWriter.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev$ $Date$ */
-
-#ifndef tuscany_sca_util_defaultlogwriter_h
-#define tuscany_sca_util_defaultlogwriter_h
-
-#include "tuscany/sca/util/LogWriter.h"
-
-namespace tuscany
-{
- namespace sca
- {
- namespace util
- {
- /**
- * Log writer to write out to standard out.
- */
- class DefaultLogWriter : public LogWriter
- {
- public:
- virtual ~DefaultLogWriter();
-
- /**
- * Will write to the console.
- * See LogWriter#log.
- */
- virtual void log(int level, const char* tid, const char* msg);
- };
-
- } // End namespace util
- } // End namespace sca
-} // End namespace tuscany
-#endif // tuscany_sca_util_defaultlogwriter_h
diff --git a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/File.cpp b/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/File.cpp
deleted file mode 100644
index 507c1b38ea..0000000000
--- a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/File.cpp
+++ /dev/null
@@ -1,243 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev$ $Date$ */
-
-#if defined(WIN32) || defined (_WINDOWS)
-#pragma warning(disable: 4786)
-#endif
-
-#include <iostream>
-#include <string>
-
-#if defined(WIN32) || defined (_WINDOWS)
-#include <windows.h>
-#else
-#include <unistd.h>
-#include <sys/stat.h>
-#include <dirent.h>
-#endif
-
-#include "tuscany/sca/util/File.h"
-#include "tuscany/sca/util/Utils.h"
-#include "tuscany/sca/core/Exceptions.h"
-#include "tuscany/sca/util/Logging.h"
-
-using namespace std;
-
-namespace tuscany
-{
- namespace sca
- {
- namespace util
- {
- File::File(const string& dir, const string& file, bool isDirectory)
- : directory(dir), fileName(file), isDir(isDirectory)
- {
- }
- File::~File()
- {
- }
-
-
- Files::Files(const string& rootDir, const string& pattern, bool subdirectories, bool directories)
- : rootDirectory(rootDir)
- {
- findFiles(rootDirectory, pattern, subdirectories, directories);
- }
-
- Files::~Files()
- {
- }
-
- unsigned int Files::size()
- {
- return files.size();
- }
-
- const File& Files::operator[] (unsigned int index)
- {
- if (size() <= index)
- {
- throwException(SystemConfigurationException, "Index of of bounds");
- }
-
- FILES::iterator iter = files.begin();
- for (unsigned int i=0; i<index; i++)
- {
- iter++;
- }
-
- return *iter;
- }
-
-
- void Files::findFiles(const string& rootDir, const string& pattern, bool subdirectories, bool directories)
- {
-
-#if defined(WIN32) || defined (_WINDOWS)
- char currentDir[ _MAX_FNAME];
-
- GetCurrentDirectory(_MAX_FNAME, currentDir);
-
- // Set current directory, from which to search.
- if (!SetCurrentDirectory(rootDir.c_str()))
- {
- loginfo("Unable to set current directory to: %s", rootDir.c_str());
- return;
- }
- char fullDirname[ _MAX_FNAME];
- GetCurrentDirectory(_MAX_FNAME, fullDirname);
-
- // First, look for all files in this directory that meet the pattern
- char search[ _MAX_FNAME];
- strcpy(search, pattern.c_str());
-
- // Find the first file in the directory
- WIN32_FIND_DATA data;
- HANDLE searchHandle = FindFirstFile(search, &data);
-
- int more = TRUE;
- if (searchHandle != INVALID_HANDLE_VALUE)
- {
- // Found some matching files, so call the function with the details of each one
- while (more)
- {
- // Skip over directories
- if (!(data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) )
- {
- if (!directories)
- {
- // Add the file to our list
- files.push_back(File(fullDirname, data.cFileName));
- }
- }
- else if (directories)
- {
- files.push_back(File(fullDirname, data.cFileName, true));
- }
-
- more = FindNextFile(searchHandle, &data);
- }
- }
-
-
- if (!subdirectories)
- return;
-
- // Now recurse down all the directories
- // Find the first file in the directory
- searchHandle = FindFirstFile( "*.*", &data);
- more = TRUE;
-
- if (searchHandle != INVALID_HANDLE_VALUE)
- {
- // Found some files in the directory.
- while (more)
- {
- // If directory
- if (data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
- {
- // Skip over '.' and '..'
- if ((strcmp(data.cFileName, ".")) && (strcmp("..", data.cFileName)))
- {
- // Recurse
- findFiles(data.cFileName, pattern, subdirectories, directories);
- }
- }
-
- more = FindNextFile(searchHandle, &data);
- }
- }
- SetCurrentDirectory(currentDir);
-#else
- // Linux
- //char fullDirname[MAX_PATH];
- //getcwd(fullDirname, MAX_PATH);
-
- DIR* root = opendir(rootDir.c_str());
- if (!root)
- {
- logwarning("Unable to open directory: %s", rootDir.c_str());
- return;
- }
-
- bool exactMatch = true;
- string token1, token2;
- if (pattern.find('*') != string::npos)
- {
- exactMatch = false;
- Utils::tokeniseString("*", pattern, token1, token2);
- }
-
- struct dirent *entry=0;
- while ((entry = readdir(root)))
- {
- string entryName = rootDir + "/" + entry->d_name;
- struct stat statbuf;
- if (strcmp(entry->d_name, ".") == 0 || strcmp(entry->d_name, "..") == 0)
- continue;
- if (stat(entryName.c_str(), &statbuf) != 0)
- {
- logwarning("Unable to stat entry: %s", entryName.c_str());
- }
- else
- {
- string filename = entry->d_name;
-
- if ((exactMatch && filename == pattern) ||
- (!exactMatch &&
- ((filename.find(token1) == 0)
- && (filename.length() >= token2.length())
- && (filename.rfind(token2) == (filename.length() - token2.length())) )))
- {
- if (S_ISDIR(statbuf.st_mode))
- {
- if (directories)
- {
- files.push_back(File(rootDir, filename, true));
- }
- }
- else if (S_ISREG(statbuf.st_mode))
- {
- if (!directories)
- {
- // Add the file to our list
- files.push_back(File(rootDir, filename));
- }
- }
- } // end - matching filename
-
- // recurse if necessary
- if (subdirectories && S_ISDIR(statbuf.st_mode))
- {
- findFiles(entryName, pattern, subdirectories, directories);
- }
- }
- }
-
- closedir(root);
-#endif
- }
-
- } // End namespace util
- } // End namespace sca
-} // End namespace tuscany
-
-
diff --git a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/File.h b/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/File.h
deleted file mode 100644
index 944a192cf6..0000000000
--- a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/File.h
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev$ $Date$ */
-
-#ifndef tuscany_sca_util_file_h
-#define tuscany_sca_util_file_h
-
-#include <string>
-#include <vector>
-
-namespace tuscany
-{
- namespace sca
- {
- namespace util
- {
- /**
- * File access methods. Provides platform independent
- * access to files.
- */
- class File
- {
- public:
- /**
- * Constructor.
- * @param directory Name of the directory in which this file is located.
- * Either / or \ can be used interchangeably for separating directory elements.
- * @param fileName Name of the file in the dirctory.
- */
- File(const std::string& directory, const std::string& fileName, bool isDirectory = false);
-
- /**
- * Destructor.
- */
- virtual ~File();
-
- /**
- * Return the directory in which this file is located.
- * @return Name of the parent directory.
- */
- const std::string& getDirectory() const {return directory;}
-
- /**
- * Return the name of the file.
- * @return Name of the file/directory.
- */
- const std::string& getFileName() const {return fileName;}
-
- /**
- * Return if this is a directory
- * @return true if a directory
- */
- bool isDirectory() const {return isDir;}
-
- /**
- * Return if this is a file
- * @return true if a file
- */
- bool isFile() const {return !isDir;}
-
- private:
- /**
- * Name of the parent directory.
- */
- std::string directory;
-
- /**
- * Name of the file/directory
- */
- std::string fileName;
-
- /**
- * Is this a directory
- */
- bool isDir;
- };
-
- /**
- * Collection of File to provide platform independent access
- * to files and directories.
- */
- class Files
- {
- public:
- /**
- * Constructor which will search a given directory with a pattern and return a
- * new instance of this collection class.
- * @param rootDirectory The directory in which to search.
- * @param pattern A pattern for matching file names. Can include * and ?.
- * @param subdirectories Whether subdirectories should be searched too.
- * @param directories Whether to directories or files.
- */
- Files(const std::string& rootDirectory,
- const std::string& pattern,
- bool subdirectories = false,
- bool directories = false);
-
- /**
- * Destructor.
- */
- virtual ~Files();
-
- /**
- * Return the number of files found.
- * @return The number of files found.
- */
- unsigned int size();
-
- /**
- * Return a File at this position in the collection.
- * @param index The index into the collection.
- * @return The File at this index in the collection.
- */
- const File& operator[] (unsigned int index);
-
- private:
- /**
- * Search the given directory and pattern for matching files.
- * @param rootDirectory The directory in which to search.
- * @param pattern A pattern for matching file names. Can include * and ?.
- * @param subdirectories Whether subdirectories should be searched too.
- * @param directories Whether to directories or files.
- */
- void findFiles(const std::string& rootDirectory, const std::string& pattern,
- bool subdirectories, bool directories);
-
- /**
- * The top level directory to search.
- */
- std::string rootDirectory;
-
- typedef std::vector<File> FILES;
-
- /**
- * Vector of File.
- */
- FILES files;
- };
-
- } // End namespace util
- } // End namespace sca
-} // End namespace tuscany
-#endif // tuscany_sca_util_file_h
diff --git a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/FileLogWriter.cpp b/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/FileLogWriter.cpp
deleted file mode 100644
index 56eb3146dd..0000000000
--- a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/FileLogWriter.cpp
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev$ $Date$ */
-
-#include <iostream>
-
-#include "tuscany/sca/util/FileLogWriter.h"
-
-using namespace std;
-
-namespace tuscany
-{
- namespace sca
- {
- namespace util
- {
- FileLogWriter::FileLogWriter(const char* logfile)
- {
- logFile.open(logfile, ios_base::app);
- }
-
- FileLogWriter::~FileLogWriter()
- {
- logFile.close();
- }
-
- void FileLogWriter::log(int level, const char*tid, const char* msg)
- {
- logFile << tid << " ";
- for (int i=0; i < level; i++)
- {
- logFile << " ";
- }
- logFile << msg <<endl;
- }
-
- } // End namespace util
- } // End namespace sca
-} // End namespace tuscany
-
diff --git a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/FileLogWriter.h b/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/FileLogWriter.h
deleted file mode 100644
index 5925fdca85..0000000000
--- a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/FileLogWriter.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev$ $Date$ */
-
-#ifndef tuscany_sca_util_filelogwriter_h
-#define tuscany_sca_util_filelogwriter_h
-
-#include <iostream>
-#include <fstream>
-
-#include "tuscany/sca/util/LogWriter.h"
-
-namespace tuscany
-{
- namespace sca
- {
- namespace util
- {
- /**
- * Log writer to write out to standard out.
- */
- class FileLogWriter : public LogWriter
- {
- public:
- FileLogWriter(const char* logfile);
-
- virtual ~FileLogWriter();
-
- /**
- * Will write to the console.
- * See LogWriter#log.
- */
- virtual void log(int level, const char* tid, const char* msg);
- private:
- std::ofstream logFile;
- };
-
- } // End namespace util
- } // End namespace sca
-} // End namespace tuscany
-#endif // tuscany_sca_util_defaultlogwriter_h
diff --git a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Library.cpp b/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Library.cpp
deleted file mode 100644
index 619205ab7e..0000000000
--- a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Library.cpp
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev$ $Date$ */
-
-#include <sstream>
-
-#include "tuscany/sca/util/Library.h"
-#include "tuscany/sca/util/Utils.h"
-#include "tuscany/sca/core/Exceptions.h"
-#include "tuscany/sca/util/Logging.h"
-
-using namespace std;
-
-namespace tuscany
-{
- namespace sca
- {
- namespace util
- {
- Library::Library()
- : hDLL(NULL)
- {
- }
-
- Library::Library(const string& libraryName)
- : name(libraryName), hDLL(NULL)
- {
- logentry();
- load();
- }
-
- Library::Library(const Library& lib)
- : name(lib.name), hDLL(NULL)
- {
- logentry();
- if (lib.hDLL)
- {
- load();
- }
- }
-
- Library& Library::operator=(const Library& lib)
- {
- logentry();
- if (&lib != this)
- {
- unload();
- name = lib.name;
- load();
- }
- return *this;
- }
-
- Library::~Library()
- {
- logentry();
- unload();
- }
-
-
- void Library::load()
- {
- logentry();
- loginfo("Library: %s", name.c_str());
-
- string msg;
-#if defined(WIN32) || defined (_WINDOWS)
- int l = name.length();
- string dllName;
- if (l>=4 && name.substr(l-4, 4)==".dll")
- {
- dllName = name;
- }
- else
- {
- dllName = name+".dll";
- }
- SetErrorMode(SEM_FAILCRITICALERRORS);
- hDLL = LoadLibrary(dllName.c_str());
- if (hDLL == NULL)
- {
- ostringstream msgs;
- msgs << "Unable to load library: " + dllName << ", error: ";
- Utils::printLastError(msgs);
- msg = msgs.str();
- }
-#else
- int l = name.length();
- string libName;
-#ifdef IS_DARWIN
- string suffix = ".dylib";
-#else
- string suffix = ".so";
-#endif
- unsigned int suffixLength = suffix.length();
- if (l>=suffixLength && name.substr(l-suffixLength, suffixLength)==suffix)
- {
- libName = name;
- }
- else
- {
- int s = name.rfind("/");
- if (s == name.length())
- {
- libName = name + suffix;
- }
- else
- {
- s++;
- libName = name.substr(0, s) + "lib" + name.substr(s, name.length()-s) + suffix;
- }
- }
- hDLL = dlopen(libName.c_str(), RTLD_NOW);
- if (hDLL == NULL)
- {
- msg = "Unable to load library: " + libName + ": " + dlerror();
- }
-#endif
- if (hDLL == NULL)
- {
- throwException(SystemConfigurationException, msg.c_str());
- }
- }
-
- void Library::unload()
- {
- logentry();
- loginfo("Library: %s", name.c_str());
-
- if (hDLL != NULL)
- {
-#if defined(WIN32) || defined (_WINDOWS)
- FreeLibrary(hDLL);
-#else
- dlclose(hDLL);
-#endif
- hDLL = NULL;
- }
- }
-
- void* Library::getSymbol(const string& symbol)
- {
- logentry();
- loginfo("Symbol: %s", symbol.c_str());
- if (!hDLL)
- {
- return 0;
- }
-#if defined(WIN32) || defined (_WINDOWS)
- return GetProcAddress(hDLL, symbol.c_str());
-#else
- return dlsym(hDLL, symbol.c_str());
-#endif
- }
-
- } // End namespace util
- } // End namespace sca
-} // End namespace tuscany
diff --git a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Library.h b/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Library.h
deleted file mode 100644
index 6b0a17d2b7..0000000000
--- a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Library.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev$ $Date$ */
-
-#ifndef tuscany_sca_util_library_h
-#define tuscany_sca_util_library_h
-
-#if defined(WIN32) || defined (_WINDOWS)
-#include <windows.h>
-#else
-#include <unistd.h>
-#include <dlfcn.h>
-#endif
-
-#include <string>
-
-#include "tuscany/sca/export.h"
-
-
-namespace tuscany
-{
- namespace sca
- {
- namespace util
- {
- /**
- * Information about shared libraries and methods to
- * access these shared libraries.
- */
- class SCA_API Library
- {
- public:
- Library();
-
- /**
- * Constructor. Will load the library.
- * @param libraryName Fully qualified name of the library.
- */
- Library(const std::string& libraryName);
-
- /**
- * Destructor. Will unload the library.
- */
- virtual ~Library();
-
- Library(const Library& lib);
- Library& operator=(const Library& lib);
-
- /**
- * Find an externalized symbol in the library.
- * @param symbol The name of the symbol to be found.
- * @return The pointer to the symbol if found, otherwise 0.
- */
- void* getSymbol(const std::string& symbol);
- private:
- /**
- * Name of the library.
- */
- std::string name;
-
- /**
- * Handle to the loaded library.
- */
-#if defined(WIN32) || defined (_WINDOWS)
- HINSTANCE hDLL;
-#else
- void* hDLL;
-#endif
-
- /**
- * Load the library.
- */
- void load();
-
- /**
- * Unload the library, if successfully loaded.
- */
- void unload();
-
- };
-
- } // End namespace util
- } // End namespace sca
-} // End namespace tuscany
-
-#endif // tuscany_sca_util_library_h
diff --git a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/LogWriter.cpp b/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/LogWriter.cpp
deleted file mode 100644
index e551d04eda..0000000000
--- a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/LogWriter.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev$ $Date$ */
-
-#include "tuscany/sca/util/LogWriter.h"
-
-namespace tuscany
-{
- namespace sca
- {
- namespace util
- {
- LogWriter::~LogWriter()
- {
- }
-
- } // End namespace util
- } // End namespace sca
-} // End namespace tuscany
-
diff --git a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/LogWriter.h b/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/LogWriter.h
deleted file mode 100644
index 5a6a5c38f7..0000000000
--- a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/LogWriter.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev$ $Date$ */
-
-#ifndef tuscany_sca_util_logwriter_h
-#define tuscany_sca_util_logwriter_h
-
-#include "tuscany/sca/export.h"
-
-namespace tuscany
-{
- namespace sca
- {
- namespace util
- {
- /**
- * Abstract class for extending logging to other destinations.
- */
- class SCA_API LogWriter
- {
- public:
- virtual ~LogWriter();
-
- /**
- * Log a message.
- * @param level The level of logging for this message.
- * @param tid The current thread id.
- * @param msg The message to log.
- */
- virtual void log(int level, const char* tid, const char* msg) = 0;
- };
-
- } // End namespace util
- } // End namespace sca
-} // End namespace tuscany
-#endif // tuscany_sca_util_logwriter_h
diff --git a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Logger.cpp b/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Logger.cpp
deleted file mode 100644
index 5745982f42..0000000000
--- a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Logger.cpp
+++ /dev/null
@@ -1,276 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev$ $Date$ */
-
-#include <iostream>
-#include <stdarg.h>
-
-#if defined(WIN32) || defined (_WINDOWS)
-#include <windows.h>
-#include <process.h>
-#else
-#include <unistd.h>
-#include <pthread.h>
-#endif
-
-#include "tuscany/sca/util/Logger.h"
-#include "tuscany/sca/util/DefaultLogWriter.h"
-#include "tuscany/sca/util/FileLogWriter.h"
-
-using namespace std;
-
-namespace tuscany
-{
- namespace sca
- {
- namespace util
- {
- LogWriter* Logger::logWriter = getLogWriter();
-
- LogWriter* Logger::getLogWriter()
- {
- if (logWriter == 0)
- {
- setLogWriter(0);
-
- }
- return logWriter;
- }
-
- void Logger::setLogWriter(LogWriter* writer)
- {
- if (logWriter != writer
- && logWriter != 0)
- {
- delete logWriter;
- }
-
- if (writer == 0)
- {
- char* loggingVar = 0;
- loggingVar = getenv("TUSCANY_SCACPP_LOG");
- if (loggingVar == 0)
- logWriter = new DefaultLogWriter;
- else
- logWriter = new FileLogWriter(loggingVar);
- }
- else
- {
- logWriter = writer;
- }
- }
-
- int Logger::loggingLevel = setLogging();
-
- int Logger::setLogging()
- {
- char* loggingVar = 0;
- loggingVar = getenv("TUSCANY_SCACPP_LOGGING");
- if (loggingVar == 0)
- return 0;
- else
- return atoi(loggingVar);
- }
-
- void Logger::setLogging(int level)
- {
- loggingLevel = level;
- }
-
- void Logger::log(int level, const char* msg)
- {
- if (level <= loggingLevel)
- {
- char tid[21];
- formatThreadID(tid);
- logWriter->log(level, tid, msg);
- }
- }
-
- void Logger::formatThreadID(char* tid)
- {
-#if defined(WIN32) || defined (_WINDOWS)
- sprintf(tid, "%lu:%lu", (unsigned long)_getpid(), (unsigned long)GetCurrentThreadId());
-#else
- sprintf(tid, "%lu:%lu", (unsigned long)getpid(), (unsigned long)pthread_self());
-#endif
- }
-
- void Logger::logArgs(int level, const char* msg, ...)
- {
- if (level <= loggingLevel)
- {
- va_list variableArguments;
- va_start(variableArguments, msg);
- char tid[21];
- formatThreadID(tid);
- char messageBuffer[256];
-#if defined(WIN32) || defined (_WINDOWS)
- int size = _vsnprintf(messageBuffer, 255, msg, variableArguments);
- if (size == -1)
- {
- size = _vscprintf(msg, variableArguments);
- char* bigMessageBuffer = new char[size+1];
- _vsnprintf(bigMessageBuffer, size, msg, variableArguments);
- bigMessageBuffer[size] = '\0';
- logWriter->log(level, tid, bigMessageBuffer);
- delete bigMessageBuffer;
- }
-#else
- int size = vsnprintf(messageBuffer, 255, msg, variableArguments);
- if (size > 255)
- {
- char* bigMessageBuffer = new char[size+1];
- vsnprintf(bigMessageBuffer, size, msg, variableArguments);
- bigMessageBuffer[size] = '\0';
- logWriter->log(level, tid, bigMessageBuffer);
- delete bigMessageBuffer;
- }
-#endif
- else
- {
- messageBuffer[255] = '\0';
- logWriter->log(level, tid, messageBuffer);
- }
- va_end(variableArguments);
- }
- }
-
- void Logger::logArgs0(const char* msg, ...)
- {
- if (0 <= loggingLevel)
- {
- va_list variableArguments;
- va_start(variableArguments, msg);
- char tid[21];
- formatThreadID(tid);
- char messageBuffer[256];
-#if defined(WIN32) || defined (_WINDOWS)
- int size = _vsnprintf(messageBuffer, 255, msg, variableArguments);
- if (size == -1)
- {
- size = _vscprintf(msg, variableArguments);
- char* bigMessageBuffer = new char[size+1];
- _vsnprintf(bigMessageBuffer, size, msg, variableArguments);
- bigMessageBuffer[size] = '\0';
- logWriter->log(0, tid, bigMessageBuffer);
- delete bigMessageBuffer;
- }
-#else
- int size = vsnprintf(messageBuffer, 255, msg, variableArguments);
- if (size > 255)
- {
- char* bigMessageBuffer = new char[size+1];
- vsnprintf(bigMessageBuffer, size, msg, variableArguments);
- bigMessageBuffer[size] = '\0';
- logWriter->log(0, tid, bigMessageBuffer);
- delete bigMessageBuffer;
- }
-#endif
- else
- {
- messageBuffer[255] = '\0';
- logWriter->log(0, tid, messageBuffer);
- }
- va_end(variableArguments);
- }
- }
- void Logger::logArgs1(const char* msg, ...)
- {
- if (1 <= loggingLevel)
- {
- va_list variableArguments;
- va_start(variableArguments, msg);
- char tid[21];
- formatThreadID(tid);
- char messageBuffer[256];
-#if defined(WIN32) || defined (_WINDOWS)
- int size = _vsnprintf(messageBuffer, 255, msg, variableArguments);
- if (size == -1)
- {
- size = _vscprintf(msg, variableArguments);
- char* bigMessageBuffer = new char[size+1];
- _vsnprintf(bigMessageBuffer, size, msg, variableArguments);
- bigMessageBuffer[size] = '\0';
- logWriter->log(1, tid, bigMessageBuffer);
- delete bigMessageBuffer;
- }
-#else
- int size = vsnprintf(messageBuffer, 255, msg, variableArguments);
- if (size > 255)
- {
- char* bigMessageBuffer = new char[size+1];
- vsnprintf(bigMessageBuffer, size, msg, variableArguments);
- bigMessageBuffer[size] = '\0';
- logWriter->log(1, tid, bigMessageBuffer);
- delete bigMessageBuffer;
- }
-#endif
- else
- {
- messageBuffer[255] = '\0';
- logWriter->log(1, tid, messageBuffer);
- }
- va_end(variableArguments);
- }
- }
- void Logger::logArgs2(const char* msg, ...)
- {
- if (2 <= loggingLevel)
- {
- va_list variableArguments;
- va_start(variableArguments, msg);
- char tid[21];
- formatThreadID(tid);
- char messageBuffer[256];
-#if defined(WIN32) || defined (_WINDOWS)
- int size = _vsnprintf(messageBuffer, 255, msg, variableArguments);
- if (size == -1)
- {
- size = _vscprintf(msg, variableArguments);
- char* bigMessageBuffer = new char[size+1];
- _vsnprintf(bigMessageBuffer, size, msg, variableArguments);
- bigMessageBuffer[size] = '\0';
- logWriter->log(2, tid, bigMessageBuffer);
- delete bigMessageBuffer;
- }
-#else
- int size = vsnprintf(messageBuffer, 255, msg, variableArguments);
- if (size > 255)
- {
- char* bigMessageBuffer = new char[size+1];
- vsnprintf(bigMessageBuffer, size, msg, variableArguments);
- bigMessageBuffer[size] = '\0';
- logWriter->log(2, tid, bigMessageBuffer);
- delete bigMessageBuffer;
- }
-#endif
- else
- {
- messageBuffer[255] = '\0';
- logWriter->log(2, tid, messageBuffer);
- }
- va_end(variableArguments);
- }
- }
-
- } // End namespace util
- } // End namespace sca
-} // End namespace tuscany
diff --git a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Logger.h b/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Logger.h
deleted file mode 100644
index eccf3cf02f..0000000000
--- a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Logger.h
+++ /dev/null
@@ -1,136 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev$ $Date$ */
-
-#ifndef tuscany_sca_util_logger_h
-#define tuscany_sca_util_logger_h
-
-#include "tuscany/sca/export.h"
-#include "tuscany/sca/util/LogWriter.h"
-
-namespace tuscany
-{
- namespace sca
- {
- namespace util
- {
- /**
- * Provide a logging interface.
- */
- class Logger {
-
- public:
- /**
- * Set the log writer to use.
- * @param writer The writer to use for all subsequent logging.
- */
- SCA_API static void setLogWriter(LogWriter* writer);
-
- /**
- * Set or reset the logging level. Any message with a higher logging
- * level than this value will be filtered (i.e. not shown).
- * @param level The level of logging to use for all subsequent logging.
- */
- SCA_API static void setLogging(int level);
-
- /**
- * Log a message.
- * @param level The log level of this message.
- * @param msg The message to be logged.
- */
- SCA_API static void log(int level, const char* msg);
-
- /**
- * Log a message with variable arguments.
- * @param level The log level of this message.
- * @param msg The message to be logged. Must include template
- * characters as described in printf.
- * @param ... Variable arguments.
- */
- SCA_API static void logArgs(int level, const char* msg, ...);
- SCA_API static void logArgs0(const char* msg, ...);
- SCA_API static void logArgs1(const char* msg, ...);
- SCA_API static void logArgs2(const char* msg, ...);
-
- /**
- * The currently set logging level
- */
- SCA_API static int loggingLevel;
-
- private:
- /**
- * The current log writer.
- */
- static LogWriter* logWriter;
-
- /**
- * Get the current log writer.
- * @return The current log writer.
- */
- static LogWriter* getLogWriter();
-
- /**
- * Retrieves the logging level set as an environment variable.
- */
- static int setLogging();
-
- /**
- * Print the current thread id into the given char buffer.
- */
- static void formatThreadID(char* tid);
-
- /**
- * Message buffer
- */
- static char messageBuffer[4096];
-
- };
-
- class LogEntry
- {
- public:
-
- LogEntry(const char* func)
- : funcName(func)
- {
- if (Logger::loggingLevel >= 2)
- {
- Logger::logArgs(2, ">> %s", funcName);
- }
- }
-
- ~LogEntry()
- {
- if (Logger::loggingLevel >= 2)
- {
- Logger::logArgs(2, "<< %s", funcName);
- }
- }
-
- private:
- const char *funcName;
-
- };
-
- } // End namespace util
- } // End namespace sca
-} // End namespace tuscany
-
-#endif // tuscany_sca_util_logger_h
diff --git a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Logging.h b/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Logging.h
deleted file mode 100644
index bf1419faa8..0000000000
--- a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Logging.h
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev$ $Date$ */
-
-#ifndef tuscany_sca_util_logging_h
-#define tuscany_sca_util_logging_h
-
-#include "tuscany/sca/util/Logger.h"
-
-#if defined(WIN32) || defined (_WINDOWS)
-#define logentry() \
-const tuscany::sca::util::LogEntry __LOGENTRY__(__FUNCTION__)
-#else
-#define logentry() \
-const tuscany::sca::util::LogEntry __LOGENTRY__(__PRETTY_FUNCTION__)
-#endif
-
-#define loginfo \
-if (tuscany::sca::util::Logger::loggingLevel >= 2) tuscany::sca::util::Logger::logArgs2
-
-#define logwarning \
-if (tuscany::sca::util::Logger::loggingLevel >= 1) tuscany::sca::util::Logger::logArgs1
-
-#define logerror \
-if (tuscany::sca::util::Logger::loggingLevel >= 0) tuscany::sca::util::Logger::logArgs0
-
-#endif // tuscany_sca_util_logging_h
diff --git a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Mutex.cpp b/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Mutex.cpp
deleted file mode 100644
index 7b62000717..0000000000
--- a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Mutex.cpp
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev$ $Date$ */
-
-#include <errno.h>
-
-#include <sstream>
-
-#include "tuscany/sca/util/Mutex.h"
-#include "tuscany/sca/util/Utils.h"
-#include "tuscany/sca/util/Logging.h"
-#include "tuscany/sca/core/Exceptions.h"
-
-using namespace std;
-
-
-namespace tuscany
-{
- namespace sca
- {
- namespace util
- {
- Mutex::Mutex()
- {
- logentry();
-#if defined(WIN32) || defined (_WINDOWS)
- InitializeCriticalSection(&section);
-#else
- int rc = pthread_mutex_init(&mutex, NULL);
- if (rc)
- {
- ostringstream msg;
- msg << "Failed to create mutex, errno: " << errno;
- throwException(TuscanyRuntimeException, msg.str().c_str());
- }
-#endif
- }
-
- Mutex::~Mutex()
- {
- logentry();
-#if defined(WIN32) || defined (_WINDOWS)
- DeleteCriticalSection(&section);
-#else
- int rc = pthread_mutex_destroy(&mutex);
- if (rc) {
- ostringstream msg;
- msg << "Failed to destroy mutex, errno: " << errno;
- throwException(TuscanyRuntimeException, msg.str().c_str());
- }
-#endif
- }
-
- void Mutex::lock()
- {
- logentry();
-#if defined(WIN32) || defined (_WINDOWS)
- EnterCriticalSection(&section);
-#else
- int rc = pthread_mutex_lock(&mutex);
- if (rc) {
- ostringstream msg;
- msg << "Failed to lock mutex, errno: " << errno;
- throwException(TuscanyRuntimeException, msg.str().c_str());
- }
-#endif
- }
-
- void Mutex::unlock()
- {
- logentry();
-#if defined(WIN32) || defined (_WINDOWS)
- LeaveCriticalSection(&section);
-#else
- int rc = pthread_mutex_unlock(&mutex);
- if (rc) {
- ostringstream msg;
- msg << "Failed to unlock mutex, errno: " << errno;
- throwException(TuscanyRuntimeException, msg.str().c_str());
- }
-#endif
- }
-
- } // End namespace util
- } // End namespace sca
-} // End namespace tuscany
diff --git a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Mutex.h b/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Mutex.h
deleted file mode 100644
index d509ba6d73..0000000000
--- a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Mutex.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev$ $Date$ */
-
-#ifndef tuscany_sca_util_mutex_h
-#define tuscany_sca_util_mutex_h
-
-#if defined(WIN32) || defined (_WINDOWS)
-#include <windows.h>
-#else
-#include <pthread.h>
-#endif
-
-#include "tuscany/sca/export.h"
-
-
-namespace tuscany
-{
- namespace sca
- {
- namespace util
- {
- /**
- * Information about shared libraries and methods to
- * access these shared libraries.
- */
- class SCA_API Mutex
- {
- public:
- /**
- * Constructor.
- */
- Mutex();
-
- /**
- * Destructor.
- */
- virtual ~Mutex();
-
- /**
- * Lock the mutex.
- */
- void lock();
-
- /**
- * Unlock the mutex.
- */
- void unlock();
-
- private:
-
- /**
- * Handle to the mutex.
- */
-#if defined(WIN32) || defined (_WINDOWS)
- CRITICAL_SECTION section;
-#else
- pthread_mutex_t mutex;
-#endif
-
- };
-
- } // End namespace util
- } // End namespace sca
-} // End namespace tuscany
-
-#endif // tuscany_sca_util_mutex_h
diff --git a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Queue.cpp b/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Queue.cpp
deleted file mode 100644
index c124be572c..0000000000
--- a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Queue.cpp
+++ /dev/null
@@ -1,222 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev: 491752 $ $Date: 2007-01-01 22:22:23 -0800 (Mon, 01 Jan 2007) $ */
-
-#if defined(WIN32) || defined (_WINDOWS)
-#pragma warning(disable: 4786)
-#pragma warning(disable: 4251)
-#endif
-
-#include <errno.h>
-
-#include <sstream>
-
-#include "tuscany/sca/util/Queue.h"
-#include "tuscany/sca/util/Utils.h"
-#include "tuscany/sca/util/Logging.h"
-#include "tuscany/sca/core/Exceptions.h"
-
-using namespace std;
-
-
-namespace tuscany
-{
- namespace sca
- {
- namespace util
- {
- Queue::Queue()
- {
- logentry();
-#if defined(WIN32) || defined (_WINDOWS)
- InitializeCriticalSection(&section);
- hevent = CreateEvent (NULL, TRUE, FALSE, NULL);
-#else
- int rc = pthread_mutex_init(&mutex, NULL);
- if (rc)
- {
- ostringstream msg;
- msg << "Failed to create mutex, errno: " << errno;
- throwException(TuscanyRuntimeException, msg.str().c_str());
- }
-
- rc = pthread_cond_init(&cond, NULL);
- if (rc)
- {
- ostringstream msg;
- msg << "Failed to create condition variable, errno: " << errno;
- throwException(TuscanyRuntimeException, msg.str().c_str());
- }
-#endif
- }
-
- Queue::~Queue()
- {
- logentry();
-#if defined(WIN32) || defined (_WINDOWS)
- DeleteCriticalSection(&section);
- CloseHandle(hevent);
-#else
- int rc = pthread_mutex_destroy(&mutex);
- if (rc) {
- ostringstream msg;
- msg << "Failed to destroy mutex, errno: " << errno;
- throwException(TuscanyRuntimeException, msg.str().c_str());
- }
-
- rc = pthread_cond_destroy(&cond);
- if (rc) {
- ostringstream msg;
- msg << "Failed to destroy condition variable, errno: " << errno;
- throwException(TuscanyRuntimeException, msg.str().c_str());
- }
-#endif
- }
-
- void Queue::enqueue(void* element)
- {
- logentry();
-#if defined(WIN32) || defined (_WINDOWS)
- EnterCriticalSection(&section);
-
- try
- {
- queue.push(element);
-
- if (queue.size() == 1)
- {
- SetEvent(hevent);
- }
- }
- catch (...)
- {
- LeaveCriticalSection(&section);
- throw;
- }
- LeaveCriticalSection(&section);
-#else
- int rc = pthread_mutex_lock(&mutex);
- if (rc) {
- ostringstream msg;
- msg << "Failed to lock mutex, errno: " << errno;
- throwException(TuscanyRuntimeException, msg.str().c_str());
- }
- try
- {
- queue.push(element);
-
- if (queue.size() == 1)
- {
- rc = pthread_cond_signal(&cond);
- if (rc) {
- ostringstream msg;
- msg << "Failed to broadcast condition variable, errno: " << errno;
- throwException(TuscanyRuntimeException, msg.str().c_str());
- }
- }
-
- }
- catch(...)
- {
- pthread_mutex_unlock(&mutex);
- throw;
- }
- rc = pthread_mutex_unlock(&mutex);
- if (rc) {
- ostringstream msg;
- msg << "Failed to unlock mutex, errno: " << errno;
- throwException(TuscanyRuntimeException, msg.str().c_str());
- }
-#endif
- }
-
- void* Queue::dequeue()
- {
- logentry();
-
- void* element = NULL;
-
-#if defined(WIN32) || defined (_WINDOWS)
-
- EnterCriticalSection(&section);
- try
- {
- while (queue.size() == 0) {
- LeaveCriticalSection(&section);
- WaitForSingleObject(hevent, INFINITE);
- EnterCriticalSection(&section);
- }
-
- element = queue.front();
- queue.pop();
-
- if (queue.size() == 0)
- {
- ResetEvent(hevent);
- }
- }
- catch(...)
- {
- LeaveCriticalSection(&section);
- throw;
- }
- LeaveCriticalSection(&section);
-
-#else
- int rc = pthread_mutex_lock(&mutex);
- if (rc) {
- ostringstream msg;
- msg << "Failed to lock mutex, errno: " << errno;
- throwException(TuscanyRuntimeException, msg.str().c_str());
- }
- try
- {
- while (queue.size() == 0) {
- rc = pthread_cond_wait(&cond, &mutex);
- if (rc) {
- ostringstream msg;
- msg << "Failed to wait for condition variable, errno: " << errno;
- throwException(TuscanyRuntimeException, msg.str().c_str());
- }
- }
-
- element = queue.front();
- queue.pop();
- }
- catch(...)
- {
- pthread_mutex_unlock(&mutex);
- throw;
- }
- rc = pthread_mutex_unlock(&mutex);
- if (rc) {
- ostringstream msg;
- msg << "Failed to unlock mutex, errno: " << errno;
- throwException(TuscanyRuntimeException, msg.str().c_str());
- }
-
-#endif
-
- return element;
- }
-
- } // End namespace util
- } // End namespace sca
-} // End namespace tuscany
diff --git a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Queue.h b/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Queue.h
deleted file mode 100644
index e2ff104631..0000000000
--- a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Queue.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev: 492011 $ $Date: 2007-01-02 18:15:11 -0800 (Tue, 02 Jan 2007) $ */
-
-#ifndef tuscany_sca_util_queue_h
-#define tuscany_sca_util_queue_h
-
-#if defined(WIN32) || defined (_WINDOWS)
-#include <windows.h>
-#else
-#include <pthread.h>
-#endif
-
-#include <queue>
-
-#include "tuscany/sca/export.h"
-
-
-namespace tuscany
-{
- namespace sca
- {
- namespace util
- {
- /**
- * A thread safe FIFO queue.
- */
- class SCA_API Queue
- {
- public:
- /**
- * Constructor.
- */
- Queue();
-
- /**
- * Destructor.
- */
- virtual ~Queue();
-
- /**
- * Dequeue an element
- */
- void* dequeue();
-
- /**
- * Enqueue an element
- */
- void enqueue(void* element);
-
- private:
-
- /**
- * The STL queue used to hold elements.
- */
- std::queue<void*> queue;
-
- /**
- * Handles to the mutex and condition variable
- * used to synchronize access to the queue.
- */
-#if defined(WIN32) || defined (_WINDOWS)
- CRITICAL_SECTION section;
- HANDLE hevent;
-#else
- pthread_mutex_t mutex;
- pthread_cond_t cond;
-#endif
-
- };
-
- } // End namespace util
- } // End namespace sca
-} // End namespace tuscany
-
-#endif // tuscany_sca_util_queue_h
diff --git a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/SDOUtils.cpp b/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/SDOUtils.cpp
deleted file mode 100644
index 513409db6a..0000000000
--- a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/SDOUtils.cpp
+++ /dev/null
@@ -1,438 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev$ $Date$ */
-
-#if defined(WIN32) || defined (_WINDOWS)
-#pragma warning(disable: 4786)
-#endif
-
-#include "tuscany/sca/util/SDOUtils.h"
-
-using namespace std;
-using namespace commonj::sdo;
-
-namespace tuscany
-{
- namespace sca
- {
- namespace util
- {
-
- /**
- * Constructor
- */
- SDOVisitor::SDOVisitor()
- {
- }
-
- /**
- * Destructor
- */
- SDOVisitor::~SDOVisitor()
- {
- }
-
- SDOVisitor::RESULT SDOVisitor::visit(DataObjectPtr parent, const Property& property, bool boolData)
- {
- return SDOVisitor::RESULT_NOT_SUPPORTED;
- }
-
- SDOVisitor::RESULT SDOVisitor::visit(DataObjectPtr parent, const Property& property, char byteData)
- {
- return SDOVisitor::RESULT_NOT_SUPPORTED;
- }
-
- SDOVisitor::RESULT SDOVisitor::visit(DataObjectPtr parent, const Property& property, const char* bytesData)
- {
- return SDOVisitor::RESULT_NOT_SUPPORTED;
- }
-
- SDOVisitor::RESULT SDOVisitor::visit(DataObjectPtr parent, const Property& property, wchar_t charData)
- {
- return SDOVisitor::RESULT_NOT_SUPPORTED;
- }
-
- SDOVisitor::RESULT SDOVisitor::visit(DataObjectPtr parent, const Property& property, const SDODate& dateData)
- {
- return SDOVisitor::RESULT_NOT_SUPPORTED;
- }
-
- SDOVisitor::RESULT SDOVisitor::visit(DataObjectPtr parent, const Property& property, long double doubleData)
- {
- return SDOVisitor::RESULT_NOT_SUPPORTED;
- }
-
- SDOVisitor::RESULT SDOVisitor::visit(DataObjectPtr parent, const Property& property, float floatData)
- {
- return SDOVisitor::RESULT_NOT_SUPPORTED;
- }
-
- SDOVisitor::RESULT SDOVisitor::visit(DataObjectPtr parent, const Property& property, long intData)
- {
- return SDOVisitor::RESULT_NOT_SUPPORTED;
- }
-
- SDOVisitor::RESULT SDOVisitor::visit(DataObjectPtr parent, const Property& property, short shortData)
- {
- return SDOVisitor::RESULT_NOT_SUPPORTED;
- }
-
- SDOVisitor::RESULT SDOVisitor::visit(DataObjectPtr parent, const Property& property, const string& stringData)
- {
- return SDOVisitor::RESULT_CONTINUE;
- }
-
- SDOVisitor::RESULT SDOVisitor::visit(DataObjectPtr parent, const Property& property, DataObjectPtr dataObjectData)
- {
- return SDOVisitor::RESULT_CONTINUE;
- }
-
- const char* SDOUtils::sdoURI = "commonj.sdo";
-
- SDOVisitor::RESULT SDOUtils::accept(DataObjectPtr dataObject, SDOVisitor& visitor, SDOVisitor::DEPTH depth)
- {
- SDOVisitor::RESULT result = SDOVisitor::RESULT_CONTINUE;
-
- const Type& type = dataObject->getType();
- if (type.isSequencedType())
- {
- SequencePtr sequence = dataObject->getSequence();
- int size = sequence->size();
- for (int i = 0; i < size; i++)
- {
- if (sequence->isText(i))
- {
- const string text(sequence->getCStringValue(i));
- result = visitor.visit(dataObject, *(Property*)NULL, (const string&)text);
- }
- else
- {
- const Property& seqProperty = sequence->getProperty(i);
- const Type& seqType = seqProperty.getType();
- if (seqType.isDataObjectType())
- {
- DataObjectPtr dob;
- if (seqProperty.isMany())
- {
- int index = sequence->getListIndex(i);
- dob = dataObject->getList(seqProperty)[index];
- }
- else
- {
- dob = dataObject->getDataObject(seqProperty);
- }
-
- if (dob)
- {
- result = visitor.visit(dataObject, seqProperty, (DataObjectPtr)dob);
- }
- }
- else
- {
- Type::Types t = seqProperty.getTypeEnum();
- switch (t)
- {
- case Type::BooleanType:
- {
- result = visitor.visit(dataObject, seqProperty, (bool)sequence->getBooleanValue(i));
- }
- break;
- case Type::ByteType:
- {
- result = visitor.visit(dataObject, seqProperty, (char)sequence->getByteValue(i));
- }
- break;
- case Type::CharacterType:
- {
- result = visitor.visit(dataObject, seqProperty, (wchar_t)sequence->getCharacterValue(i));
- }
- break;
- case Type::IntType:
- {
- result = visitor.visit(dataObject, seqProperty, (long)sequence->getIntValue(i));
- }
- break;
- case Type::ShortType:
- {
- result = visitor.visit(dataObject, seqProperty, (short)sequence->getShortValue(i));
- }
- break;
- case Type::DoubleType:
- {
- result = visitor.visit(dataObject, seqProperty, (long double)sequence->getDoubleValue(i));
- }
- break;
- case Type::FloatType:
- {
- result = visitor.visit(dataObject, seqProperty, (float)sequence->getFloatValue(i));
- }
- break;
- case Type::LongType:
- {
- result = visitor.visit(dataObject, seqProperty, (long)sequence->getLongValue(i));
- }
- break;
- case Type::DateType:
- {
- const SDODate date = sequence->getDateValue(i);
- result = visitor.visit(dataObject, seqProperty, (long)(const time_t)date.getTime());
- }
- break;
- case Type::BigDecimalType:
- case Type::BigIntegerType:
- case Type::UriType:
- case Type::StringType:
- {
- ;
- const string stringData(sequence->getCStringValue(i));
- result = visitor.visit(dataObject, seqProperty, (const string&)stringData);
- }
- break;
- case Type::BytesType:
- {
- unsigned int len = sequence->getLength(i);
- char* byteData = new char[len];
- sequence->getBytesValue(i, byteData, len);
- result = visitor.visit(dataObject, seqProperty, byteData);
- delete byteData;
- }
- break;
- default:
- result = SDOVisitor::RESULT_NOT_SUPPORTED;
- break;
- }
- if (result == SDOVisitor::RESULT_NOT_SUPPORTED)
- {
- ;
- const string stringData(sequence->getCStringValue(i));
- result = visitor.visit(dataObject, seqProperty, (const string&)stringData);
- }
- }
- }
- if (result == SDOVisitor::RESULT_STOP)
- return result;
- }
- }
- else
- {
- PropertyList pl = dataObject->getInstanceProperties();
- for (unsigned int i = 0; i < pl.size(); i++)
- {
- if (dataObject->isSet(pl[i]))
- {
- if (pl[i].getType().isDataObjectType())
- {
- if (pl[i].isMany())
- {
- DataObjectList& doList = dataObject->getList(pl[i]);
- for (unsigned int li = 0; li < doList.size(); li++)
- {
- DataObjectPtr dob = doList[li];
- result = visitor.visit(dataObject, pl[i], (DataObjectPtr)dob);
- if (result == SDOVisitor::RESULT_STOP)
- return result;
- }
- }
- else
- {
- DataObjectPtr dob = dataObject->getDataObject(pl[i]);
- result = visitor.visit(dataObject, pl[i], (DataObjectPtr)dob);
- }
- }
- else
- {
- if (pl[i].isMany())
- {
- Type::Types t = pl[i].getTypeEnum();
- DataObjectList& doList = dataObject->getList(pl[i]);
- for (unsigned int li = 0; li < doList.size(); li++)
- {
- switch (t)
- {
- case Type::BooleanType:
- {
- result = visitor.visit(dataObject, pl[i], (bool)doList.getBoolean(li));
- }
- break;
- case Type::ByteType:
- {
- result = visitor.visit(dataObject, pl[i], (char)doList.getByte(li));
- }
- break;
- case Type::CharacterType:
- {
- result = visitor.visit(dataObject, pl[i], (wchar_t)doList.getCharacter(li));
- }
- break;
- case Type::IntType:
- {
- result = visitor.visit(dataObject, pl[i], (long)doList.getInt(li));
- }
- break;
- case Type::ShortType:
- {
- result = visitor.visit(dataObject, pl[i], (short)doList.getShort(li));
- }
- break;
- case Type::DoubleType:
- {
- result = visitor.visit(dataObject, pl[i], (long double)doList.getDouble(li));
- }
- break;
- case Type::FloatType:
- {
- result = visitor.visit(dataObject, pl[i], (float)doList.getFloat(li));
- }
- break;
- case Type::LongType:
- {
- result = visitor.visit(dataObject, pl[i], (long)doList.getLong(li));
- }
- break;
- case Type::DateType:
- {
- const SDODate date = doList.getDate(li);
- result = visitor.visit(dataObject, pl[i], (long)(const time_t)date.getTime());
- }
- break;
- case Type::BigDecimalType:
- case Type::BigIntegerType:
- case Type::UriType:
- case Type::StringType:
- {
- const string stringData(doList.getCString(li));
- result = visitor.visit(dataObject, pl[i], (const string&)stringData);
- }
- break;
- case Type::BytesType:
- {
- unsigned int len = doList.getLength(li);
- char* byteData = new char[len];
- doList.getBytes(li, byteData, len);
- result = visitor.visit(dataObject, pl[i], byteData);
- delete byteData;
- }
- break;
- default:
- result = SDOVisitor::RESULT_NOT_SUPPORTED;
- break;
- }
- if (result == SDOVisitor::RESULT_NOT_SUPPORTED)
- {
- const string stringData(doList.getCString(li));
- result = visitor.visit(dataObject, pl[i], (const string&)stringData);
- }
- if (result == SDOVisitor::RESULT_STOP)
- return result;
- }
- }
- else
- {
- Type::Types t = pl[i].getTypeEnum();
- switch (t)
- {
- case Type::BooleanType:
- {
- result = visitor.visit(dataObject, pl[i], (bool)dataObject->getBoolean(pl[i]));
- }
- break;
- case Type::ByteType:
- {
- result = visitor.visit(dataObject, pl[i], (char)dataObject->getByte(pl[i]));
- }
- break;
- case Type::CharacterType:
- {
- result = visitor.visit(dataObject, pl[i], (wchar_t)dataObject->getCharacter(pl[i]));
- }
- break;
- case Type::IntType:
- {
- result = visitor.visit(dataObject, pl[i], (long)dataObject->getInt(pl[i]));
- }
- break;
- case Type::ShortType:
- {
- result = visitor.visit(dataObject, pl[i], (short)dataObject->getShort(pl[i]));
- }
- break;
- case Type::DoubleType:
- {
- result = visitor.visit(dataObject, pl[i], (long double)dataObject->getDouble(pl[i]));
- }
- break;
- case Type::FloatType:
- {
- result = visitor.visit(dataObject, pl[i], (float)dataObject->getFloat(pl[i]));
- }
- break;
- case Type::LongType:
- {
- result = visitor.visit(dataObject, pl[i], (long)dataObject->getLong(pl[i]));
- }
- break;
- case Type::DateType:
- {
- const SDODate date = dataObject->getDate(pl[i]);
- result = visitor.visit(dataObject, pl[i], (long)(const time_t)date.getTime());
- }
- break;
- case Type::BigDecimalType:
- case Type::BigIntegerType:
- case Type::UriType:
- case Type::StringType:
- {
- const string stringData(dataObject->getCString(pl[i]));
- result = visitor.visit(dataObject, pl[i], (const string&)stringData);
- }
- break;
- case Type::BytesType:
- {
- unsigned int len = dataObject->getLength(pl[i]);
- char* byteData = new char[len];
- dataObject->getBytes(pl[i], byteData, len);
- result = visitor.visit(dataObject, pl[i], byteData);
- delete byteData;
- }
- break;
- default:
- result = SDOVisitor::RESULT_NOT_SUPPORTED;
- break;
- }
- if (result == SDOVisitor::RESULT_NOT_SUPPORTED)
- {
- const string stringData(dataObject->getCString(pl[i]));
- result = visitor.visit(dataObject, pl[i], (const string&)stringData);
- }
- }
- }
- }
- if (result == SDOVisitor::RESULT_STOP)
- return result;
- }
- }
-
- return SDOVisitor::RESULT_CONTINUE;
- }
-
- } // End namespace util
- } // End namespace sca
-} // End namespace tuscany
-
diff --git a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/SDOUtils.h b/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/SDOUtils.h
deleted file mode 100644
index 5be65c355a..0000000000
--- a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/SDOUtils.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev$ $Date$ */
-
-#ifndef tuscany_sca_util_sdovisitor_h
-#define tuscany_sca_util_sdovisitor_h
-
-#include <string>
-#include <vector>
-#include <time.h>
-
-#include "commonj/sdo/SDO.h"
-
-#include "tuscany/sca/export.h"
-
-namespace tuscany
-{
- namespace sca
- {
- namespace util
- {
- /**
- * An SDO visitor interface
- */
- class SCA_API SDOVisitor
- {
- public:
- /**
- * Constructor.
- */
- SDOVisitor();
-
- /**
- * Destructor.
- */
- virtual ~SDOVisitor();
-
- /**
- * Visit depth
- */
- enum DEPTH
- {
- DEPTH_ZERO = 0,
- DEPTH_ONE,
- DEPTH_INFINITE
- };
-
- /**
- * Visit status
- */
- enum RESULT
- {
- RESULT_CONTINUE = 0,
- RESULT_STOP,
- RESULT_NOT_SUPPORTED
- };
-
- /**
- * Visit an SDO.
- */
- virtual RESULT visit(commonj::sdo::DataObjectPtr parent, const commonj::sdo::Property& property, bool boolData);
- virtual RESULT visit(commonj::sdo::DataObjectPtr parent, const commonj::sdo::Property& property, char byteData);
- virtual RESULT visit(commonj::sdo::DataObjectPtr parent, const commonj::sdo::Property& property, const char* bytesData);
- virtual RESULT visit(commonj::sdo::DataObjectPtr parent, const commonj::sdo::Property& property, wchar_t charData);
- virtual RESULT visit(commonj::sdo::DataObjectPtr parent, const commonj::sdo::Property& property, const commonj::sdo::SDODate& dateData);
- virtual RESULT visit(commonj::sdo::DataObjectPtr parent, const commonj::sdo::Property& property, long double doubleData);
- virtual RESULT visit(commonj::sdo::DataObjectPtr parent, const commonj::sdo::Property& property, float floatData);
- virtual RESULT visit(commonj::sdo::DataObjectPtr parent, const commonj::sdo::Property& property, long intData);
- virtual RESULT visit(commonj::sdo::DataObjectPtr parent, const commonj::sdo::Property& property, short shortData);
- virtual RESULT visit(commonj::sdo::DataObjectPtr parent, const commonj::sdo::Property& property, const std::string& stringData);
- virtual RESULT visit(commonj::sdo::DataObjectPtr parent, const commonj::sdo::Property& property, commonj::sdo::DataObjectPtr dataObjectData);
- };
-
- /**
- * SDO utilities.
- */
- class SCA_API SDOUtils
- {
- public:
-
- static SDOVisitor::RESULT accept(commonj::sdo::DataObjectPtr dataObject, SDOVisitor& visitor, SDOVisitor::DEPTH depth);
- static const char* sdoURI;
-
- };
-
- } // End namespace util
- } // End namespace sca
-} // End namespace tuscany
-#endif // tuscany_sca_sdovisitor_file_h
diff --git a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Thread.cpp b/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Thread.cpp
deleted file mode 100644
index 064a91409b..0000000000
--- a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Thread.cpp
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev: 491752 $ $Date: 2007-01-01 22:22:23 -0800 (Mon, 01 Jan 2007) $ */
-
-#if defined(WIN32) || defined (_WINDOWS)
-#pragma warning(disable: 4786)
-#include <process.h>
-#endif
-
-#include <errno.h>
-
-#include <sstream>
-
-#include "tuscany/sca/util/Thread.h"
-#include "tuscany/sca/util/Utils.h"
-#include "tuscany/sca/util/Logging.h"
-#include "tuscany/sca/core/Exceptions.h"
-
-using namespace std;
-
-
-namespace tuscany
-{
- namespace sca
- {
- namespace util
- {
-
-#if defined(WIN32) || defined (_WINDOWS)
- unsigned int __stdcall runThread(void *args)
- {
- Thread* thread = (Thread*)args;
- thread->run();
- return 0;
- }
-#else
- void* runThread(void* args)
- {
- Thread* thread = (Thread*)args;
- thread->run();
- return NULL;
- }
-#endif
-
- Thread::Thread()
-#if defined(WIN32) || defined (_WINDOWS)
- : hthread(0)
-#else
-#endif
- {
- logentry();
- }
-
- Thread::~Thread()
- {
- logentry();
-#if defined(WIN32) || defined (_WINDOWS)
- if (hthread != 0)
- {
- CloseHandle(hthread);
- }
-#else
-#endif
- }
-
- void Thread::start()
- {
- logentry();
-#if defined(WIN32) || defined (_WINDOWS)
- hthread = (HANDLE)_beginthreadex(NULL, 0, runThread, this, 0, NULL);
- if (hthread == 0)
- {
- ostringstream msg;
- msg << "Failed to create thread, errno: " << __doserrno;
- throwException(TuscanyRuntimeException, msg.str().c_str());
- }
-#else
- int rc =pthread_create(&thread, NULL, runThread, this);
- if (rc)
- {
- ostringstream msg;
- msg << "Failed to create thread, errno: " << errno;
- throwException(TuscanyRuntimeException, msg.str().c_str());
- }
-#endif
- }
-
- void Thread::join()
- {
- logentry();
-
-#if defined(WIN32) || defined (_WINDOWS)
- WaitForSingleObject(hthread, INFINITE);
-#else
- int rc =pthread_join(thread, NULL);
- if (rc)
- {
- ostringstream msg;
- msg << "Failed to join thread, errno: " << errno;
- throwException(TuscanyRuntimeException, msg.str().c_str());
- }
-#endif
- }
-
- } // End namespace util
- } // End namespace sca
-} // End namespace tuscany
diff --git a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Thread.h b/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Thread.h
deleted file mode 100644
index 2ca9142994..0000000000
--- a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Thread.h
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev: 492011 $ $Date: 2007-01-02 18:15:11 -0800 (Tue, 02 Jan 2007) $ */
-
-#ifndef tuscany_sca_util_thread_h
-#define tuscany_sca_util_thread_h
-
-#if defined(WIN32) || defined (_WINDOWS)
-#include <windows.h>
-#else
-#include <pthread.h>
-#endif
-
-#include <queue>
-
-#include "tuscany/sca/export.h"
-
-
-namespace tuscany
-{
- namespace sca
- {
- namespace util
- {
- /**
- * A portable wrapper for native threads.
- */
- class SCA_API Thread
- {
- public:
- /**
- * Constructor.
- */
- Thread();
-
- /**
- * Destructor.
- */
- virtual ~Thread();
-
- /**
- * The method that will be run in the thread.
- */
- virtual void run() = 0;
-
- /**
- * Start the thread.
- */
- void start();
-
- /**
- * Join the thread.
- */
- void join();
-
- private:
-
- /**
- * Native thread handle.
- */
-#if defined(WIN32) || defined (_WINDOWS)
- HANDLE hthread;
-#else
- pthread_t thread;
-#endif
-
- };
-
- } // End namespace util
- } // End namespace sca
-} // End namespace tuscany
-
-#endif // tuscany_sca_util_thread_h
diff --git a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/ThreadLocal.cpp b/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/ThreadLocal.cpp
deleted file mode 100644
index 07c99b3cb1..0000000000
--- a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/ThreadLocal.cpp
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev$ $Date$ */
-
-#include <errno.h>
-
-#include <sstream>
-
-#include "tuscany/sca/util/ThreadLocal.h"
-#include "tuscany/sca/util/Utils.h"
-#include "tuscany/sca/util/Logging.h"
-#include "tuscany/sca/core/Exceptions.h"
-
-using namespace std;
-
-
-namespace tuscany
-{
- namespace sca
- {
- namespace util
- {
- ThreadLocal::ThreadLocal()
- {
- logentry();
-#if defined(WIN32) || defined (_WINDOWS)
- index = TlsAlloc();
- if (index == TLS_OUT_OF_INDEXES)
- {
- ostringstream msg;
- msg << "Failed to create thread local index, error: " << GetLastError();
- throwException(TuscanyRuntimeException, msg.str().c_str());
- }
-#else
- int rc = pthread_key_create(&key, NULL);
- if (rc)
- {
- ostringstream msg;
- msg << "Failed to create thread local key, errno: " << errno;
- throwException(TuscanyRuntimeException, msg.str().c_str());
- }
-#endif
- }
-
- ThreadLocal::~ThreadLocal()
- {
- logentry();
-#if defined(WIN32) || defined (_WINDOWS)
- if (!TlsFree(index))
- {
- ostringstream msg;
- msg << "Failed to destroy thread local index, error: " << GetLastError();
- throwException(TuscanyRuntimeException, msg.str().c_str());
- }
-#else
- int rc = pthread_key_delete(key);
- if (rc) {
- ostringstream msg;
- msg << "Failed to destroy thread local key, errno: " << errno;
- throwException(TuscanyRuntimeException, msg.str().c_str());
- }
-#endif
- }
-
- void ThreadLocal::setValue(void* value)
- {
- logentry();
-#if defined(WIN32) || defined (_WINDOWS)
- if (!TlsSetValue(index, value))
- {
- ostringstream msg;
- msg << "Failed to set thread local value, error: " << GetLastError();
- throwException(TuscanyRuntimeException, msg.str().c_str());
- }
-#else
- int rc = pthread_setspecific(key, value);
- if (rc) {
- ostringstream msg;
- msg << "Failed to set thread local value, errno: " << errno;
- throwException(TuscanyRuntimeException, msg.str().c_str());
- }
-#endif
- }
-
- void* ThreadLocal::getValue() const
- {
- logentry();
-#if defined(WIN32) || defined (_WINDOWS)
- return TlsGetValue(index);
-#else
- return pthread_getspecific(key);
-#endif
- }
-
- } // End namespace util
- } // End namespace sca
-} // End namespace tuscany
diff --git a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/ThreadLocal.h b/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/ThreadLocal.h
deleted file mode 100644
index 556055f183..0000000000
--- a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/ThreadLocal.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev$ $Date$ */
-
-#ifndef tuscany_sca_util_threadlocal_h
-#define tuscany_sca_util_threadlocal_h
-
-#if defined(WIN32) || defined (_WINDOWS)
-#include <windows.h>
-#else
-#include <pthread.h>
-#endif
-
-#include "tuscany/sca/export.h"
-
-
-namespace tuscany
-{
- namespace sca
- {
- namespace util
- {
- /**
- * Information about shared libraries and methods to
- * access these shared libraries.
- */
- class SCA_API ThreadLocal
- {
- public:
- /**
- * Constructor.
- */
- ThreadLocal();
-
- /**
- * Destructor.
- */
- virtual ~ThreadLocal();
-
- /**
- * Set the ThreadLocal value.
- */
- void setValue(void *value);
-
- /**
- * Get the ThreadLocal value.
- */
- void* getValue() const;
-
- private:
-
- /**
- * Handle to the thread local key.
- */
-#if defined(WIN32) || defined (_WINDOWS)
- DWORD index;
-#else
- pthread_key_t key;
-#endif
-
- };
-
- } // End namespace util
- } // End namespace sca
-} // End namespace tuscany
-
-#endif // tuscany_sca_util_threadlocal_h
diff --git a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Utils.cpp b/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Utils.cpp
deleted file mode 100644
index 98a929392d..0000000000
--- a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Utils.cpp
+++ /dev/null
@@ -1,598 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev$ $Date$ */
-
-#if defined(WIN32) || defined (_WINDOWS)
-#pragma warning(disable: 4786)
-#endif
-
-#if defined(WIN32) || defined (_WINDOWS)
-#include <windows.h>
-#else
-#include <errno.h>
-#endif
-
-#include "tuscany/sca/util/Utils.h"
-
-using namespace std;
-using namespace commonj::sdo;
-
-namespace tuscany
-{
- namespace sca
- {
- namespace util
- {
- void Utils::tokeniseUri(const string& uri, string& token1, string& token2)
- {
- tokeniseString("/", uri, token1, token2);
- }
-
- void Utils::tokeniseQName(const string& qname, string& uri, string& name)
- {
- tokeniseString("#", qname, uri, name);
- if (name == "")
- {
- name = uri;
- uri = "";
- }
- }
-
- void Utils::tokeniseString(
- const string& separator,
- const string& str,
- string& token1,
- string& token2)
- {
- string::size_type sep = str.find(separator);
- if (sep != string::npos)
- {
- int l = separator.length();
- token1 = str.substr(0, sep);
- if ( (sep+l) < str.length())
- {
- token2 = str.substr(sep+l);
- }
- else
- {
- token2 = "";
- }
- }
- else
- {
- token1 = str;
- token2 = "";
- }
- }
-
- void Utils::rTokeniseString(
- const string& separator,
- const string& str,
- string& token1,
- string& token2)
- {
- string::size_type sep = str.rfind(separator);
- if (sep != string::npos)
- {
- int l = separator.length();
- token1 = str.substr(0, sep);
- if ( (sep+l) < str.length())
- {
- token2 = str.substr(sep+l);
- }
- else
- {
- token2 = "";
- }
- }
- else
- {
- token1 = "";
- token2 = str;
- }
- }
-
- void Utils::breakpoint() {
- // dummy method used to set breakpoints
- }
-
- //////////////////////////////////////////////////////////////////////////
- // Print a DatObject tree
- //////////////////////////////////////////////////////////////////////////
- void Utils::tabs(int inc)
- {
- for (int ind=0; ind <inc; ind++)
- {
- cout << " ";
- }
- }
-
- const bool Utils::compareProperties(DataObjectPtr dataObject1, const Property& prop1, DataObjectPtr dataObject2, const Property& prop2, string& diff)
- {
- if(strcmp(prop1.getName(),prop2.getName()) != 0)
- {
- diff.append("Differing names for Properties:\n");
- diff.append(prop1.getName());
- diff.append("\n");
- diff.append(prop2.getName());
- return false;
- }
-
- const Type& propertyType1 = prop1.getType();
- const Type& propertyType2 = prop2.getType();
-
- if(strcmp(propertyType1.getName(), propertyType2.getName()) != 0 ||
- strcmp(propertyType1.getURI(),propertyType2.getURI()) != 0 )
- {
- diff.append("Differing types for Properties:\n");
- diff.append(propertyType1.getName());
- diff.append("#");
- diff.append(propertyType1.getURI());
- diff.append("\n");
- diff.append(propertyType2.getName());
- diff.append("#");
- diff.append(propertyType2.getURI());
- return false;
- }
- if (dataObject1->isSet(prop1) != dataObject2->isSet(prop2))
- {
- diff.append("Property ");
- diff.append(prop1.getName());
- diff.append(" is set on one DataObject but not the other");
- return false;
- }
-
- if (dataObject1->isSet(prop1))
- {
-
- if (prop1.isMany() != prop2.isMany())
- {
- diff.append("Property ");
- diff.append(prop1.getName());
- diff.append(" is many on one DataObject but not the other");
- return false;
- }
- if (propertyType1.isDataType() != propertyType2.isDataType())
- {
- diff.append("Property ");
- diff.append(prop1.getName());
- diff.append(" is dataType on one DataObject but not the other");
- return false;
- }
-
- //////////////////////////////////////////////////////////////////////
- // For a many-valued property get the list of values
- //////////////////////////////////////////////////////////////////////
- if (prop1.isMany())
- {
- DataObjectList& dol1 = dataObject1->getList(prop1);
- DataObjectList& dol2 = dataObject2->getList(prop2);
- if (dol1.size() != dol2.size())
- {
- diff.append("Property ");
- diff.append(prop1.getName());
- diff.append(" is many but has differing number of elements");
- return false;
- }
-
- for (unsigned int j = 0; j <dol1.size(); j++)
- {
-
- if (propertyType1.isDataType())
- {
- if( strcmp(dol1.getCString(j), dol2.getCString(j)) != 0)
- {
- diff.append("Differing value for Property ");
- diff.append(prop1.getName());
- diff.append("[");
- diff += ((int)j);
- diff.append("]:\n");
- diff.append(dol1.getCString(j));
- diff.append("\n");
- diff.append(dol2.getCString(j));
- return false;
- }
- }
- else
- {
- if(!compareDataObjects(dol1[j], dol2[j], diff))
- {
- return false;
- }
- }
- }
- } // end IsMany
-
-
- //////////////////////////////////////////////////////////////////////
- // For a primitive data type compare the values
- //////////////////////////////////////////////////////////////////////
- else if (propertyType1.isDataType())
- {
- if( strcmp(dataObject1->getCString(prop1), dataObject2->getCString(prop2)) != 0)
- {
- diff.append("Differing value for Property ");
- diff.append(prop1.getName());
- diff.append(":\n");
- diff.append(dataObject1->getCString(prop1));
- diff.append("\n");
- diff.append(dataObject2->getCString(prop2));
- return false;
- }
- }
-
- //////////////////////////////////////////////////////////////////////
- // For a dataobject compare the DOs
- //////////////////////////////////////////////////////////////////////
- else
- {
- if(!compareDataObjects(dataObject1->getDataObject(prop1), dataObject2->getDataObject(prop2), diff))
- {
- return false;
- }
- }
- }
- return true;
- }
-
- const bool Utils::compareDataObjects(DataObjectPtr dataObject1, DataObjectPtr dataObject2, string& diff)
- {
- if (!dataObject1 || !dataObject2)
- {
- diff.append("Cannot compare null DataObjects");
- return false;
- }
-
- const Type& dataObject1Type = dataObject1->getType();
- const Type& dataObject2Type = dataObject2->getType();
-
- if( strcmp(dataObject1Type.getURI(), dataObject2Type.getURI()) != 0 ||
- strcmp(dataObject1Type.getName(), dataObject2Type.getName()) != 0 )
- {
- diff.append("DataObject Types differ:\n");
- diff.append(dataObject1Type.getURI());
- diff.append("#");
- diff.append(dataObject1Type.getName());
- diff.append("\n");
- diff.append(dataObject2Type.getURI());
- diff.append("#");
- diff.append(dataObject2Type.getName());
- return false;
- }
-
- //////////////////////////////////////////////////////////////////////////
- // Iterate over all the properties
- //////////////////////////////////////////////////////////////////////////
- PropertyList pl1 = dataObject1->getInstanceProperties();
- PropertyList pl2 = dataObject2->getInstanceProperties();
- if (pl1.size() != pl2.size())
- {
- diff.append("Differing number of properties");
- return false;
- }
-
- if (pl1.size() != 0)
- {
- for (unsigned int i = 0; i < pl1.size(); i++)
- {
- if(!compareProperties(dataObject1, pl1[i], dataObject2, pl2[i], diff))
- {
- return false;
- }
- }
- }
- else
- {
- if(dataObject1->getType().isOpenType() != dataObject2->getType().isOpenType() &&
- dataObject1->getType().isDataObjectType() != dataObject2->getType().isDataObjectType())
- {
- diff.append("DataObject is open & DO type on one but not the other");
- return false;
- }
-
- // Compare elements under an open DataObject
- if(dataObject1->getType().isOpenType() && dataObject1->getType().isDataObjectType())
- {
- SequencePtr sequence1 = dataObject1->getSequence();
- SequencePtr sequence2 = dataObject2->getSequence();
-
- if (sequence1 != NULL && sequence2 != NULL)
- {
- if (sequence1->size() != sequence1->size())
- {
- diff.append("Open DataObjects have differing number of elements");
- return false;
- }
-
- for (unsigned int i = 0; i < sequence1->size(); i++)
- {
- if (sequence1->isText(i) != sequence2->isText(i))
- {
- diff.append("Open DataObjects have differing element types at position ");
- diff += ((int) i);
- return false;
- }
- if (sequence1->isText(i))
- {
- if( strcmp(sequence1->getCStringValue(i), sequence2->getCStringValue(i)) != 0)
- {
- diff.append("Differing value for element at position ");
- diff += ((int) i);
- diff.append(":\n");
- diff.append(sequence1->getCStringValue(i));
- diff.append("\n");
- diff.append(sequence2->getCStringValue(i));
- return false;
- }
- }
- else
- {
- const Property& p1 = sequence1->getProperty(i);
- const Property& p2 = sequence2->getProperty(i);
-
- if(!compareProperties(dataObject1, p1, dataObject2, p2, diff))
- {
- return false;
- }
- }
- }
- }
- }
- }
-
- return true;
- }
-
- void Utils::printDO(DataObjectPtr dataObject, int increment)
- {
- int inc=increment;
- if (!dataObject)
- return;
- const Type& dataObjectType = dataObject->getType();
- tabs(inc);
- cout << "DataObject type: " << dataObjectType.getURI()<< "#" << dataObjectType.getName() << endl;
- inc++;
-
- //////////////////////////////////////////////////////////////////////////
- // Iterate over all the properties
- //////////////////////////////////////////////////////////////////////////
- PropertyList pl = dataObject->getInstanceProperties();
- if (pl.size() != 0)
- {
- for (unsigned int i = 0; i < pl.size(); i++)
- {
- tabs(inc);
- cout << "Property: " << pl[i].getName() << endl;
-
- const Type& propertyType = pl[i].getType();
-
- tabs(inc);
- cout << "Property Type: " << propertyType.getURI()<< "#" << propertyType.getName() << endl;
-
- if (dataObject->isSet(pl[i]))
- {
-
- //////////////////////////////////////////////////////////////////////
- // For a many-valued property get the list of values
- //////////////////////////////////////////////////////////////////////
- if (pl[i].isMany())
- {
- inc++;
- DataObjectList& dol = dataObject->getList(pl[i]);
- for (unsigned int j = 0; j <dol.size(); j++)
- {
- tabs(inc);
- cout << "Value " << j <<endl;
- inc++;
-
- if (propertyType.isDataType())
- {
- tabs(inc);
- cout<< "Property Value: " << dol.getCString(j) <<endl ;
- }
- else
- printDO(dol[j], inc);
- inc--;
- }
- inc--;
- } // end IsMany
-
-
- //////////////////////////////////////////////////////////////////////
- // For a primitive data type print the value
- //////////////////////////////////////////////////////////////////////
- else if (propertyType.isDataType())
- {
- tabs(inc);
- cout<< "Property Value: " << dataObject->getCString(pl[i]) <<endl ;
- }
-
- //////////////////////////////////////////////////////////////////////
- // For a dataobject print the do
- //////////////////////////////////////////////////////////////////////
- else
- {
- inc++;
- printDO(dataObject->getDataObject(pl[i]), inc);
- inc--;
- }
- }
- else
- {
- tabs(inc);
- cout<< "Property Value: not set" <<endl ;
- }
-
- }
- }
- else
- {
- // Print elements under an open DataObject
- if(dataObject->getType().isOpenType() && dataObject->getType().isDataObjectType())
- {
- SequencePtr sequence = dataObject->getSequence();
- if (sequence != NULL)
- {
- for (unsigned int i = 0; i < sequence->size(); i++)
- {
- if (sequence->isText(i))
- {
- tabs(inc);
- cout<< "Text Value: " << sequence->getCStringValue(i) <<endl ;
- }
- else {
- const Property& p = sequence->getProperty(i);
-
- tabs(inc);
- cout << "Property: " << p.getName() << endl;
-
- const Type& propertyType = p.getType();
-
- tabs(inc);
- cout << "Property Type: " << propertyType.getURI()<< "#" << propertyType.getName() << endl;
-
- if (dataObject->isSet(p))
- {
-
- //////////////////////////////////////////////////////////////////////
- // For a many-valued property get the list of values
- //////////////////////////////////////////////////////////////////////
- if (p.isMany())
- {
- inc++;
- DataObjectList& dol = dataObject->getList(p);
- for (unsigned int j = 0; j <dol.size(); j++)
- {
- tabs(inc);
- cout << "Value " << j <<endl;
- inc++;
-
- if (propertyType.isDataType())
- {
- tabs(inc);
- cout<< "Property Value: " << dol.getCString(j) <<endl ;
- }
- else
- printDO(dol[j], inc);
- inc--;
- }
- inc--;
- } // end IsMany
-
-
- //////////////////////////////////////////////////////////////////////
- // For a primitive data type print the value
- //////////////////////////////////////////////////////////////////////
- else if (propertyType.isDataType())
- {
- tabs(inc);
- cout<< "Property Value: " << dataObject->getCString(p) <<endl ;
- }
-
- //////////////////////////////////////////////////////////////////////
- // For a dataobject print the do
- //////////////////////////////////////////////////////////////////////
- else
- {
- inc++;
- printDO(dataObject->getDataObject(p), inc);
- inc--;
- }
- }
- else
- {
- tabs(inc);
- cout<< "Property Value: not set" <<endl ;
- }
- }
- }
- }
- }
- }
- inc--;
- }
-
- void Utils::printTypes(DataFactoryPtr df)
- {
- //////////////////////////////////////////////////////////////////////////
- // Retrieve the DataFactory from the mediator
- // get the list of Types in the DataFactory and list them
- //////////////////////////////////////////////////////////////////////////
- TypeList tl = df->getTypes();
- for (unsigned int i = 0; i < tl.size(); i++)
- {
- cout << "Type: " << tl[i].getURI()<< "#" << tl[i].getName() << endl;
- PropertyList pl = tl[i].getProperties();
- for (unsigned int j = 0; j < pl.size(); j++)
- {
- cout << "\tProperty: " << pl[j].getName()
- << " type: " <<pl[j].getType().getURI()<<"#"<<pl[j].getType().getName()<< endl;
-
- }
- }
-
- }
-
- void Utils::printType(const Type& type, int increment)
- {
- int inc = increment;
- tabs(inc);
- cout << "Type: " << type.getURI()<< "#" << type.getName() << endl;
- inc++;
- PropertyList pl = type.getProperties();
- for (unsigned int j = 0; j < pl.size(); j++)
- {
- tabs(inc);
- cout << "\tProperty: " << pl[j].getName()
- << " type: " <<pl[j].getType().getURI()<<"#"<<pl[j].getType().getName()<< endl;
- inc++;
- printType(pl[j].getType(), inc);
- inc--;
- }
- }
-
- void Utils::printLastError(ostream& os)
- {
-#if defined(WIN32) || defined (_WINDOWS)
- DWORD err = GetLastError();
- LPTSTR buf;
- FormatMessage(
- FORMAT_MESSAGE_ALLOCATE_BUFFER |
- FORMAT_MESSAGE_FROM_SYSTEM |
- FORMAT_MESSAGE_IGNORE_INSERTS,
- NULL,
- err,
- MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
- (LPTSTR) &buf,
- 0, NULL );
-
- os << (const char *)buf;
- LocalFree(buf);
-#else
- char buf[256];
- strerror_r(errno, buf, 255);
- os << buf;
-#endif
- }
-
- } // End namespace util
- } // End namespace sca
-} // End namespace tuscany
-
diff --git a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Utils.h b/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Utils.h
deleted file mode 100644
index bbe1aa812a..0000000000
--- a/sca-cpp/trunk/runtime/core/src/tuscany/sca/util/Utils.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-/* $Rev$ $Date$ */
-
-#ifndef tuscany_sca_util_utils_h
-#define tuscany_sca_util_utils_h
-
-#include <string>
-#include <ostream>
-
-#include "commonj/sdo/SDO.h"
-
-#include "tuscany/sca/export.h"
-
-namespace tuscany
-{
- namespace sca
- {
- namespace util
- {
- /**
- * Utility methods to parse strings and provide debugging information.
- */
- class SCA_API Utils {
-
- public:
- static void tokeniseUri(const std::string& uri, std::string& token1, std::string& token2);
- static void tokeniseQName(const std::string& sdoname, std::string& uri, std::string& name);
- static void tokeniseString(
- const std::string& separator,
- const std::string& str,
- std::string& token1,
- std::string& token2);
-
- static void rTokeniseString(
- const std::string& separator,
- const std::string& str,
- std::string& token1,
- std::string& token2);
-
- static void breakpoint();
-
- static void printLastError(std::ostream& os);
-
- static void printDO(commonj::sdo::DataObjectPtr dataObject, int increment=0);
- static void printTypes(commonj::sdo::DataFactoryPtr df);
- static void printType(const commonj::sdo::Type& type, int increment=0);
-
- static const bool compareDataObjects(commonj::sdo::DataObjectPtr dataObject1, commonj::sdo::DataObjectPtr dataObject2, std::string& diff);
- static const bool compareProperties(commonj::sdo::DataObjectPtr dataObject1, const commonj::sdo::Property& prop1, commonj::sdo::DataObjectPtr dataObject2, const commonj::sdo::Property& prop2, std::string& diff);
-
- private:
- static void tabs(int increment=0);
- };
-
- } // End namespace util
- } // End namespace sca
-} // End namespace tuscany
-#endif // tuscany_sca_util_utils_h