internal TdsParserStateObject(TdsParser parser, SNIHandle physicalConnection, bool async) { // Construct a MARS session Debug.Assert(null != parser, "no parser?"); _parser = parser; SniContext = SniContext.Snix_GetMarsSession; Debug.Assert(null != _parser._physicalStateObj, "no physical session?"); Debug.Assert(null != _parser._physicalStateObj._inBuff, "no in buffer?"); Debug.Assert(null != _parser._physicalStateObj._outBuff, "no out buffer?"); Debug.Assert(_parser._physicalStateObj._outBuff.Length == _parser._physicalStateObj._inBuff.Length, "Unexpected unequal buffers."); // Determine packet size based on physical connection buffer lengths. SetPacketSize(_parser._physicalStateObj._outBuff.Length); SNINativeMethodWrapper.ConsumerInfo myInfo = CreateConsumerInfo(async); _sessionHandle = new SNIHandle(myInfo, physicalConnection); if (_sessionHandle.Status != TdsEnums.SNI_SUCCESS) { AddError(parser.ProcessSNIError(this)); ThrowExceptionAndWarning(); } // we post a callback that represents the call to dispose; once the // object is disposed, the next callback will cause the GC Handle to // be released. IncrementPendingCallbacks(); _lastSuccessfulIOTimer = parser._physicalStateObj._lastSuccessfulIOTimer; }
#pragma warning restore 0649 #endif ////////////////// // Constructors // ////////////////// internal TdsParserStateObject(TdsParser parser) { // Construct a physical connection Debug.Assert(null != parser, "no parser?"); _parser = parser; // For physical connection, initialize to default login packet size. SetPacketSize(TdsEnums.DEFAULT_LOGIN_PACKET_SIZE); // we post a callback that represents the call to dispose; once the // object is disposed, the next callback will cause the GC Handle to // be released. IncrementPendingCallbacks(); _lastSuccessfulIOTimer = new LastIOTimer(); }