This file is indexed.

/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__