public static void write(IceInternal.BasicStream os__, MCS.GuiHub.PushData[] v__) { if (v__ == null) { os__.writeSize(0); } else { os__.writeSize(v__.Length); for (int ix__ = 0; ix__ < v__.Length; ++ix__) { os__.writeByte((byte)v__[ix__], 13); } } }
private void heartbeat() { Debug.Assert(_state == StateActive); if(!_endpoint.datagram()) { IceInternal.BasicStream os = new IceInternal.BasicStream(_instance, Util.currentProtocolEncoding); os.writeBlob(IceInternal.Protocol.magic); Ice.Util.currentProtocol.write__(os); Ice.Util.currentProtocolEncoding.write__(os); os.writeByte(IceInternal.Protocol.validateConnectionMsg); os.writeByte((byte)0); os.writeInt(IceInternal.Protocol.headerSize); // Message size. try { OutgoingMessage message = new OutgoingMessage(os, false, false); sendMessage(message); } catch(Ice.LocalException ex) { setState(StateClosed, ex); Debug.Assert(_exception != null); } } }
private void initiateShutdown() { Debug.Assert(_state == StateClosing); Debug.Assert(_dispatchCount == 0); if(_shutdownInitiated) { return; } _shutdownInitiated = true; if(!_endpoint.datagram()) { // // Before we shut down, we send a close connection message. // IceInternal.BasicStream os = new IceInternal.BasicStream(_instance, Util.currentProtocolEncoding); os.writeBlob(IceInternal.Protocol.magic); Ice.Util.currentProtocol.write__(os); Ice.Util.currentProtocolEncoding.write__(os); os.writeByte(IceInternal.Protocol.closeConnectionMsg); os.writeByte(_compressionSupported ? (byte)1 : (byte)0); os.writeInt(IceInternal.Protocol.headerSize); // Message size. if(sendMessage(new OutgoingMessage(os, false, false))) { setState(StateClosingPending); // // Notify the the transceiver of the graceful connection closure. // int op = _transceiver.closing(true, _exception); if(op != 0) { scheduleTimeout(op); _threadPool.register(this, op); } } } }
private void initiateShutdown() { Debug.Assert(_state == StateClosing); Debug.Assert(_dispatchCount == 0); Debug.Assert(!_shutdownInitiated); _shutdownInitiated = true; if(!_endpoint.datagram()) { // // Before we shut down, we send a close connection // message. // IceInternal.BasicStream os = new IceInternal.BasicStream(_instance, Util.currentProtocolEncoding); os.writeBlob(IceInternal.Protocol.magic); Ice.Util.currentProtocol.write__(os); Ice.Util.currentProtocolEncoding.write__(os); os.writeByte(IceInternal.Protocol.closeConnectionMsg); os.writeByte(_compressionSupported ? (byte)1 : (byte)0); os.writeInt(IceInternal.Protocol.headerSize); // Message size. if(sendMessage(new OutgoingMessage(os, false, false))) { // // Schedule the close timeout to wait for the peer to close the connection. If // the message was queued for sending, sendNextMessage will schedule the timeout // once all messages were sent. // scheduleTimeout(IceInternal.SocketOperation.Write, closeTimeout()); } // // The CloseConnection message should be sufficient. Closing the write // end of the socket is probably an artifact of how things were done // in IIOP. In fact, shutting down the write end of the socket causes // problems on Windows by preventing the peer from using the socket. // For example, the peer is no longer able to continue writing a large // message after the socket is shutdown. // //_transceiver.shutdownWrite(); } }