Exemplo n.º 1
0
        private static RemoteObject RegisterObject(JsonValue objectDef)
        {
            ulong  id               = objectDef["internalId"];
            string className        = objectDef["className"];
            string name             = objectDef["name"];
            string path             = objectDef["path"];
            ulong  parentInternalId = objectDef.ContainsKey("parentInternalId") ? (ulong)objectDef["parentInternalId"] : 0;

            RemoteObject obj;

            switch (className)
            {
            case "dcclite::Shortcut":
                obj = new RemoteShortcut(name, className, path, id, parentInternalId, objectDef["target"]);
                break;

            case "Decoder":
            case "OutputDecoder":
            case "SimpleOutputDecoder":
            case "SensorDecoder":
            case "ServoTurnoutDecoder":
            case "TurnoutDecoder":
                obj = new RemoteDecoder(name, className, path, id, parentInternalId, objectDef);
                break;

            case "SignalDecoder":
                obj = new RemoteSignalDecoder(name, className, path, id, parentInternalId, objectDef);
                break;

            case "NetworkDevice":
                obj = new RemoteDevice(name, className, path, id, parentInternalId, objectDef);
                break;

            case "Location":
                obj = new RemoteLocation(name, className, path, id, parentInternalId, objectDef);
                break;

            case "LocationManager":
                obj = new RemoteLocationManager(name, className, path, id, parentInternalId, objectDef);
                break;

            case "LoconetService":
                obj = new RemoteLoconetService(name, className, path, id, parentInternalId, objectDef);
                break;

            default:
                obj = objectDef["isFolder"] ? new RemoteFolder(name, className, path, id, parentInternalId) : new RemoteObject(name, className, path, id, parentInternalId);
                break;
            }

            gObjects.Add(id, obj);
            gObjectsByPath.Add(obj.Path, obj);

            return(obj);
        }
Exemplo n.º 2
0
        public LocationMismatch(RemoteDecoder decoder, String reason, String mappedLocation)
        {
            if (string.IsNullOrWhiteSpace(reason))
            {
                throw new ArgumentNullException(nameof(reason));
            }

            Decoder        = decoder ?? throw new ArgumentNullException(nameof(decoder));
            Reason         = reason;
            MappedLocation = mappedLocation;
        }