11754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato/* 21754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * Copyright (C) 2016 The Android Open Source Project 31754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * 41754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * Licensed under the Apache License, Version 2.0 (the "License"); 51754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * you may not use this file except in compliance with the License. 61754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * You may obtain a copy of the License at 71754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * 81754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * http://www.apache.org/licenses/LICENSE-2.0 91754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * 101754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * Unless required by applicable law or agreed to in writing, software 111754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * distributed under the License is distributed on an "AS IS" BASIS, 121754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 131754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * See the License for the specific language governing permissions and 141754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato * limitations under the License. 151754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato */ 161754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 171754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato#ifndef PRINTER_H 181754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato#define PRINTER_H 191754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 201754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato#include <stdio.h> 211754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 221754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onoratoclass Out 231754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato{ 241754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onoratopublic: 251754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato Out(int fd); 261754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato ~Out(); 271754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 281754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato void printf(const char* format, ...); 291754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 301754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato void indent(); 311754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato void dedent(); 321754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 331754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onoratoprivate: 341754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato FILE* mOut; 351754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato int mBufSize; 361754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato char* mBuf; 371754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato int mIndent; 381754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato bool mPendingIndent; 391754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 401754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato int reallocate(int size); 411754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato void print_indent(); 421754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato}; 431754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato 441754d744a7a34731ffc07af1bc3dbfcb06864ab0Joe Onorato#endif // PRINTER_H 45