libIntegra
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
server.h
Go to the documentation of this file.
1 /* libIntegra modular audio framework
2  *
3  * Copyright (C) 2007 Birmingham City University
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
18  * USA.
19  */
20 
25 #ifndef INTEGRA_SERVER_API_H
26 #define INTEGRA_SERVER_API_H
27 
28 #include "common_typedefs.h"
29 #include "node.h"
30 #include "node_endpoint.h"
31 #include "error.h"
32 #include "guid_helper.h"
33 
34 
35 
36 namespace integra_api
37 {
38  class CServerStartupInfo;
39  class CCommandResult;
40  class ICommand;
41  class IModuleManager;
42  class IInterfaceDefinition;
43 
44 
51  class INTEGRA_API IServer
52  {
53  protected:
54 
55  IServer() {}
56 
57  public:
58 
59  virtual ~IServer() {}
60 
62  virtual const guid_set &get_all_module_ids() const = 0;
63 
67  virtual const IInterfaceDefinition *find_interface( const GUID &module_id ) const = 0;
68 
75  virtual const node_map &get_nodes() const = 0;
76 
84  virtual const INode *find_node( const CPath &path, const INode *relative_to = NULL ) const = 0;
85 
93  virtual const node_map &get_siblings( const INode &node ) const = 0;
94 
102  virtual const INodeEndpoint *find_node_endpoint( const CPath &path, const INode *relative_to = NULL ) const = 0;
103 
109  virtual const CValue *get_value( const CPath &path ) const = 0;
110 
123  virtual CError process_command( ICommand *command, CCommandResult *result = NULL ) = 0;
124 
127  virtual IModuleManager &get_module_manager() const = 0;
128 
135  virtual string get_libintegra_version() const = 0;
136 
141  virtual void dump_libintegra_state() = 0;
142 
147  virtual void dump_dsp_state( const string &file ) = 0;
148 
153  virtual void ping_all_dsp_modules() = 0;
154 
155  };
156 }
157 
158 
159 
160 #endif
Defines class INode.
Defines class INodeEndpoint.
Base class for the concrete value classes CIntegerValue, CFloatValue and CStringValue.
Definition: value.h:42
Represents a node endpoint.
Definition: node_endpoint.h:48
Defines class CError.
Represents a node.
Definition: node.h:49
Definition: common_typedefs.h:45
Provides methods to query libIntegra and process commands.
Definition: server.h:51
Defines class CGuidHelper, and guid containers.
Represents an enumeration of error codes.
Definition: error.h:40
Top level container for an Integra Module interface.
Definition: interface_definition.h:66
Provides funtionality to interact with 3rd party, embedded and in-development modules.
Definition: module_manager.h:44
Base class for all libIntegra commands.
Definition: command.h:61
Base class for all command result classes.
Definition: command_result.h:50
Represents the address of a node endpoint, absolutely or relatively.
Definition: path.h:48
#defines and typedefs used throughout the application