X-TraceC++Library
|
00001 /* 00002 * Copyright (c) 2005,2006,2007 The Regents of the University of California. 00003 * All rights reserved. 00004 * 00005 * Redistribution and use in source and binary forms, with or without 00006 * modification, are permitted provided that the following conditions are met: 00007 * * Redistributions of source code must retain the above copyright 00008 * notice, this list of conditions and the following disclaimer. 00009 * * Redistributions in binary form must reproduce the above copyright 00010 * notice, this list of conditions and the following disclaimer in the 00011 * documentation and/or other materials provided with the distribution. 00012 * * Neither the name of the University of California, nor the 00013 * names of its contributors may be used to endorse or promote products 00014 * derived from this software without specific prior written permission. 00015 * 00016 * THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY OF CALIFORNIA ``AS IS'' AND ANY 00017 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 00018 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00019 * DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE FOR ANY 00020 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 00021 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 00022 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 00023 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00024 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 00025 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00026 */ 00027 00028 #ifndef _XTR_REPORT_CTX_H 00029 #define _XTR_REPORT_CTX_H 1 00030 00031 #include <netinet/in.h> 00032 #include "XtrConstants.h" 00033 #include "XtrOption.h" 00034 00035 00044 namespace xtr { 00045 00046 class Reporter 00047 { 00048 public: 00051 static void init(); 00052 00054 static void stop(); 00055 00069 static xtr_result sendReport(const char *msg, 00070 u_int8_t severity = OptionSeverity::_DEFAULT, 00071 u_int8_t severityThreshold = OptionSeverity::_UNSET 00072 ); 00073 00095 static xtr_result willReport(u_int8_t severity, 00096 u_int8_t severityThreshold = OptionSeverity::_UNSET); 00097 00098 00099 00110 static xtr_result setSeverityThreshold(u_int8_t severity); 00111 00113 static u_int8_t getSeverityThreshold(); 00114 00116 //static xtr_result sendReport(const XtrReport&); 00117 private: 00118 static int initialized; 00119 static int report_socket; 00120 static struct sockaddr_in dstaddr; 00121 static u_int8_t severity_thresh; 00122 }; 00123 00124 }; //namespace xtr 00125 00126 #endif 00127