/usr/include/classad/sink.h is in libclassad-dev 8.6.8~dfsg.1-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 | /***************************************************************
*
* Copyright (C) 1990-2007, Condor Team, Computer Sciences Department,
* University of Wisconsin-Madison, WI.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you
* may not use this file except in compliance with the License. You may
* obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
***************************************************************/
#ifndef __CLASSAD_SINK_H__
#define __CLASSAD_SINK_H__
#include "classad/common.h"
#include "classad/exprTree.h"
#include <vector>
#include <utility> // for pair template
#include <string>
namespace classad {
/// This converts a ClassAd into a string representing the %ClassAd
class ClassAdUnParser
{
public:
/// Constructor
ClassAdUnParser( );
/// Destructor
virtual ~ClassAdUnParser( );
/** Function to be called by the ClassAdXMLUnParser with a true
* flag before doing an XMLUnparse
*/
void setXMLUnparse(bool doXMLUnparse);
// The default delimiter for strings is '\"'
// This can be changed to '\'' to unparse quoted attributes, with this function
void setDelimiter(char delim);
/** Unparse a value
* @param buffer The string to unparse to
* @param val The value to unparse
*/
void Unparse( std::string &buffer, const Value &val );
/** Unparse an expression
* @param buffer The string to unparse to
* @param expr The expression to unparse
*/
void Unparse( std::string &buffer, const ExprTree *expr );
void Unparse( std::string &buffer, const ClassAd *ad, const References &whitelist );
// for backcompatibility only - NAC
// In old ClassAd syntax, nested ads should be delimited in
// the new syntax (ad enclosed by square brackets and
// attributes separated by semicolons), but the outer-most ad
// is delimited in the old syntax (no brackets and newlines
// instead of semicolons).
// If you want to unparse an attribute value (and not a
// standalone ad) in the old style, use the second form of
// SetOldClassAd() and pass true for attr_value. That will
// cause the outermost ClassAd to be delimited in the new
// syntax (as well as any nested ads).
void SetOldClassAd( bool old_syntax );
void SetOldClassAd( bool old_syntax, bool attr_value );
bool GetOldClassAd();
virtual void UnparseAux( std::string &buffer,
const Value&,Value::NumberFactor );
virtual void UnparseAux( std::string &buffer,
const ExprTree *tree,
std::string &ref, bool absolute=false );
virtual void UnparseAux( std::string &buffer, Operation::OpKind op,
ExprTree *op1, ExprTree *op2, ExprTree *op3 );
virtual void UnparseAux(std::string &buffer, std::string &fnName,
std::vector<ExprTree*>& args);
virtual void UnparseAux( std::string &buffer,
std::vector< std::pair< std::string, ExprTree*> >& attrlist );
virtual void UnparseAux( std::string &buffer, std::vector<ExprTree*>& );
// to unparse attribute names (quoted & unquoted attributes)
virtual void UnparseAux( std::string &buffer, std::string identifier);
// table of string representation of operators
static const char *opString[];
protected:
bool oldClassAd;
bool xmlUnparse;
char delimiter; // string delimiter - initialized to '\"' in the constructor
bool oldClassAdValue;
};
/// This is a special case of the ClassAdParser which prints the ClassAds more nicely.
class PrettyPrint : public ClassAdUnParser
{
public:
/// Constructor
PrettyPrint( );
///Destructor
virtual ~PrettyPrint( );
/// Set the indentation width for displaying classads
void SetClassAdIndentation( int=4 );
/// Get the indentation width for displaying classads
int GetClassAdIndentation( );
/// Set the indentation width for displaying lists
void SetListIndentation( int=4 );
/// Get the indentation width for displaying lists
int GetListIndentation( );
void SetWantStringQuotes( bool );
bool GetWantStringQuotes( );
/// Set minimal parentheses mode
void SetMinimalParentheses( bool );
/// Get minimal parentheses mode
bool GetMinimalParentheses( );
virtual void UnparseAux( std::string &buffer, Operation::OpKind op,
ExprTree *op1, ExprTree *op2, ExprTree *op3 );
virtual void UnparseAux( std::string &buffer,
std::vector< std::pair< std::string, ExprTree*> >& attrlist );
virtual void UnparseAux( std::string &buffer, std::vector<ExprTree*>& );
private:
int classadIndent;
int listIndent;
bool wantStringQuotes;
bool minimalParens;
int indentLevel;
};
} // classad
#endif//__CLASSAD_SINK_H__
|