Esempio n. 1
0
        protected override void Load(byte[] payload)
        {
            if (payload == null || payload.Length == 0)
            {
                SetError(string.Format("Payload bytes were not set for {0}", GetType().Name));
                return;
            }

            ResponseType = Util.GetEnum <AppbankResponseType>(payload[0]);

            switch (ResponseType)
            {
            case AppbankResponseType.Apps:
                AppBank = new AppBank(payload);
                break;

            case AppbankResponseType.AppUUIDs:
                uint installedApps = Util.GetUInt32(payload, 1);
                if (CheckExpectedSize(payload, (int)(installedApps * 16 + 5)))
                {
                    for (int i = 5; i < payload.Length; i += 16)
                    {
                        UUID uuid = Util.GetUUID(payload, i);
                        if (uuid != null)
                        {
                            AppUUIDs.Add(uuid);
                        }
                    }
                }
                break;

            case AppbankResponseType.AppVersionInformation:
                if (CheckExpectedSize(payload, 67))
                {
                    ushort version = Util.GetUInt16(payload, 1);
                    string name    = Util.GetString(payload, 3, 32);
                    string company = Util.GetString(payload, 35, 32);

                    //var app = new AppBank.App();
                    //app.Name = name;
                    //app.Company = company;
                    //app.Version = version;
                }
                break;

            case AppbankResponseType.AppUUID:
                if (CheckExpectedSize(payload, 17))
                {
                    UUID = Util.GetUUID(payload, 1);
                }
                break;
            }
        }
Esempio n. 2
0
        protected override void Load( byte[] payload )
        {
            if (payload == null || payload.Length == 0)
            {
                SetError(string.Format("Payload bytes were not set for {0}", GetType().Name));
                return;
            }

            ResponseType = Util.GetEnum<AppbankResponseType>(payload[0]);

            switch (ResponseType)
            {
                case AppbankResponseType.Apps:
                    AppBank = new AppBank(payload);
                    break;
                case AppbankResponseType.AppUUIDs:
                    uint installedApps = Util.GetUInt32(payload, 1);
                    if (CheckExpectedSize(payload, (int) ( installedApps*16 + 5 )))
                    {
                        for (int i = 5; i < payload.Length; i += 16)
                        {
                            UUID uuid = Util.GetUUID(payload, i);
                            if (uuid != null)
                                AppUUIDs.Add(uuid);
                        }
                    }
                    break;
                case AppbankResponseType.AppVersionInformation:
                    if (CheckExpectedSize(payload, 67))
                    {
                        ushort version = Util.GetUInt16(payload, 1);
                        string name = Util.GetString(payload, 3, 32);
                        string company = Util.GetString(payload, 35, 32);
                        //var app = new AppBank.App();
                        //app.Name = name;
                        //app.Company = company;
                        //app.Version = version;
                    }
                    break;
                case AppbankResponseType.AppUUID:
                    if (CheckExpectedSize(payload, 17))
                    {
                        UUID = Util.GetUUID(payload, 1);
                    }
                    break;
            }
        }