1 : // Copyright 2013 Google Inc. All Rights Reserved.
2 : //
3 : // Licensed under the Apache License, Version 2.0 (the "License");
4 : // you may not use this file except in compliance with the License.
5 : // You may obtain a copy of the License at
6 : //
7 : // http://www.apache.org/licenses/LICENSE-2.0
8 : //
9 : // Unless required by applicable law or agreed to in writing, software
10 : // distributed under the License is distributed on an "AS IS" BASIS,
11 : // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 : // See the License for the specific language governing permissions and
13 : // limitations under the License.
14 : //
15 : // Declares the instrumenter interface.
16 : #ifndef SYZYGY_INSTRUMENT_INSTRUMENTER_H_
17 : #define SYZYGY_INSTRUMENT_INSTRUMENTER_H_
18 :
19 : #include "base/command_line.h"
20 :
21 : namespace instrument {
22 :
23 : // The simple interface all instrumenters implement.
24 : class InstrumenterInterface {
25 : public:
26 E : virtual ~InstrumenterInterface() { }
27 :
28 : // Parses any required and/or optional arguments from the command-line.
29 : // @param command_line the command-line to be parsed.
30 : // @returns true on success, false otherwise.
31 : virtual bool ParseCommandLine(const base::CommandLine* command_line) = 0;
32 :
33 : // Do the instrumentation.
34 : virtual bool Instrument() = 0;
35 : };
36 :
37 : } // namespace instrument
38 :
39 : #endif // SYZYGY_INSTRUMENT_INSTRUMENTER_H_
|