Volume.h revision fd7f5875129adfe2845f4f3fffb17db3a89eea25
1f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat/*
2f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat * Copyright (C) 2008 The Android Open Source Project
3f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat *
4f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat * Licensed under the Apache License, Version 2.0 (the "License");
5f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat * you may not use this file except in compliance with the License.
6f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat * You may obtain a copy of the License at
7f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat *
8f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat *      http://www.apache.org/licenses/LICENSE-2.0
9f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat *
10f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat * Unless required by applicable law or agreed to in writing, software
11f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat * distributed under the License is distributed on an "AS IS" BASIS,
12f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat * See the License for the specific language governing permissions and
14f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat * limitations under the License.
15f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat */
16f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat
17f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat#ifndef _VOLUME_H
18f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat#define _VOLUME_H
19f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat
20f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat#include <utils/List.h>
21f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat
22fd7f5875129adfe2845f4f3fffb17db3a89eea25San Mehatclass NetlinkEvent;
23fd7f5875129adfe2845f4f3fffb17db3a89eea25San Mehat
24f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehatclass Volume {
25f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehatprivate:
26f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat    int mState;
27f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat
28f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehatpublic:
29f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat    static const int State_Init       = -1;
30f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat    static const int State_Idle       = 1;
31f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat    static const int State_Pending    = 2;
32f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat    static const int State_Mounted    = 3;
33f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat    static const int State_Checking   = 4;
34f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat    static const int State_Formatting = 5;
35f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat
36f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehatprotected:
37f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat    char *mLabel;
38f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat    char *mMountpoint;
39f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat
40f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehatpublic:
41f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat    Volume(const char *label, const char *mount_point);
42f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat    virtual ~Volume();
43f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat
44f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat    const char *getLabel() { return mLabel; }
45f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat    const char *getMountpoint() { return mMountpoint; }
46f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat    int getState() { return mState; }
47f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat
48fd7f5875129adfe2845f4f3fffb17db3a89eea25San Mehat    virtual int handleBlockEvent(NetlinkEvent *evt);
49f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat
50f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehatprotected:
51f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat    void setState(int state);
52f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat};
53f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat
54f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehattypedef android::List<Volume *> VolumeCollection;
55f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat
56f1b736bc5605e92e917ab27f5abf3ba839be2270San Mehat#endif
57