/// <summary> /// Creates an integer list constraint /// </summary> /// <param name="wire">The wire to read on</param> /// <returns>The constraint</returns> private static IOptionConstraint CreateIntegerListConstraint( NetworkMethods wire) { wire.ReadWord(); var values = wire.ReadArray((w, i) => w.ReadWord()); return(new Int32ListConstraint(values)); }
/// <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); }