Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

# Tools/Process.h File Reference

Contains the definition of class Process and macros for receivers and senders. More...

`#include "Tools/MessageQueue/MessageQueue.h"`
`#include "Tools/Streams/StreamHandler.h"`
`#include "Tools/Debugging/DebugKeyTable.h"`
`#include "Tools/Debugging/DebugRequest.h"`
`#include "Tools/Debugging/DebugDataTable.h"`
`#include "Tools/Module/ModuleHandler.h"`
`#include "Tools/RobotConfiguration.h"`
`#include "Platform/ProcessFramework.h"`

Include dependency graph for Process.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Classes
class | Process
| System independent base class for Processes. More...
class | MultiDebugSender
| This template class implements a sender for debug packages. More...
class | DebugSender
| This class implements a sender for MessageQueues. More...
## Defines
#define | DEBUGGING
| The macro declares two debugging queues.
#define | INIT_DEBUGGING
| The macro initializes the two debugging queues and the base class.
#define | RECEIVER(type) Receiver<type> the##type##Receiver
| The macro declares a receiver.
#define | INIT_RECEIVER(type, blocking) the##type##Receiver(this,"Receiver." #type ".O",blocking)
| The macro initializes a receiver for a certain type.
#define | SENDER(type) Sender<type> the##type##Sender
| The macro declares a sender.
#define | INIT_SENDER(type, blocking) the##type##Sender(this,"Sender." #type ".S",blocking)
| The macro initializes a sender for a certain type.
#define | DEBUG_RECEIVER(source)
| The macro declares a receiver for a MessageQueue.
#define | INIT_DEBUG_RECEIVER(source) the##source##Receiver(this,#source "Receiver.MessageQueue.O",false) \
| The macro initializes a receiver for a MessageQueue.
#define | DEBUG_SENDER(target)
| The macro declares a sender for a MessageQueue.
#define | INIT_DEBUG_SENDER(target) the##target##Sender(this,#target "Sender.MessageQueue.S",false)
| The macro initializes a sender for a MessageQueue.

## Detailed Description

Contains the definition of class Process and macros for receivers and senders.

Definition in file Process.h.

## Define Documentation

#define DEBUGGING

| Value:
    Receiver<MessageQueue> theDebugReceiver; \
      DebugSender theDebugSender
The macro declares two debugging queues. The macro shall be the first entry in the declaration of a process. Definition at line 206 of file Process.h.

#define INIT_DEBUGGING

| Value:
    Process(theDebugReceiver,theDebugSender), \
      theDebugReceiver(this,"Receiver.MessageQueue.O",false), \
      theDebugSender(this,"Sender.MessageQueue.S",false)
The macro initializes the two debugging queues and the base class. The macro shall be the first entry after the colon in constructor of the process. Definition at line 215 of file Process.h. Referenced by Cognition::Cognition(), and Motion::Motion().

#define RECEIVER | ( | type |  | ) | Receiver<type> the##type##Receiver

  | The macro declares a receiver. It must be used inside a declaration of a process, after the macro DEBUGGING. Parameters:
  type | The type of the package. The variable actually declared has a type compatible to "type" and is called "thetypeReceiver".
Definition at line 226 of file Process.h.

#define INIT_RECEIVER | ( | type,
|  | blocking |  | ) | the##type##Receiver(this,"Receiver." #type ".O",blocking)

  | The macro initializes a receiver for a certain type. It must be part of the initializer list of the constructor of the process. Parameters:
  type | The type of the package. The variable actually declared has a type compatible to "type" and is called "thetypeReceiver".
  blocking | Decides whether this receiver blocks the execution of the next frame until it has received a package.
Definition at line 237 of file Process.h. Referenced by Cognition::Cognition(), and Motion::Motion().

#define SENDER | ( | type |  | ) | Sender<type> the##type##Sender

  | The macro declares a sender. It must be used inside a declaration of a process, after the macro DEBUGGING. Parameters:
  type | The type of the package. The variable actually declared has a type compatible to "type" and is called "thetypeSender".
Definition at line 246 of file Process.h.

#define INIT_SENDER | ( | type,
|  | blocking |  | ) | the##type##Sender(this,"Sender." #type ".S",blocking)

  | The macro initializes a sender for a certain type. It must be part of the initializer list of the constructor of the process. Parameters:
  type | The type of the package. The variable actually declared has a type compatible to "type" and is called "thetypeSender".
  blocking | Decides whether this sender blocks the execution of the next frame until all connected receivers have requested a new package.
Definition at line 257 of file Process.h. Referenced by Cognition::Cognition(), and Motion::Motion().

#define DEBUG_RECEIVER | ( | source |  | ) |

| Value:
    class Receive##source##MessageQueue : public MessageQueue {}; \
      Receiver<Receive##source##MessageQueue> the##source##Receiver
  The macro declares a receiver for a MessageQueue. It must be used inside a declaration of a process, after the macro DEBUGGING. It shall only be used in the Debug process. Parameters:
  source | The source process of the package. The variable actually declared is of type MessageQueue and is called "thesourceReceiver".
Definition at line 267 of file Process.h.

#define INIT_DEBUG_RECEIVER | ( | source |  | ) | the##source##Receiver(this,#source "Receiver.MessageQueue.O",false) \

  | The macro initializes a receiver for a MessageQueue. It must be part of the initializer list of the constructor of the process. Parameters:
  source | The source process of the package. The variable actually declared is of type MessageQueue and is called "thesourceReceiver".
Definition at line 277 of file Process.h. Referenced by Debug::Debug().

#define DEBUG_SENDER | ( | target |  | ) |

| Value:
    class Send##target##MessageQueue : public MessageQueue {}; \
      MultiDebugSender<Send##target##MessageQueue> the##target##Sender
  The macro declares a sender for a MessageQueue. It must be used inside a declaration of a process, after the macro DEBUGGING. It shall only be used in the Debug process. Parameters:
  target | The target process of the package. The variable actually declared is of type MessageQueue and is called "thetargetReceiver".
Definition at line 287 of file Process.h.

#define INIT_DEBUG_SENDER | ( | target |  | ) | the##target##Sender(this,#target "Sender.MessageQueue.S",false)

  | The macro initializes a sender for a MessageQueue. It must be part of the initializer list of the constructor of the process. Parameters:
  target | The target process of the package. The variable actually declared is of type MessageQueue and is called "thetargetSender".
Definition at line 297 of file Process.h. Referenced by Debug::Debug().