19d2f441f9bb2c8dcac1150e2cba1d15a86a4efb1dcashman/*
29d2f441f9bb2c8dcac1150e2cba1d15a86a4efb1dcashman * Copyright 2014 The Android Open Source Project
39d2f441f9bb2c8dcac1150e2cba1d15a86a4efb1dcashman *
49d2f441f9bb2c8dcac1150e2cba1d15a86a4efb1dcashman    * Licensed under the Apache License, Version 2.0 (the "License");
59d2f441f9bb2c8dcac1150e2cba1d15a86a4efb1dcashman * you may not use this file except in compliance with the License.
69d2f441f9bb2c8dcac1150e2cba1d15a86a4efb1dcashman * You may obtain a copy of the License at
79d2f441f9bb2c8dcac1150e2cba1d15a86a4efb1dcashman *
89d2f441f9bb2c8dcac1150e2cba1d15a86a4efb1dcashman     *      http://www.apache.org/licenses/LICENSE-2.0
99d2f441f9bb2c8dcac1150e2cba1d15a86a4efb1dcashman *
109d2f441f9bb2c8dcac1150e2cba1d15a86a4efb1dcashman     * Unless required by applicable law or agreed to in writing, software
119d2f441f9bb2c8dcac1150e2cba1d15a86a4efb1dcashman     * distributed under the License is distributed on an "AS IS" BASIS,
129d2f441f9bb2c8dcac1150e2cba1d15a86a4efb1dcashman     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139d2f441f9bb2c8dcac1150e2cba1d15a86a4efb1dcashman * See the License for the specific language governing permissions and
149d2f441f9bb2c8dcac1150e2cba1d15a86a4efb1dcashman * limitations under the License.
159d2f441f9bb2c8dcac1150e2cba1d15a86a4efb1dcashman */
169d2f441f9bb2c8dcac1150e2cba1d15a86a4efb1dcashman
179d2f441f9bb2c8dcac1150e2cba1d15a86a4efb1dcashmanpackage com.android.server.pm;
189d2f441f9bb2c8dcac1150e2cba1d15a86a4efb1dcashman
199d2f441f9bb2c8dcac1150e2cba1d15a86a4efb1dcashmanimport android.os.Binder;
209d2f441f9bb2c8dcac1150e2cba1d15a86a4efb1dcashman
218c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashmanclass KeySetHandle extends Binder{
228c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman    private final long mId;
238c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman    private int mRefCount;
248c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman
258c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman    protected KeySetHandle(long id) {
268c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman        mId = id;
278c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman        mRefCount = 1;
288c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman    }
298c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman
308c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman    /*
318c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman     * Only used when reading state from packages.xml
328c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman     */
338c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman    protected KeySetHandle(long id, int refCount) {
348c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman        mId = id;
358c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman        mRefCount = refCount;
368c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman    }
378c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman
388c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman    public long getId() {
398c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman        return mId;
408c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman    }
418c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman
428c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman    protected int getRefCountLPr() {
438c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman        return mRefCount;
448c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman    }
458c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman
468c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman    /*
478c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman     * Only used when reading state from packages.xml
488c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman     */
498c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman    protected void setRefCountLPw(int newCount) {
508c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman         mRefCount = newCount;
518c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman         return;
528c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman    }
538c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman
548c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman    protected void incrRefCountLPw() {
558c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman        mRefCount++;
568c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman        return;
578c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman    }
588c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman
598c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman    protected int decrRefCountLPw() {
608c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman        mRefCount--;
618c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman        return mRefCount;
628c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman    }
638c04facdf5e76fb34c55cfe3dc9a0216322b91b8dcashman}
64