예제 #1
0
파일: PrefValRW.cs 프로젝트: Marwan0/tlplib
      public A read(IPrefValueBackend backend, string key, A defaultVal) {
        var serialized = backend.getString(key, DEFAULT_VALUE);

        if (string.IsNullOrEmpty(serialized)) return deserializationFailed(key, defaultVal, serialized);
        if (serialized == DEFAULT_VALUE) return defaultVal;

        var serializedWithoutDiscriminator = serialized.Substring(1);
        var opt = deserialize(serializedWithoutDiscriminator);
        return opt.isSome ? opt.get : deserializationFailed(key, defaultVal, serialized);
      }
예제 #2
0
 public PrefValImpl(
     string key, IPrefValueRW <A> rw, A defaultVal,
     IPrefValueBackend backend, bool saveOnEveryWrite
     )
 {
     this.key              = key;
     writer                = rw;
     this.backend          = backend;
     this.saveOnEveryWrite = saveOnEveryWrite;
     _value                = persist(rw.read(backend, key, defaultVal));
 }
예제 #3
0
 public PrefVal(
     string key, A defaultValue, Fn <string, A, A> reader, Act <string, A> writer,
     IPrefValueBackend backend, bool saveOnEveryWrite
     )
 {
     this.key              = key;
     this.writer           = writer;
     this.backend          = backend;
     this.saveOnEveryWrite = saveOnEveryWrite;
     value = reader(key, defaultValue);
 }
예제 #4
0
 public PrefValImpl(
     string key, Fn <A> reader, Act <A> writer,
     IPrefValueBackend backend, bool saveOnEveryWrite
     )
 {
     this.key              = key;
     this.writer           = writer;
     this.backend          = backend;
     this.saveOnEveryWrite = saveOnEveryWrite;
     _value = persist(reader());
 }
예제 #5
0
 public static void setBool(
     this IPrefValueBackend backend, string name, bool value
     ) => backend.setInt(name, bool2int(value));
예제 #6
0
 public static bool getBool(
     this IPrefValueBackend backend, string name, bool defaultValue
     ) => backend.getInt(name, bool2int(defaultValue)) != 0;
예제 #7
0
파일: PrefValRW.cs 프로젝트: Marwan0/tlplib
 public void write(IPrefValueBackend backend, string key, bool value) =>
   backend.setBool(key, value);
예제 #8
0
파일: PrefValRW.cs 프로젝트: Marwan0/tlplib
 public bool read(IPrefValueBackend backend, string key, bool defaultVal) =>
   backend.getBool(key, defaultVal);
예제 #9
0
파일: PrefValRW.cs 프로젝트: Marwan0/tlplib
 public void write(IPrefValueBackend backend, string key, float value) =>
   backend.setFloat(key, value);
예제 #10
0
파일: PrefValRW.cs 프로젝트: Marwan0/tlplib
 public DateTime read(IPrefValueBackend backend, string key, DateTime defaultVal) =>
   deserializeDate(backend.getString(key, serializeDate(defaultVal)));
예제 #11
0
파일: PrefValRW.cs 프로젝트: Marwan0/tlplib
 public uint read(IPrefValueBackend backend, string key, uint defaultVal) =>
   backend.getUInt(key, defaultVal);
예제 #12
0
파일: PrefValRW.cs 프로젝트: Marwan0/tlplib
 public string read(IPrefValueBackend backend, string key, string defaultVal) => 
   backend.getString(key, defaultVal);
예제 #13
0
파일: PrefValRW.cs 프로젝트: Marwan0/tlplib
 public void write(IPrefValueBackend backend, string key, string value) =>
   backend.setString(key, value);
예제 #14
0
파일: PrefValRW.cs 프로젝트: Marwan0/tlplib
 public void write(IPrefValueBackend backend, string key, A value) =>
   backend.setString(key, map(value));
예제 #15
0
파일: PrefValRW.cs 프로젝트: Marwan0/tlplib
 public A read(IPrefValueBackend backend, string key, A defaultVal) {
   var str = backend.getString(key, CUSTOM_V1_DEFAULT);
   return str == CUSTOM_V1_DEFAULT ? defaultVal : comap(str);
 }
예제 #16
0
파일: PrefValRW.cs 프로젝트: Marwan0/tlplib
 public void write(IPrefValueBackend backend, string key, A value) =>
   backend.setString(key, $"{NON_DEFAULT_VALUE_DISCRIMINATOR}{serialize(value)}");
예제 #17
0
 public static uint getUInt(
     this IPrefValueBackend backend, string name, uint defaultValue
     ) =>
 unchecked ((uint)backend.getInt(name, unchecked ((int)defaultValue)));
예제 #18
0
 public PrefValStorage(IPrefValueBackend backend)
 {
     this.backend = backend;
 }
예제 #19
0
 public static void setUInt(
     this IPrefValueBackend backend, string name, uint value
     ) =>
 backend.setInt(name, unchecked ((int)value));
예제 #20
0
파일: PrefValRW.cs 프로젝트: Marwan0/tlplib
 public void write(IPrefValueBackend backend, string key, Duration value) =>
   backend.setInt(key, value.millis);
예제 #21
0
파일: PrefValRW.cs 프로젝트: Marwan0/tlplib
 public void write(IPrefValueBackend backend, string key, uint value) =>
   backend.setUInt(key, value);
예제 #22
0
파일: PrefValRW.cs 프로젝트: Marwan0/tlplib
 public void write(IPrefValueBackend backend, string key, DateTime value) =>
   backend.setString(key, serializeDate(value));
예제 #23
0
파일: PrefValRW.cs 프로젝트: Marwan0/tlplib
 public float read(IPrefValueBackend backend, string key, float defaultVal) =>
   backend.getFloat(key, defaultVal);
예제 #24
0
파일: PrefValRW.cs 프로젝트: Marwan0/tlplib
 public Duration read(IPrefValueBackend backend, string key, Duration defaultVal) =>
   new Duration(backend.getInt(key, defaultVal.millis));