public override int ClassMetadataIdForName(string name) { MsgD msg = Msg.ClassMetadataIdForName.GetWriterForString(SystemTransaction(), name ); msg.Write(_socket); MsgD response = (MsgD)ExpectedResponse(Msg.ClassId); return(response.ReadInt()); }
/// <exception cref="System.IO.IOException"></exception> internal virtual Socket4Adapter CreateParallelSocket() { Write(Msg.GetThreadId); int serverThreadID = ExpectedBufferResponse(Msg.IdList).ReadInt(); Socket4Adapter sock = _socket.OpenParalellSocket(); LoginToServer(sock); if (switchedToFile != null) { MsgD message = Msg.SwitchToFile.GetWriterForString(SystemTransaction(), switchedToFile ); message.Write(sock); if (!(Msg.Ok.Equals(Msg.ReadMessage(this, SystemTransaction(), sock)))) { throw new IOException(Db4objects.Db4o.Internal.Messages.Get(42)); } } Msg.UseTransaction.GetWriterForInt(_transaction, serverThreadID).Write(sock); return(sock); }
/// <exception cref="Db4objects.Db4o.Ext.InvalidPasswordException"></exception> private void LoginToServer(Socket4Adapter iSocket) { UnicodeStringIO stringWriter = new UnicodeStringIO(); int length = stringWriter.Length(_userName) + stringWriter.Length(_password); MsgD message = Msg.Login.GetWriterForLength(SystemTransaction(), length); message.WriteString(_userName); message.WriteString(_password); message.Write(iSocket); Msg msg = ReadLoginMessage(iSocket); ByteArrayBuffer payLoad = msg.PayLoad(); BlockSize(payLoad.ReadInt()); int doEncrypt = payLoad.ReadInt(); if (doEncrypt == 0) { _handlers.OldEncryptionOff(); } if (payLoad.RemainingByteCount() > 0) { _serverSideID = payLoad.ReadInt(); } }