Skip to content

File ManagedLoggingEventData.h

File List > SpinnakerNET > ManagedLoggingEventData.h

Go to the documentation of this file

//=============================================================================
// Copyright (c) 2026 FLIR Integrated Imaging Solutions, Inc. All Rights Reserved.
//
// This software is the confidential and proprietary information of FLIR
// Integrated Imaging Solutions, Inc. ("Confidential Information"). You
// shall not disclose such Confidential Information and shall use it only in
// accordance with the terms of the license agreement you entered into
// with FLIR Integrated Imaging Solutions, Inc. (FLIR)
//
// FLIR MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
// SOFTWARE, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
// PURPOSE, OR NON-INFRINGEMENT. FLIR SHALL NOT BE LIABLE FOR ANY DAMAGES
// SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
// THIS SOFTWARE OR ITS DERIVATIVES.
//=============================================================================

#ifndef PGR_SPINNAKER_MANAGED_LOGGINGEVENT_H
#define PGR_SPINNAKER_MANAGED_LOGGINGEVENT_H

#include "ManagedDefs.h"

using namespace ::System;
using namespace ::System::Activities::Hosting;
using namespace ::System::Collections::Generic;
using namespace ::System::Runtime::InteropServices;
using namespace ::System::Diagnostics;

namespace SpinnakerNET
{
    public ref class ManagedLoggingEventData
    {
        public:
            ManagedLoggingEventData(System::String^ msg, System::String^ logger, SpinnakerNET::ManagedLoggingLevel level,  System::DateTime^ timestmap, System::String^ threadName, System::Diagnostics::StackTrace^ stackTrace, System::String^ domain, System::Exception^ exceptionObject);
            ~ManagedLoggingEventData(){};

            virtual property System::String^ Message
            {
                System::String^ get()
                {
                    return m_message;
                }
            }

            virtual property SpinnakerNET::ManagedLoggingLevel Level
            {
                SpinnakerNET::ManagedLoggingLevel get()
                {
                    return m_level;
                }
            }

            virtual property System::String^ Logger
            {
                System::String^ get()
                {
                    return m_logger;
                }
            }

            virtual property System::DateTime^ Timestamp
            {
                System::DateTime^ get()
                {
                    return m_timestamp;
                }
            }

            virtual property System::String^ TheadName
            {
                System::String^ get()
                {
                    return m_threadName;
                }
            }

            virtual property System::Diagnostics::StackTrace^ StackTrace
            {
                System::Diagnostics::StackTrace^ get()
                {
                    return m_stackTrace;
                }
            }

            virtual property System::String^ Domain
            {
                System::String^ get()
                {
                    return m_domain;
                }

            }

            virtual property System::Exception^ ExceptionObject
            {
                System::Exception^ get()
                {
                    return m_exceptionObject;
                }
            }

            virtual property System::String^ UserName
            {
                System::String^ get()
                {
                    return m_userName;
                }
            }

        private:
            System::Exception^ m_exceptionObject;
            // The AppDomain friendly name
            System::String^ m_domain;
            // The Level of the logging event
            SpinnakerNET::ManagedLoggingLevel m_level;
            // The location information for this logging event.
            System::Diagnostics::StackTrace^ m_stackTrace;
            // The name of the logger that logged the event.
            System::String^ m_logger;
            // Log Message
            System::String^ m_message;
            // The name of the current thread, or the thread ID when the name is not available.
            System::String^ m_threadName;
            // The time of the logging event.
            System::DateTime^ m_timestamp;
            // The name of the current user, or NOT AVAILABLE when the underlying runtime has no support for retrieving the name of the current user.
            System::String^ m_userName;
    };

    public delegate void ManagedLogEventCallback( SpinnakerNET::ManagedLoggingEventData^ logEvent );

}

#endif //PGR_SPINNAKER_MANAGED_LOGGINGEVENT_H