summaryrefslogtreecommitdiffstats
path: root/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util
diff options
context:
space:
mode:
Diffstat (limited to 'tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util')
-rw-r--r--tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/DefaultLogWriter.cpp51
-rw-r--r--tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/DefaultLogWriter.h51
-rw-r--r--tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/File.cpp243
-rw-r--r--tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/File.h160
-rw-r--r--tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/FileLogWriter.cpp57
-rw-r--r--tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/FileLogWriter.h58
-rw-r--r--tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Library.cpp181
-rw-r--r--tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Library.h103
-rw-r--r--tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/LogWriter.cpp37
-rw-r--r--tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/LogWriter.h53
-rw-r--r--tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Logger.cpp272
-rw-r--r--tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Logger.h136
-rw-r--r--tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Logging.h44
-rw-r--r--tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Mutex.cpp109
-rw-r--r--tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Mutex.h84
-rw-r--r--tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Queue.cpp224
-rw-r--r--tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Queue.h93
-rw-r--r--tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/SDOUtils.cpp436
-rw-r--r--tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/SDOUtils.h105
-rw-r--r--tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Thread.cpp126
-rw-r--r--tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Thread.h90
-rw-r--r--tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/ThreadLocal.cpp120
-rw-r--r--tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/ThreadLocal.h84
-rw-r--r--tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Utils.cpp598
-rw-r--r--tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Utils.h76
25 files changed, 0 insertions, 3591 deletions
diff --git a/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/DefaultLogWriter.cpp b/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/DefaultLogWriter.cpp
deleted file mode 100644
index 48cc0aa1e6..0000000000
--- a/tags/native-sca-1.0.incubating-M3-RC1/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/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/DefaultLogWriter.h b/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/DefaultLogWriter.h
deleted file mode 100644
index 80e07d696c..0000000000
--- a/tags/native-sca-1.0.incubating-M3-RC1/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/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/File.cpp b/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/File.cpp
deleted file mode 100644
index 507c1b38ea..0000000000
--- a/tags/native-sca-1.0.incubating-M3-RC1/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/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/File.h b/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/File.h
deleted file mode 100644
index 944a192cf6..0000000000
--- a/tags/native-sca-1.0.incubating-M3-RC1/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/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/FileLogWriter.cpp b/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/FileLogWriter.cpp
deleted file mode 100644
index 56eb3146dd..0000000000
--- a/tags/native-sca-1.0.incubating-M3-RC1/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/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/FileLogWriter.h b/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/FileLogWriter.h
deleted file mode 100644
index 5925fdca85..0000000000
--- a/tags/native-sca-1.0.incubating-M3-RC1/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/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Library.cpp b/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Library.cpp
deleted file mode 100644
index 366fcdf1f3..0000000000
--- a/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Library.cpp
+++ /dev/null
@@ -1,181 +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)
-#else
-#include "tuscany_sca_config.h"
-#endif
-
-#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/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Library.h b/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Library.h
deleted file mode 100644
index 6b0a17d2b7..0000000000
--- a/tags/native-sca-1.0.incubating-M3-RC1/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/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/LogWriter.cpp b/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/LogWriter.cpp
deleted file mode 100644
index e551d04eda..0000000000
--- a/tags/native-sca-1.0.incubating-M3-RC1/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/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/LogWriter.h b/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/LogWriter.h
deleted file mode 100644
index 5a6a5c38f7..0000000000
--- a/tags/native-sca-1.0.incubating-M3-RC1/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/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Logger.cpp b/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Logger.cpp
deleted file mode 100644
index 9d55c5fb43..0000000000
--- a/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Logger.cpp
+++ /dev/null
@@ -1,272 +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];
- int size = vsnprintf(messageBuffer, 255, msg, variableArguments);
-#if defined(WIN32) || defined (_WINDOWS)
- 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
- 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];
- int size = vsnprintf(messageBuffer, 255, msg, variableArguments);
-#if defined(WIN32) || defined (_WINDOWS)
- 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
- 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];
- int size = vsnprintf(messageBuffer, 255, msg, variableArguments);
-#if defined(WIN32) || defined (_WINDOWS)
- 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
- 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];
- int size = vsnprintf(messageBuffer, 255, msg, variableArguments);
-#if defined(WIN32) || defined (_WINDOWS)
- 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
- 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/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Logger.h b/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Logger.h
deleted file mode 100644
index eccf3cf02f..0000000000
--- a/tags/native-sca-1.0.incubating-M3-RC1/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/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Logging.h b/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Logging.h
deleted file mode 100644
index bf1419faa8..0000000000
--- a/tags/native-sca-1.0.incubating-M3-RC1/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/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Mutex.cpp b/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Mutex.cpp
deleted file mode 100644
index 8a9494d7de..0000000000
--- a/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Mutex.cpp
+++ /dev/null
@@ -1,109 +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)
-#else
-#include "tuscany_sca_config.h"
-#endif
-
-#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/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Mutex.h b/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Mutex.h
deleted file mode 100644
index d509ba6d73..0000000000
--- a/tags/native-sca-1.0.incubating-M3-RC1/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/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Queue.cpp b/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Queue.cpp
deleted file mode 100644
index 099e3cece8..0000000000
--- a/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Queue.cpp
+++ /dev/null
@@ -1,224 +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)
-#else
-#include "tuscany_sca_config.h"
-#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/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Queue.h b/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Queue.h
deleted file mode 100644
index e2ff104631..0000000000
--- a/tags/native-sca-1.0.incubating-M3-RC1/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/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/SDOUtils.cpp b/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/SDOUtils.cpp
deleted file mode 100644
index f2ccda9d69..0000000000
--- a/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/SDOUtils.cpp
+++ /dev/null
@@ -1,436 +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;
- }
-
- 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())
- {
- Sequence* 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::IntegerType:
- {
- result = visitor.visit(dataObject, seqProperty, (long)sequence->getIntegerValue(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, (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::IntegerType:
- {
- result = visitor.visit(dataObject, pl[i], (long)doList.getInteger(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], (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::IntegerType:
- {
- result = visitor.visit(dataObject, pl[i], (long)dataObject->getInteger(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], (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/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/SDOUtils.h b/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/SDOUtils.h
deleted file mode 100644
index 8b5b3b8130..0000000000
--- a/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/SDOUtils.h
+++ /dev/null
@@ -1,105 +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);
-
- };
-
- } // End namespace util
- } // End namespace sca
-} // End namespace tuscany
-#endif // tuscany_sca_sdovisitor_file_h
diff --git a/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Thread.cpp b/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Thread.cpp
deleted file mode 100644
index d70ce28190..0000000000
--- a/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Thread.cpp
+++ /dev/null
@@ -1,126 +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>
-#else
-#include "tuscany_sca_config.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/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Thread.h b/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Thread.h
deleted file mode 100644
index 2ca9142994..0000000000
--- a/tags/native-sca-1.0.incubating-M3-RC1/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/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/ThreadLocal.cpp b/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/ThreadLocal.cpp
deleted file mode 100644
index 33aa1f7605..0000000000
--- a/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/ThreadLocal.cpp
+++ /dev/null
@@ -1,120 +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)
-#else
-#include "tuscany_sca_config.h"
-#endif
-
-#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/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/ThreadLocal.h b/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/ThreadLocal.h
deleted file mode 100644
index 556055f183..0000000000
--- a/tags/native-sca-1.0.incubating-M3-RC1/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/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Utils.cpp b/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Utils.cpp
deleted file mode 100644
index 98a929392d..0000000000
--- a/tags/native-sca-1.0.incubating-M3-RC1/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/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Utils.h b/tags/native-sca-1.0.incubating-M3-RC1/runtime/core/src/tuscany/sca/util/Utils.h
deleted file mode 100644
index bbe1aa812a..0000000000
--- a/tags/native-sca-1.0.incubating-M3-RC1/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