Trivial documentation fixups.

git-svn-id: http://svn.drobilla.net/lad@175 a436a847-0d15-0410-975c-d299462d15a1
This commit is contained in:
dave 2006-10-15 17:16:22 +00:00
parent 285bc4c055
commit f791674e64
12 changed files with 107 additions and 5 deletions

View File

@ -26,6 +26,8 @@ using std::string;
/** An OSC atom (fundamental data types OSC messages are composed of).
*
* \ingroup raul
*/
class Atom {
public:

View File

@ -24,6 +24,8 @@
/** Support for serializing an Atom to/from liblo messages.
*
* (Here to prevent a unnecessary liblo dependency for Atom).
*
* \ingroup raul
*/
class AtomLiblo {
public:

View File

@ -27,6 +27,8 @@
/** Support for serializing an Atom to/from RDF (via redland aka librdf).
*
* (Here to prevent a unnecessary redland dependency for Atom).
*
* \ingroup raul
*/
class AtomRaptor {
public:

View File

@ -23,6 +23,8 @@
/** Trivial (but pretty) wrapper around POSIX Conditions (zero overhead).
*
* A semaphore that isn't a counter, is slow, and not realtime safe. Yay.
*
* \ingroup raul
*/
class Condition {
public:

View File

@ -8,6 +8,7 @@ raulinclude_HEADERS = \
Semaphore.h \
Mutex.h \
Condition.h \
Process.h \
Thread.h \
Slave.h \
Atom.h

View File

@ -21,6 +21,8 @@
/** Trivial (but pretty) wrapper around POSIX Mutexes (zero overhead).
*
* \ingroup raul
*/
class Mutex {
public:

View File

@ -34,6 +34,8 @@ using std::string;
*
* Valid characters are the 95 printable ASCII characters (32-126), excluding:
* space # * , ? [ ] { }
*
* \ingroup raul
*/
class Path : public std::basic_string<char> {
public:

85
raul/raul/Process.h Normal file
View File

@ -0,0 +1,85 @@
/* This file is part of Raul. Copyright (C) 2006 Dave Robillard.
*
* Raul is free software; you can redistribute it and/or modify it under the
* terms of the GNU General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option) any later
* version.
*
* Raul is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for details.
*
* You should have received a copy of the GNU General Public License along
* with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
#ifndef RAUL_PROCESS_H
#define RAUL_PROCESS_H
#include <string>
#include <iostream>
#include <unistd.h>
/** A child process.
*
* \ingroup raul
*/
class Process
{
public:
/** Launch a sub process.
*
* @param command can be a typical shell command with parameters, the PATH is searched etc.
*/
bool launch(std::string command)
{
const string executable = (command.find(" ") != string::npos)
? command.substr(0, command.find(" "))
: command;
std::cerr << "Launching child process '" << executable << "' with command line '"
<< command << "'" << endl;
// Use the same double fork() trick as JACK to prevent zombie children
const int err = fork();
if (err == 0) {
// (child)
// close all nonstandard file descriptors
const int max_fds = getdtablesize();
int fd;
for (fd = 3; fd < max_fds; ++fd)
close(fd);
switch (fork()) {
case 0:
// (grandchild)
setsid();
execlp(executable.c_str(), command.c_str(), NULL);
_exit(-1);
case -1:
// (second) fork failed, there is no grandchild
_exit (-1);
/* exit the child process here */
default:
_exit (0);
}
return (err > 0);
}
private:
// .... no :) (undefined)
Process();
Process(const Process&);
Process& operator=(const Process&);
};
#endif // RAUL_PROCESS_H

View File

@ -28,6 +28,8 @@
* the push and pop operations themselves are not thread-safe.
*
* FIXME: Verify atomicity of everything here.
*
* \ingroup raul
*/
template <typename T>
class Queue

View File

@ -28,6 +28,8 @@
* really needs to update it's man pages.
*
* This class remains as a trivial (yet pretty) wrapper/abstraction.
*
* \ingroup raul
*/
class Semaphore {
public:

View File

@ -1,11 +1,11 @@
/* This file is part of Ingen. Copyright (C) 2006 Dave Robillard.
/* This file is part of Raul. Copyright (C) 2006 Dave Robillard.
*
* Ingen is free software; you can redistribute it and/or modify it under the
* Raul is free software; you can redistribute it and/or modify it under the
* terms of the GNU General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option) any later
* version.
*
* Ingen is distributed in the hope that it will be useful, but WITHOUT ANY
* Raul is distributed in the hope that it will be useful, but WITHOUT ANY
* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for details.
*
@ -27,7 +27,7 @@
* Use this to perform some task in a separate thread you want to 'drive'
* from a realtime (or otherwise) thread.
*
* \ingroup engine
* \ingroup raul
*/
class Slave : public Thread
{

View File

@ -27,7 +27,7 @@
* Extend this and override the _run method to easily create a thread
* to perform some task.
*
* \ingroup engine
* \ingroup raul
*/
class Thread
{