blob: 5588e5458dd8bd11e947f9995795bbf8b0b294d5 [file] [log] [blame]
/*
* 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.
*/
#include "PdxRemoteReader.hpp"
#include "../Log.hpp"
using namespace System;
namespace Apache
{
namespace Geode
{
namespace Client
{
namespace Internal
{
void PdxRemoteReader::setNextOffsetToRead()
{
}
SByte PdxRemoteReader::ReadByte( String^ fieldName )
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadByte(fieldName);//in same order
case -1:
{
return 0;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
SByte retVal = PdxLocalReader::ReadByte(fieldName);
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
SByte PdxRemoteReader::ReadSByte( String^ fieldName )
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadSByte(fieldName);//in same order
case -1:
{
return 0;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
SByte retVal = PdxLocalReader::ReadSByte(fieldName);
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
Boolean PdxRemoteReader::ReadBoolean( String^ fieldName )
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadBoolean(fieldName);//in same order
case -1:
{
return false;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
bool retVal = PdxLocalReader::ReadBoolean(fieldName);
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
Char PdxRemoteReader::ReadChar( String^ fieldName )
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadChar(fieldName);//in same order
case -1:
{
return '\0';//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
Char retVal = PdxLocalReader::ReadChar(fieldName);
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
System::UInt16 PdxRemoteReader::ReadUInt16( String^ fieldName )
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadUInt16(fieldName);//in same order
case -1:
{
return 0;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
UInt16 retVal = PdxLocalReader::ReadUInt16(fieldName);
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
System::UInt32 PdxRemoteReader::ReadUInt32( String^ fieldName )
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadUInt32(fieldName);//in same order
case -1:
{
return 0;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
UInt32 retVal = PdxLocalReader::ReadUInt32(fieldName);
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
System::UInt64 PdxRemoteReader::ReadUInt64( String^ fieldName )
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadUInt64(fieldName);//in same order
case -1:
{
return 0;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
UInt64 retVal = PdxLocalReader::ReadUInt64(fieldName);
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
short PdxRemoteReader::ReadShort( String^ fieldName )
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadShort(fieldName);//in same order
case -1:
{
return 0;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
Int16 retVal = PdxLocalReader::ReadShort(fieldName);
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
Int32 PdxRemoteReader::ReadInt( String^ fieldName )
{
int choice = m_localToRemoteMap[m_currentIndex++];
//Log::Debug("found choice " + choice + " " + m_currentIndex);
switch(choice)
{
case -2:
return PdxLocalReader::ReadInt(fieldName);//in same order
case -1:
{
return 0;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
//Log::Debug("found choice position:" + position);
m_dataInput->ResetAndAdvanceCursorPdx(position);
Int32 retVal = PdxLocalReader::ReadInt(fieldName);
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
Int64 PdxRemoteReader::ReadLong( String^ fieldName )
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadLong(fieldName);//in same order
case -1:
{
return 0;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
Int64 retVal = PdxLocalReader::ReadLong(fieldName);
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
float PdxRemoteReader::ReadFloat( String^ fieldName )
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadFloat(fieldName);//in same order
case -1:
{
return 0.0;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
float retVal = PdxLocalReader::ReadFloat(fieldName);
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
double PdxRemoteReader::ReadDouble( String^ fieldName )
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadDouble(fieldName);//in same order
case -1:
{
return 0.0;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
double retVal = PdxLocalReader::ReadDouble(fieldName);
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
String^ PdxRemoteReader::ReadString( String^ fieldName )
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadString(fieldName);//in same order
case -1:
{
return nullptr;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
String^ retVal = PdxLocalReader::ReadString(fieldName);
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
String^ PdxRemoteReader::ReadUTFHuge( String^ fieldName )
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadUTFHuge(fieldName);//in same order
case -1:
{
return nullptr;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
String^ retVal = PdxLocalReader::ReadUTFHuge(fieldName);
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
String^ PdxRemoteReader::ReadASCIIHuge( String^ fieldName )
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadASCIIHuge(fieldName);//in same order
case -1:
{
return nullptr;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
String^ retVal = PdxLocalReader::ReadASCIIHuge(fieldName);
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
Object^ PdxRemoteReader::ReadObject( String^ fieldName )
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadObject(fieldName);//in same order
case -1:
{
return nullptr;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
Object^ retVal = PdxLocalReader::ReadObject(fieldName);
m_dataInput->ResetPdx(m_startPosition);//force native as well
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
//TODO:
//void WriteMap( String^ fieldName, System::Collections::IDictionary^ map );
void PdxRemoteReader::ReadCollection( String^ fieldName, System::Collections::IList^ collection)
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
PdxLocalReader::ReadCollection(fieldName, collection);//in same order
break;
case -1:
{
break;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
PdxLocalReader::ReadCollection(fieldName, collection);
m_dataInput->RewindCursorPdx(position);
}
}
}
System::DateTime PdxRemoteReader::ReadDate( String^ fieldName)
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadDate(fieldName);//in same order
case -1:
{
DateTime dt(0);
return dt;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
System::DateTime retVal = PdxLocalReader::ReadDate(fieldName);
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
//void writeFile(String fieldName, File file) ;
array<Boolean>^ PdxRemoteReader::ReadBooleanArray( String^ fieldName )
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadBooleanArray(fieldName);//in same order
case -1:
{
return nullptr;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
array<bool>^ retVal = PdxLocalReader::ReadBooleanArray(fieldName);
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
array<Char>^ PdxRemoteReader::ReadCharArray(String^ fieldName )
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadCharArray(fieldName);//in same order
case -1:
{
return nullptr;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
array<Char>^ retVal = PdxLocalReader::ReadCharArray(fieldName);
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
array<Byte>^ PdxRemoteReader::ReadByteArray(String^ fieldName)
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadByteArray(fieldName);//in same order
case -1:
{
return nullptr;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
array<Byte>^ retVal = PdxLocalReader::ReadByteArray(fieldName);
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
array<SByte>^ PdxRemoteReader::ReadSByteArray(String^ fieldName)
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadSByteArray(fieldName);//in same order
case -1:
{
return nullptr;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
array<SByte>^ retVal = PdxLocalReader::ReadSByteArray(fieldName);
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
array<short>^ PdxRemoteReader::ReadShortArray(String^ fieldName)
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadShortArray(fieldName);//in same order
case -1:
{
return nullptr;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
array<Int16>^ retVal = PdxLocalReader::ReadShortArray(fieldName);
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
array<System::UInt16>^ PdxRemoteReader::ReadUnsignedShortArray(String^ fieldName)
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadUnsignedShortArray(fieldName);//in same order
case -1:
{
return nullptr;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
array<UInt16>^ retVal = PdxLocalReader::ReadUnsignedShortArray(fieldName);
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
array<System::Int32>^ PdxRemoteReader::ReadIntArray(String^ fieldName)
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadIntArray(fieldName);//in same order
case -1:
{
return nullptr;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
array<Int32>^ retVal = PdxLocalReader::ReadIntArray(fieldName);
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
array<System::UInt32>^ PdxRemoteReader::ReadUnsignedIntArray(String^ fieldName)
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadUnsignedIntArray(fieldName);//in same order
case -1:
{
return nullptr;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
array<UInt32>^ retVal = PdxLocalReader::ReadUnsignedIntArray(fieldName);
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
array<Int64>^ PdxRemoteReader::ReadLongArray(String^ fieldName)
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadLongArray(fieldName);//in same order
case -1:
{
return nullptr;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
array<Int64>^ retVal = PdxLocalReader::ReadLongArray(fieldName);
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
array<System::UInt64>^ PdxRemoteReader::ReadUnsignedLongArray(String^ fieldName )
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadUnsignedLongArray(fieldName);//in same order
case -1:
{
return nullptr;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
array<UInt64>^ retVal = PdxLocalReader::ReadUnsignedLongArray(fieldName);
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
array<float>^ PdxRemoteReader::ReadFloatArray(String^ fieldName)
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadFloatArray(fieldName);//in same order
case -1:
{
return nullptr;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
array<float>^ retVal = PdxLocalReader::ReadFloatArray(fieldName);
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
array<double>^ PdxRemoteReader::ReadDoubleArray(String^ fieldName)
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadDoubleArray(fieldName);//in same order
case -1:
{
return nullptr;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
array<double>^ retVal = PdxLocalReader::ReadDoubleArray(fieldName);
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
array<String^>^ PdxRemoteReader::ReadStringArray(String^ fieldName)
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadStringArray(fieldName);//in same order
case -1:
{
return nullptr;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
array<String^>^ retVal = PdxLocalReader::ReadStringArray(fieldName);
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
List<Object^>^ PdxRemoteReader::ReadObjectArray(String^ fieldName)
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadObjectArray(fieldName);//in same order
case -1:
{
return nullptr;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
List<Object^>^ retVal = PdxLocalReader::ReadObjectArray(fieldName);
m_dataInput->ResetPdx(m_startPosition);//force native as well
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
array<array<Byte>^>^ PdxRemoteReader::ReadArrayOfByteArrays(String^ fieldName )
{
int choice = m_localToRemoteMap[m_currentIndex++];
switch(choice)
{
case -2:
return PdxLocalReader::ReadArrayOfByteArrays(fieldName);//in same order
case -1:
{
return nullptr;//null value
}
default:
{
//sequence id read field and then update
int position = m_pdxType->GetFieldPosition(choice, m_offsetsBuffer, m_offsetSize, m_serializedLength);
m_dataInput->ResetAndAdvanceCursorPdx(position);
array<array<Byte>^>^ retVal = PdxLocalReader::ReadArrayOfByteArrays(fieldName);
m_dataInput->RewindCursorPdx(position);
return retVal;
}
}
}
//TODO:
//void WriteEnum(String^ fieldName, Enum e) ;
//void WriteInetAddress(String^ fieldName, InetAddress address);
} // namespace Client
} // namespace Geode
} // namespace Apache
}