git-svn-id: svn://db.shs.com.ru/pip@246 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5
This commit is contained in:
@@ -213,28 +213,39 @@ llong PISharedMemory::size() const {
|
||||
|
||||
|
||||
int PISharedMemory::read(void * read_to, int max_size) {
|
||||
return read(read_to, max_size, 0);
|
||||
}
|
||||
|
||||
|
||||
int PISharedMemory::read(void * read_to, int max_size, int offset) {
|
||||
#ifdef WINDOWS
|
||||
if (!PRIVATE->data) return -1;
|
||||
CopyMemory(read_to, PRIVATE->data, max_size);
|
||||
CopyMemory(read_to, &(((char*)(PRIVATE->data))[offset]), max_size);
|
||||
return max_size;
|
||||
#endif
|
||||
#ifdef LINUX
|
||||
if (!PRIVATE->data) return -1;
|
||||
memcpy(read_to, PRIVATE->data, max_size);
|
||||
memcpy(read_to, &(((char*)(PRIVATE->data))[offset]), max_size);
|
||||
return max_size;
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
int PISharedMemory::write(const void * data, int max_size) {
|
||||
return write(data, max_size, 0);
|
||||
}
|
||||
|
||||
|
||||
int PISharedMemory::write(const void * data, int max_size, int offset) {
|
||||
#ifdef WINDOWS
|
||||
if (!PRIVATE->data) return -1;
|
||||
CopyMemory(PRIVATE->data, data, max_size);
|
||||
CopyMemory(&(((char*)(PRIVATE->data))[offset]), data, max_size);
|
||||
return max_size;
|
||||
#endif
|
||||
#ifdef LINUX
|
||||
if (!PRIVATE->data) return -1;
|
||||
memcpy(PRIVATE->data, data, max_size);
|
||||
memcpy(&(((char*)(PRIVATE->data))[offset]), data, max_size);
|
||||
return max_size;
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -52,12 +52,21 @@ public:
|
||||
//! Read from shared memory object to "read_to" no more than "max_size" and return readed bytes count
|
||||
int read(void * read_to, int max_size);
|
||||
|
||||
//! Read from shared memory object to "read_to" no more than "max_size" and return readed bytes count
|
||||
int read(void * read_to, int max_size, int offset);
|
||||
|
||||
//! Write to shared memory object "data" with size "max_size" and return written bytes count
|
||||
int write(const void * data, int max_size);
|
||||
|
||||
//! Write to shared memory object "data" with size "max_size" and return written bytes count
|
||||
int write(const void * data, int max_size, int offset);
|
||||
|
||||
//! Write "data" to shared memory object
|
||||
int write(const PIByteArray & data) {return write(data.data(), data.size_s());}
|
||||
|
||||
//! Write "data" to shared memory object
|
||||
int write(const PIByteArray & data, int offset) {return write(data.data(), data.size_s(), offset);}
|
||||
|
||||
|
||||
protected:
|
||||
bool openDevice();
|
||||
|
||||
@@ -145,7 +145,7 @@ void PIProcess::startProc(bool detached) {
|
||||
0, // Process handle not inheritable
|
||||
0, // Thread handle not inheritable
|
||||
false, // Set handle inheritance to FALSE
|
||||
detached ? DETACHED_PROCESS : 0, // Creation flags
|
||||
detached ? DETACHED_PROCESS/*CREATE_NEW_CONSOLE*/ : 0, // Creation flags
|
||||
0,//e, // Use environment
|
||||
wd.isEmpty() ? 0 : wd.data(), // Use working directory
|
||||
&si, // Pointer to STARTUPINFO structure
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
class PISharedMemory;
|
||||
|
||||
class PIP_EXPORT PISingleApplication: protected PIThread {
|
||||
class PIP_EXPORT PISingleApplication: public PIThread {
|
||||
PIOBJECT_SUBCLASS(PISingleApplication, PIThread)
|
||||
public:
|
||||
PISingleApplication(const PIString & app_name = PIString());
|
||||
|
||||
Reference in New Issue
Block a user