X-TraceC++Library
XtrReporter.h
Go to the documentation of this file.
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