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
|
||||
}
|
||||
|
||||
@@ -51,12 +51,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:
|
||||
|
||||
Reference in New Issue
Block a user