PLplot
5.12.0
Main Page
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
wxwidgets_comms.h
Go to the documentation of this file.
1
// Copyright (C) 2008 Werner Smekal
2
//
3
// This file is part of PLplot.
4
//
5
// PLplot is free software; you can redistribute it and/or modify
6
// it under the terms of the GNU Library General Public License as published
7
// by the Free Software Foundation; either version 2 of the License, or
8
// (at your option) any later version.
9
//
10
// PLplot 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 Library General Public License for more details.
14
//
15
// You should have received a copy of the GNU Library General Public License
16
// along with PLplot; if not, write to the Free Software
17
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
//
19
20
#ifndef __PL_WXWIDGETS_COMMS__
21
#define __PL_WXWIDGETS_COMMS__
22
23
#include "
plplotP.h
"
24
#ifdef WIN32
25
#include <Windows.h>
26
#else
27
#include <sys/mman.h>
28
#include <sys/stat.h>
29
#include <fcntl.h>
30
#include <semaphore.h>
31
#include <errno.h>
32
#endif
33
34
#include <wx/font.h>
35
#include "
wxPLplot_nanosec.h
"
36
37
//data transmission codes
38
const
unsigned
char
transmissionRegular
= 0;
39
const
unsigned
char
transmissionSkipFileEnd
= 1;
40
const
unsigned
char
transmissionEndOfPage
= 2;
41
const
unsigned
char
transmissionBeginPage
= 3;
42
const
unsigned
char
transmissionLocate
= 4;
43
const
unsigned
char
transmissionPartial
= 5;
44
const
unsigned
char
transmissionComplete
= 6;
45
const
unsigned
char
transmissionRequestTextSize
= 7;
46
const
unsigned
char
transmissionEndOfPageNoPause
= 8;
47
const
unsigned
char
transmissionClose
= 9;
48
49
#define TEXTSIZEINFO_MAX_LENGTH 500
50
51
struct
TextSizeInfo
52
{
53
long
width
;
54
long
height
;
55
long
depth
;
56
long
leading
;
57
wxFontFamily
family
;
58
int
style
;
59
int
weight
;
60
int
pt
;
61
bool
underlined
;
62
wchar_t
text
[
TEXTSIZEINFO_MAX_LENGTH
+ 1];
63
bool
written
;
64
};
65
66
struct
MemoryMapHeader
67
{
68
size_t
readLocation
;
69
size_t
writeLocation
;
70
size_t
viewerOpenFlag
;
71
size_t
locateModeFlag
;
72
size_t
completeFlag
;
73
PLGraphicsIn
graphicsIn
;
74
TextSizeInfo
textSizeInfo
;
75
};
76
77
const
PLINT
plMemoryMapReservedSpace
=
sizeof
(
MemoryMapHeader
);
78
79
class
PLMemoryMap
80
{
81
public
:
82
PLMemoryMap
();
83
PLMemoryMap
(
const
char
*
name
,
PLINT
size,
bool
mustExist,
bool
mustNotExist );
84
void
create
(
const
char
*name,
PLINT
size,
bool
mustExist,
bool
mustNotExist );
85
void
close
();
86
~PLMemoryMap
();
87
char
*
getBuffer
() {
return
(
char
*)
m_buffer
; }
88
bool
isValid
() {
return
m_buffer
!= NULL; }
89
size_t
getSize
() {
return
m_size
; }
90
private
:
91
#ifdef WIN32
92
HANDLE
m_mapFile
;
93
#else
94
int
m_mapFile
;
95
char
*
m_name
;
96
#endif
97
size_t
m_size
;
98
void
*
m_buffer
;
99
};
100
101
class
PLNamedMutex
102
{
103
public
:
104
PLNamedMutex
();
105
PLNamedMutex
(
const
char
*
name
,
bool
aquireOnCreate =
false
);
106
~PLNamedMutex
();
107
void
create
(
const
char
*name,
bool
aquireOnCreate =
false
);
108
void
clear
();
109
void
aquire
();
110
bool
aquire
(
unsigned
long
millisecs );
111
bool
aquireNoWait
();
112
void
release
();
113
bool
isValid
();
114
private
:
115
bool
m_haveLock
;
116
#ifdef WIN32
117
HANDLE
m_mutex
;
118
#else
119
sem_t *
m_mutex
;
120
#endif
121
};
122
123
class
PLNamedMutexLocker
124
{
125
public
:
126
PLNamedMutexLocker
(
PLNamedMutex
*mutex );
127
~PLNamedMutexLocker
();
128
private
:
129
PLNamedMutex
*
m_mutex
;
130
//remove default constructors
131
PLNamedMutexLocker
();
132
PLNamedMutexLocker
(
const
PLNamedMutexLocker
& );
133
PLNamedMutexLocker
&
operator =
(
const
PLNamedMutex
& );
134
};
135
136
#endif
plplotP.h
TEXTSIZEINFO_MAX_LENGTH
#define TEXTSIZEINFO_MAX_LENGTH
Definition:
wxwidgets_comms.h:49
PLMemoryMap::m_buffer
void * m_buffer
Definition:
wxwidgets_comms.h:98
name
static const char * name
Definition:
tkMain.c:135
TextSizeInfo::style
int style
Definition:
wxwidgets_comms.h:58
MemoryMapHeader::textSizeInfo
TextSizeInfo textSizeInfo
Definition:
wxwidgets_comms.h:74
PLNamedMutex::isValid
bool isValid()
Definition:
wxwidgets_comms.cpp:251
MemoryMapHeader::completeFlag
size_t completeFlag
Definition:
wxwidgets_comms.h:72
transmissionRegular
const unsigned char transmissionRegular
Definition:
wxwidgets_comms.h:38
TextSizeInfo::pt
int pt
Definition:
wxwidgets_comms.h:60
PLMemoryMap::~PLMemoryMap
~PLMemoryMap()
Definition:
wxwidgets_comms.cpp:151
transmissionLocate
const unsigned char transmissionLocate
Definition:
wxwidgets_comms.h:42
TextSizeInfo::height
long height
Definition:
wxwidgets_comms.h:54
PLNamedMutex::release
void release()
Definition:
wxwidgets_comms.cpp:217
PLMemoryMap::getBuffer
char * getBuffer()
Definition:
wxwidgets_comms.h:87
MemoryMapHeader::viewerOpenFlag
size_t viewerOpenFlag
Definition:
wxwidgets_comms.h:70
PLNamedMutexLocker::m_mutex
PLNamedMutex * m_mutex
Definition:
wxwidgets_comms.h:129
PLNamedMutexLocker::~PLNamedMutexLocker
~PLNamedMutexLocker()
Definition:
wxwidgets_comms.cpp:256
PLMemoryMap::getSize
size_t getSize()
Definition:
wxwidgets_comms.h:89
transmissionClose
const unsigned char transmissionClose
Definition:
wxwidgets_comms.h:47
PLMemoryMap::PLMemoryMap
PLMemoryMap()
Definition:
wxwidgets_comms.cpp:27
PLMemoryMap::m_mapFile
int m_mapFile
Definition:
wxwidgets_comms.h:94
PLINT
int PLINT
Definition:
plplot.h:174
PLMemoryMap::m_name
char * m_name
Definition:
wxwidgets_comms.h:95
PLNamedMutex::aquire
void aquire()
Definition:
wxwidgets_comms.cpp:184
plMemoryMapReservedSpace
const PLINT plMemoryMapReservedSpace
Definition:
wxwidgets_comms.h:77
PLNamedMutex::create
void create(const char *name, bool aquireOnCreate=false)
Definition:
wxwidgets_comms.cpp:170
PLNamedMutex::clear
void clear()
Definition:
wxwidgets_comms.cpp:230
PLNamedMutex::m_haveLock
bool m_haveLock
Definition:
wxwidgets_comms.h:115
PLNamedMutexLocker::operator=
PLNamedMutexLocker & operator=(const PLNamedMutex &)
wxPLplot_nanosec.h
TextSizeInfo::leading
long leading
Definition:
wxwidgets_comms.h:56
PLNamedMutex
Definition:
wxwidgets_comms.h:101
PLMemoryMap::isValid
bool isValid()
Definition:
wxwidgets_comms.h:88
MemoryMapHeader::readLocation
size_t readLocation
Definition:
wxwidgets_comms.h:68
TextSizeInfo
Definition:
wxwidgets_comms.h:51
PLNamedMutexLocker
Definition:
wxwidgets_comms.h:123
TextSizeInfo::weight
int weight
Definition:
wxwidgets_comms.h:59
PLMemoryMap
Definition:
wxwidgets_comms.h:79
TextSizeInfo::depth
long depth
Definition:
wxwidgets_comms.h:55
transmissionComplete
const unsigned char transmissionComplete
Definition:
wxwidgets_comms.h:44
TextSizeInfo::written
bool written
Definition:
wxwidgets_comms.h:63
transmissionBeginPage
const unsigned char transmissionBeginPage
Definition:
wxwidgets_comms.h:41
transmissionPartial
const unsigned char transmissionPartial
Definition:
wxwidgets_comms.h:43
MemoryMapHeader
Definition:
wxwidgets_comms.h:66
TextSizeInfo::underlined
bool underlined
Definition:
wxwidgets_comms.h:61
PLMemoryMap::m_size
size_t m_size
Definition:
wxwidgets_comms.h:97
MemoryMapHeader::graphicsIn
PLGraphicsIn graphicsIn
Definition:
wxwidgets_comms.h:73
PLNamedMutex::PLNamedMutex
PLNamedMutex()
Definition:
wxwidgets_comms.cpp:157
PLNamedMutexLocker::PLNamedMutexLocker
PLNamedMutexLocker()
TextSizeInfo::family
wxFontFamily family
Definition:
wxwidgets_comms.h:57
transmissionSkipFileEnd
const unsigned char transmissionSkipFileEnd
Definition:
wxwidgets_comms.h:39
PLNamedMutex::~PLNamedMutex
~PLNamedMutex()
Definition:
wxwidgets_comms.cpp:240
transmissionRequestTextSize
const unsigned char transmissionRequestTextSize
Definition:
wxwidgets_comms.h:45
TextSizeInfo::text
wchar_t text[TEXTSIZEINFO_MAX_LENGTH+1]
Definition:
wxwidgets_comms.h:62
PLMemoryMap::create
void create(const char *name, PLINT size, bool mustExist, bool mustNotExist)
Definition:
wxwidgets_comms.cpp:65
PLNamedMutex::m_mutex
sem_t * m_mutex
Definition:
wxwidgets_comms.h:119
MemoryMapHeader::writeLocation
size_t writeLocation
Definition:
wxwidgets_comms.h:69
transmissionEndOfPageNoPause
const unsigned char transmissionEndOfPageNoPause
Definition:
wxwidgets_comms.h:46
MemoryMapHeader::locateModeFlag
size_t locateModeFlag
Definition:
wxwidgets_comms.h:71
transmissionEndOfPage
const unsigned char transmissionEndOfPage
Definition:
wxwidgets_comms.h:40
TextSizeInfo::width
long width
Definition:
wxwidgets_comms.h:53
PLNamedMutex::aquireNoWait
bool aquireNoWait()
Definition:
wxwidgets_comms.cpp:207
PLMemoryMap::close
void close()
Definition:
wxwidgets_comms.cpp:119
PLGraphicsIn
Definition:
plplot.h:444
plplot_source
drivers
wxwidgets_comms.h
Generated on Sat Jan 28 2017 17:51:07 for PLplot by
1.8.8