PriorityDumper.cpp revision 33fd3be6088bfacaf659108bad67d24103494aa1
133fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair/*
233fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair * Copyright (C) 2017 The Android Open Source Project
333fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair *
433fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair * Licensed under the Apache License, Version 2.0 (the "License");
533fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair * you may not use this file except in compliance with the License.
633fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair * You may obtain a copy of the License at
733fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair *
833fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair *      http://www.apache.org/licenses/LICENSE-2.0
933fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair *
1033fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair * Unless required by applicable law or agreed to in writing, software
1133fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair * distributed under the License is distributed on an "AS IS" BASIS,
1233fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1333fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair * See the License for the specific language governing permissions and
1433fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair * limitations under the License.
1533fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair */
1633fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair
1733fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair#include "include/PriorityDumper.h"
1833fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair
1933fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nairnamespace android {
2033fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair
2133fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nairstatic void getStrippedArgs(Vector<String16>& dest, const Vector<String16>& source,
2233fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair                            std::size_t numArgsToStrip) {
2333fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair    for (auto it = source.begin() + numArgsToStrip; it != source.end(); it++) {
2433fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair        dest.add(*it);
2533fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair    }
2633fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair}
2733fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair
2833fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nairvoid priorityDump(PriorityDumper& dumper, int fd, const Vector<String16>& args) {
2933fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair    if (args.size() >= 2 && args[0] == PRIORITY_ARG) {
3033fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair        String16 priority = args[1];
3133fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair        Vector<String16> strippedArgs;
3233fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair        getStrippedArgs(strippedArgs, args, 2);
3333fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair        if (priority == PRIORITY_ARG_CRITICAL) {
3433fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair            dumper.dumpCritical(fd, strippedArgs);
3533fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair        } else if (priority == PRIORITY_ARG_HIGH) {
3633fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair            dumper.dumpHigh(fd, strippedArgs);
3733fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair        } else if (priority == PRIORITY_ARG_NORMAL) {
3833fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair            dumper.dumpNormal(fd, strippedArgs);
3933fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair        } else {
4033fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair            dumper.dump(fd, args);
4133fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair        }
4233fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair    } else {
4333fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair        dumper.dump(fd, args);
4433fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair    }
4533fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair}
4633fd3be6088bfacaf659108bad67d24103494aa1Vishnu Nair} // namespace android