xref: /haiku/src/apps/cortex/NodeManager/node_manager_impl.h (revision 98057dd02a2411868fd4c35f7a48d20acfd92c23)
1 /*
2  * Copyright (c) 1999-2000, Eric Moon.
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * 1. Redistributions of source code must retain the above copyright
10  *    notice, this list of conditions, and the following disclaimer.
11  *
12  * 2. Redistributions in binary form must reproduce the above copyright
13  *    notice, this list of conditions, and the following disclaimer in the
14  *    documentation and/or other materials provided with the distribution.
15  *
16  * 3. The name of the author may not be used to endorse or promote products
17  *    derived from this software without specific prior written permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
20  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21  * OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
23  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
26  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
27  * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29  */
30 
31 
32 // node_manager_impl.h
33 // * PURPOSE
34 //   Helper classes & functions used by NodeManager,
35 //   NodeGroup, and NodeRef.
36 // * HISTORY
37 //   e.moon		10jul99		Begun
38 
39 #ifndef __node_manager_impl_H__
40 #define __node_manager_impl_H__
41 
42 #include "Connection.h"
43 
44 #include "ILockable.h"
45 
46 #include "cortex_defs.h"
47 __BEGIN_CORTEX_NAMESPACE
48 
49 inline void assert_locked(const ILockable* target) {
50 	ASSERT(target);
51 	ASSERT(target->isLocked());
52 }
53 //
54 //// functor: disconnect Connection
55 //
56 //class disconnectFn { public:
57 //	NodeManager* manager;
58 //	disconnectFn(NodeManager* _manager) : manager(_manager) {}
59 //	void operator()(Connection* c) {
60 //		ASSERT(c);
61 //		ASSERT(c->isValid());
62 //
63 //		status_t err = manager->disconnect(c);
64 //
65 //#if DEBUG
66 //		if(err < B_OK)
67 //			PRINT((
68 //				"* disconnect():\n"
69 //				"  output %s:%s\n"
70 //				"  input  %s:%s\n"
71 //				"  error '%s'\n\n",
72 //				c->sourceNode()->name(), c->outputName(),
73 //				c->destinationNode()->name(), c->inputName(),
74 //				strerror(err)));
75 //#endif
76 //	}
77 //};
78 //
79 //// functor: release NodeRef or NodeGroup (by pointer)
80 //// +++++ currently no error checking; however, the only error
81 ////       release() is allowed to return is that the object has
82 ////       already been released.
83 //
84 //template <class T>
85 //class releaseFn { public:
86 //	void operator()(T* object) {
87 //		ASSERT(object);
88 //		object->release();
89 //	}
90 //};
91 
92 __END_CORTEX_NAMESPACE
93 #endif /*__node_manager_impl_H__*/
94 
95