summaryrefslogtreecommitdiffstats
path: root/tags/cpp-sdo-1.0.incubating-M3/runtime/core/src/commonj/sdo/SDOValue.h
diff options
context:
space:
mode:
Diffstat (limited to 'tags/cpp-sdo-1.0.incubating-M3/runtime/core/src/commonj/sdo/SDOValue.h')
-rw-r--r--tags/cpp-sdo-1.0.incubating-M3/runtime/core/src/commonj/sdo/SDOValue.h258
1 files changed, 0 insertions, 258 deletions
diff --git a/tags/cpp-sdo-1.0.incubating-M3/runtime/core/src/commonj/sdo/SDOValue.h b/tags/cpp-sdo-1.0.incubating-M3/runtime/core/src/commonj/sdo/SDOValue.h
deleted file mode 100644
index 4b675974dd..0000000000
--- a/tags/cpp-sdo-1.0.incubating-M3/runtime/core/src/commonj/sdo/SDOValue.h
+++ /dev/null
@@ -1,258 +0,0 @@
-/*
-*
-* Copyright 2007 The Apache Software Foundation or its licensors, as applicable.
-*
-* Licensed 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 _SDOValue_H_
-#define _SDOValue_H_
-
-#include "commonj/sdo/export.h"
-#include "commonj/sdo/SDODate.h"
-#include "commonj/sdo/SDOString.h"
-#include "commonj/sdo/SDODataConverter.h"
-#include "commonj/sdo/DataTypeInfo.h"
-
-#include <iostream>
-
-namespace commonj
-{
- namespace sdo
- {
-
- // The SDOValue class provides a discriminated data type that wraps the
- // many different primitive data types that SDO must use. This allows
- // common treatment of SDO values by all methods except those that
- // really must do different things for different types. The key point is
- // that instances of the class combine a union with and enum that says
- // which member of the union is actually present. The enum also allows
- // for the possibility that the value is unset or has been explicitly
- // set to null.
-
- class SDOValue
- {
- private:
- // Entities with copy constructors/destructors are not allowed in a union,
- // since in general, the compiler doesn't know what type is
- // actually in there so it can't know which constructor/destructor
- // to call, hence the use of pointers for certain datatypes.
- DataTypeInfo::SDODataTypeUnion value;
-
- DataTypeInfo::RawDataType typeOfValue;
-
- mutable SDOString* transient_buffer;
-
- public:
-
- // Constructors
- SDO_API SDOValue(bool inValue) :
- typeOfValue(DataTypeInfo::SDObool), transient_buffer(0)
- {
- value.Boolean = inValue;
- }
- SDO_API SDOValue(float inValue) :
- typeOfValue(DataTypeInfo::SDOfloat), transient_buffer(0)
- {
- value.Float = inValue;
- }
- SDO_API SDOValue(long double inValue) :
- typeOfValue(DataTypeInfo::SDOdouble), transient_buffer(0)
- {
- value.Double = inValue;
- }
- SDO_API SDOValue(short inValue) :
- typeOfValue(DataTypeInfo::SDOshort), transient_buffer(0)
- {
- value.Short = inValue;
- }
-#if __WORDSIZE != 64
- SDO_API SDOValue(long inValue) :
- typeOfValue(DataTypeInfo::SDOlong), transient_buffer(0)
- {
- value.Integer = inValue;
- }
-#endif
- SDO_API SDOValue(int64_t inValue) :
- typeOfValue(DataTypeInfo::SDOint64_t), transient_buffer(0)
- {
- value.Int64 = inValue;
- }
- SDO_API SDOValue(char inValue) :
- typeOfValue(DataTypeInfo::SDOchar), transient_buffer(0)
- {
- value.Character = inValue;
- }
- SDO_API SDOValue(wchar_t inValue) :
- typeOfValue(DataTypeInfo::SDOwchar_t), transient_buffer(0)
- {
- value.WideChar = inValue;
- }
- SDO_API SDOValue(const SDODate inValue) :
- typeOfValue(DataTypeInfo::SDOSDODate), transient_buffer(0)
- {
- value.Date = new SDODate(inValue.getTime());
- }
- SDO_API SDOValue(const SDOString& inValue) :
- typeOfValue(DataTypeInfo::SDOCString), transient_buffer(0)
- {
- value.TextString = new SDOString(inValue);
- }
-
- SDO_API SDOValue(const char* inValue) :
- typeOfValue(DataTypeInfo::SDOCString), transient_buffer(0)
- {
- value.TextString = new SDOString(inValue);
- }
-
- SDO_API SDOValue(const char* inValue, unsigned int len);
-
- SDO_API SDOValue(const wchar_t* inValue, unsigned int len);
-
- SDO_API SDOValue() : typeOfValue(DataTypeInfo::SDOunset), transient_buffer(0)
- {
- }
- //End of Constructors
-
- // Copy constructor
- SDO_API SDOValue(const SDOValue& inValue);
-
- // Copy assignment
- SDO_API SDOValue& operator=(const SDOValue& inValue);
-
- // Destructor
- SDO_API virtual ~SDOValue();
-
- inline SDO_API bool isSet() const
- {
- return (typeOfValue != DataTypeInfo::SDOunset);
- }
- inline SDO_API bool isNull() const
- {
- return (typeOfValue == DataTypeInfo::SDOnull);
- }
-
- // Get methods to retrieve the stored value.
- SDO_API bool getBoolean() const
- {
- return SDODataConverter::convertToBoolean(value,
- (DataTypeInfo::TrueDataType) typeOfValue);
- }
-
- SDO_API float getFloat() const
- {
- return SDODataConverter::convertToFloat(value,
- (DataTypeInfo::TrueDataType) typeOfValue);
- }
-
- SDO_API long double getDouble() const
- {
- return SDODataConverter::convertToDouble(value,
- (DataTypeInfo::TrueDataType) typeOfValue);
- }
-
- SDO_API const SDODate getDate() const
- {
- return SDODataConverter::convertToDate(value,
- (DataTypeInfo::TrueDataType) typeOfValue);
- }
-
- SDO_API short getShort() const
- {
- return SDODataConverter::convertToShort(value,
- (DataTypeInfo::TrueDataType) typeOfValue);
- }
-
- SDO_API long getInteger() const
- {
- return SDODataConverter::convertToInteger(value,
- (DataTypeInfo::TrueDataType) typeOfValue);
- }
-
- SDO_API char getByte() const
- {
- return SDODataConverter::convertToByte(value,
- (DataTypeInfo::TrueDataType) typeOfValue);
- }
-
- SDO_API wchar_t getCharacter() const
- {
- return SDODataConverter::convertToCharacter(value,
- (DataTypeInfo::TrueDataType) typeOfValue);
- }
-
- SDO_API int64_t getLong() const
- {
- return SDODataConverter::convertToLong(value,
- (DataTypeInfo::TrueDataType) typeOfValue);
- }
-
- // The following method is regrettably necessary to provide the
- // CString style interface for the V2.01 spec.
- SDO_API const char* getCString() const
- {
- if (transient_buffer != 0)
- {
- delete transient_buffer;
- }
- transient_buffer =
- SDODataConverter::convertToSDOString(value,
- (DataTypeInfo::TrueDataType) typeOfValue);
- return transient_buffer->c_str();
- }
-
- // This method is the preferred way to retrieve a string value
- SDO_API SDOString getString() const
- {
- return *SDODataConverter::convertToSDOString(value,
- (DataTypeInfo::TrueDataType) typeOfValue);
- }
-
- SDO_API unsigned int getString(wchar_t* outptr, const unsigned int max_length) const
- {
- return SDODataConverter::convertToString(value,
- (DataTypeInfo::TrueDataType) typeOfValue,
- outptr,
- max_length);
- }
-
- SDO_API unsigned int getBytes(char* outptr, const unsigned int max_length) const
- {
- return SDODataConverter::convertToBytes(value,
- (DataTypeInfo::TrueDataType) typeOfValue,
- outptr,
- max_length);
- }
-
- // Beware, the array does not contain values for all the
- // enumeration values and it is the callers job to avoid
- // triggering that.
- SDO_API const SDOString& convertTypeEnumToString() const
- {
- return DataTypeInfo::convertTypeEnumToString((DataTypeInfo::TrueDataType) typeOfValue);
- }
-
- static SDO_API const SDOValue nullSDOValue;
- static SDO_API const SDOValue unsetSDOValue;
- // static SDO_API const SDOString rawTypeNames[];
-
- private:
- SDO_API SDOValue(DataTypeInfo::RawDataType rdt) : typeOfValue(rdt), transient_buffer(0) {}
-
- };
- } // End - namespace sdo
-} // End - namespace commonj
-
-#endif // _SDOValue_H_