/// <summary> /// Serialize a string to send down the wire /// </summary> /// <param name="wire">The wire</param> /// <param name="value">The value to send</param> /// <returns>The size sent</returns> private static int SendString(NetworkMethods wire, string value) { int sze = Encoding.ASCII.GetBytes(value).Length; wire.SendWord(sze); wire.SendString(value); return(sze); }
/// <summary> /// Calls the Init remote procedure /// </summary> /// <param name="userName">The username</param> /// <param name="versionCode">The version code</param> /// <returns>The version of the SANE daemon</returns> internal int Initialise(string userName, int versionCode) { _wire.SendCommand(NetworkCommand.Initialize); _wire.SendWord(versionCode); _wire.SendString(userName); int status = _wire.ReadWord(); if (status != (int)SaneStatus.Success) { throw NSaneException.CreateFromStatus(status); } // TODO: Convert the version to something more human int version = _wire.ReadWord(); return(version); }