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) {
|
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
|
#ifdef WINDOWS
|
||||||
if (!PRIVATE->data) return -1;
|
if (!PRIVATE->data) return -1;
|
||||||
CopyMemory(read_to, PRIVATE->data, max_size);
|
CopyMemory(read_to, &(((char*)(PRIVATE->data))[offset]), max_size);
|
||||||
return max_size;
|
return max_size;
|
||||||
#endif
|
#endif
|
||||||
#ifdef LINUX
|
#ifdef LINUX
|
||||||
if (!PRIVATE->data) return -1;
|
if (!PRIVATE->data) return -1;
|
||||||
memcpy(read_to, PRIVATE->data, max_size);
|
memcpy(read_to, &(((char*)(PRIVATE->data))[offset]), max_size);
|
||||||
return max_size;
|
return max_size;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int PISharedMemory::write(const void * data, int max_size) {
|
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
|
#ifdef WINDOWS
|
||||||
if (!PRIVATE->data) return -1;
|
if (!PRIVATE->data) return -1;
|
||||||
CopyMemory(PRIVATE->data, data, max_size);
|
CopyMemory(&(((char*)(PRIVATE->data))[offset]), data, max_size);
|
||||||
return max_size;
|
return max_size;
|
||||||
#endif
|
#endif
|
||||||
#ifdef LINUX
|
#ifdef LINUX
|
||||||
if (!PRIVATE->data) return -1;
|
if (!PRIVATE->data) return -1;
|
||||||
memcpy(PRIVATE->data, data, max_size);
|
memcpy(&(((char*)(PRIVATE->data))[offset]), data, max_size);
|
||||||
return max_size;
|
return max_size;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,12 +51,21 @@ public:
|
|||||||
|
|
||||||
//! Read from shared memory object to "read_to" no more than "max_size" and return readed bytes count
|
//! 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 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
|
//! Write to shared memory object "data" with size "max_size" and return written bytes count
|
||||||
int write(const void * data, int max_size);
|
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
|
//! Write "data" to shared memory object
|
||||||
int write(const PIByteArray & data) {return write(data.data(), data.size_s());}
|
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:
|
protected:
|
||||||
|
|||||||
@@ -145,7 +145,7 @@ void PIProcess::startProc(bool detached) {
|
|||||||
0, // Process handle not inheritable
|
0, // Process handle not inheritable
|
||||||
0, // Thread handle not inheritable
|
0, // Thread handle not inheritable
|
||||||
false, // Set handle inheritance to FALSE
|
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
|
0,//e, // Use environment
|
||||||
wd.isEmpty() ? 0 : wd.data(), // Use working directory
|
wd.isEmpty() ? 0 : wd.data(), // Use working directory
|
||||||
&si, // Pointer to STARTUPINFO structure
|
&si, // Pointer to STARTUPINFO structure
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
|
|
||||||
class PISharedMemory;
|
class PISharedMemory;
|
||||||
|
|
||||||
class PIP_EXPORT PISingleApplication: protected PIThread {
|
class PIP_EXPORT PISingleApplication: public PIThread {
|
||||||
PIOBJECT_SUBCLASS(PISingleApplication, PIThread)
|
PIOBJECT_SUBCLASS(PISingleApplication, PIThread)
|
||||||
public:
|
public:
|
||||||
PISingleApplication(const PIString & app_name = PIString());
|
PISingleApplication(const PIString & app_name = PIString());
|
||||||
|
|||||||
Reference in New Issue
Block a user