gator: Version 5.18
[firefly-linux-kernel-4.4.55.git] / tools / gator / daemon / SessionXML.h
1 /**
2  * Copyright (C) ARM Limited 2010-2014. All rights reserved.
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation.
7  */
8
9 #ifndef SESSION_XML_H
10 #define SESSION_XML_H
11
12 #include "mxml/mxml.h"
13
14 struct ImageLinkList;
15
16 struct ConfigParameters {
17         char buffer_mode[64];   // buffer mode, "streaming", "low", "normal", "high" defines oneshot and buffer size
18         char sample_rate[64];   // capture mode, "high", "normal", or "low"
19         int duration;           // length of profile in seconds
20         bool call_stack_unwinding;      // whether stack unwinding is performed
21         int live_rate;
22         struct ImageLinkList *images;   // linked list of image strings
23 };
24
25 class SessionXML {
26 public:
27         SessionXML(const char *str);
28         ~SessionXML();
29         void parse();
30         ConfigParameters parameters;
31 private:
32         const char *mSessionXML;
33         const char *mPath;
34         void sessionTag(mxml_node_t *tree, mxml_node_t *node);
35         void sessionImage(mxml_node_t *node);
36
37         // Intentionally unimplemented
38         SessionXML(const SessionXML &);
39         SessionXML &operator=(const SessionXML &);
40 };
41
42 #endif // SESSION_XML_H