- Implement Trigger method to allow buffers
- Identation, 80/90, tabs & whitespaces git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32788 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -42,12 +42,24 @@ class PortListener {
|
||||
}
|
||||
|
||||
|
||||
status_t TriggerCode(int32 code)
|
||||
status_t Trigger(int32 code)
|
||||
{
|
||||
return write_port(fPort, code, NULL, 0);
|
||||
}
|
||||
|
||||
|
||||
status_t Trigger(int32 code, TYPE* buffer, size_t size = 0)
|
||||
{
|
||||
if (buffer == NULL)
|
||||
return B_ERROR;
|
||||
|
||||
if (size == 0)
|
||||
return write_port(fPort, code, buffer, sizeof(TYPE));
|
||||
else
|
||||
return write_port(fPort, code, buffer, size);
|
||||
}
|
||||
|
||||
|
||||
status_t InitCheck()
|
||||
{
|
||||
// Create Port
|
||||
@@ -64,11 +76,13 @@ class PortListener {
|
||||
fThread = find_thread(fThreadName);
|
||||
if (fThread < B_OK) {
|
||||
#ifdef KERNEL_LAND
|
||||
fThread = spawn_kernel_thread((thread_func)&PortListener<TYPE,MAX_MESSAGE_SIZE,
|
||||
MAX_MESSAGE_DEEP, PRIORITY>::threadFunction, fThreadName, PRIORITY, &fInformation);
|
||||
fThread = spawn_kernel_thread((thread_func)&PortListener<TYPE,
|
||||
MAX_MESSAGE_SIZE, MAX_MESSAGE_DEEP, PRIORITY>::threadFunction,
|
||||
fThreadName, PRIORITY, &fInformation);
|
||||
#else
|
||||
fThread = spawn_thread((thread_func)&PortListener<TYPE,MAX_MESSAGE_SIZE,
|
||||
MAX_MESSAGE_DEEP, PRIORITY>::threadFunction, fThreadName, PRIORITY, &fInformation);
|
||||
fThread = spawn_thread((thread_func)&PortListener<TYPE,
|
||||
MAX_MESSAGE_SIZE, MAX_MESSAGE_DEEP, PRIORITY>::threadFunction,
|
||||
fThreadName, PRIORITY, &fInformation);
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -93,14 +107,17 @@ class PortListener {
|
||||
status_t Stop()
|
||||
{
|
||||
status_t status;
|
||||
|
||||
close_port(fPort);
|
||||
// Closing the port should provoke the thread to finish
|
||||
wait_for_thread(fThread, &status);
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
struct PortListenerInfo {
|
||||
port_id* port;
|
||||
port_listener_func func;
|
||||
@@ -158,4 +175,3 @@ class PortListener {
|
||||
}; // PortListener
|
||||
|
||||
#endif // PORTLISTENER_H_
|
||||
|
||||
|
||||
Reference in New Issue
Block a user