getDataType static method
Get the DataType of a given value.
This function is needed to compose a value.
Value to find its DataType.
DistributedConnection is required to check locality of resources.
Implementation
static int getDataType(value, DistributedConnection connection) {
if (value == null) return DataType.Void;
if (value is bool)
return DataType.Bool;
else if (value is List<bool>)
return DataType.BoolArray;
else if (value is int)
return DataType.Int64;
else if (value is List<int> || value is Int64List)
return DataType.Int64Array;
else if (value is double)
return DataType.Float64;
else if (value is List<double>)
return DataType.Float64Array;
else if (value is String)
return DataType.String;
else if (value is List<String>)
return DataType.StringArray;
else if (value is Uint8List)
return DataType.UInt8Array;
else if (value is Int8List)
return DataType.Int8Array;
else if (value is Uint16List)
return DataType.UInt16Array;
else if (value is Int16List)
return DataType.Int16Array;
else if (value is Uint32List)
return DataType.UInt32Array;
else if (value is Int32List)
return DataType.Int32Array;
else if (value is Uint64List)
return DataType.Int64Array;
else if (value is DateTime)
return DataType.DateTime;
else if (value is List<DateTime>)
return DataType.DateTimeArray;
else if (value is IResource)
return isLocalResource(value, connection)
? DataType.Resource
: DataType.DistributedResource;
else if (value is List<IResource>)
return DataType.ResourceArray;
else if (value is Structure)
return DataType.Structure;
else if (value is List<Structure>)
return DataType.StructureArray;
else if (value is List)
return DataType.VarArray;
else if (value is IRecord)
return DataType.Record;
else if (value is List<IRecord>)
return DataType.RecordArray;
else
return DataType.Void;
}