Пример #1
0
int Log::LogV(const std::string &s)
{
  if (d_callback)
    d_callback(Log::L_VERBOSE,std::string("[VERB] ")+s+'\n');
  d_logfile_stream <<  "[V]" << s << std::endl;
  return ESUCCESS;
}
Пример #2
0
int Log::LogW(const std::string &s)
{
    d_logfile_stream <<  "[W]" << s << std::endl;
       if (d_callback)
       d_callback(Log::L_WARNING,std::string("[WARN] ")+s+'\n');
    return ESUCCESS;
}
Пример #3
0
int PipeControlChannel::readNamedPipe()
{
    BALL_LOG_SET_CATEGORY(LOG_CATEGORY);
    BSLS_ASSERT(INVALID_HANDLE_VALUE != d_impl.d_windows.d_handle);

    BALL_LOG_TRACE << "Accepting next pipe client connection" << BALL_LOG_END;

    if (!ConnectNamedPipe(d_impl.d_windows.d_handle, NULL)) {
        BALL_LOG_TRACE << "Connecting to named pipe '" << d_pipeName
                       << "': "
                       << describeWin32Error(GetLastError())
                       << BALL_LOG_END;

        DWORD lastError = GetLastError();
        if (lastError != ERROR_PIPE_CONNECTED && lastError != ERROR_NO_DATA) {
            BALL_LOG_TRACE << "Failed to connect to named pipe '" << d_pipeName
                           << "'"
                           << BALL_LOG_END;
            return -1;
        }
    }

    while(1) {
        char buffer[MAX_PIPE_BUFFER_LEN];
        DWORD bytesRead = 0;

        if (ReadFile(d_impl.d_windows.d_handle,
                     buffer,
                     MAX_PIPE_BUFFER_LEN,
                     &bytesRead,
                     NULL))
        {
           if (bytesRead > 0) {
               if (buffer[bytesRead - 1] == '\n') {
                   bytesRead--;
               }
               bslstl::StringRef stringRef(buffer, bytesRead);
               if (!stringRef.isEmpty()) {
                   d_callback(stringRef);
               }
           }
           else {
              // reached EOF on a named pipe.
              break;
           }
        }
        else {
            BALL_LOG_TRACE << "Failed to read from named pipe '" << d_pipeName
                           << "': "
                           << describeWin32Error(GetLastError())
                           << BALL_LOG_END;
            break;
        }
    }

    DisconnectNamedPipe(d_impl.d_windows.d_handle);

    return 0;
}
Пример #4
0
int Log::LogE(const std::string &s)
{
   d_logfile_stream <<  "[E]" << s << std::endl;

   if (d_callback)
       d_callback(Log::L_ERROR,std::string("[ERR] ")+s+'\n');
   /*log to std console -- remove me*/
   std::cout << s << std::endl;
   std::cout.flush();
   d_logfile_stream.flush();
   return ESUCCESS;
}
Пример #5
0
	static void _guiGtkMenuItem_activateCallback (GuiObject widget, gpointer void_me) {
		iam (GuiMenuItem);
		if (my d_callbackBlocked) return;
		if (G_OBJECT_TYPE (widget) == GTK_TYPE_RADIO_MENU_ITEM && ! gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (widget))) return;
		struct structGuiMenuItemEvent event { me, false, false, false, false };
		if (my d_callback) {
			try {
				my d_callback (my d_boss, & event);
			} catch (MelderError) {
				Melder_flushError (U"Your choice of menu item \"", Melder_peek8to32 (GTK_WIDGET (widget) -> name), U"\" was not completely handled.");
			}
		}
	}
Пример #6
0
void PipeControlChannel::dispatchMessageUpTo(
                                       const bsl::vector<char>::iterator& iter)
{
    BALL_LOG_SET_CATEGORY(LOG_CATEGORY);

    bslstl::StringRef stringRef(&(*d_buffer.begin()),
                              iter - d_buffer.begin());
    BALL_LOG_TRACE << "Assembled complete message '"
                   << (bsl::string)stringRef << "'"
                   << BALL_LOG_END;

    if (!stringRef.isEmpty()) {
        d_callback(stringRef);
    }
    d_buffer.erase(d_buffer.begin(), iter+1);
}