| 72 | |
| 73 | |
| 74 | BOOL writeObject( DcmDataset *pobj, |
| 75 | const char *filename, |
| 76 | E_TransferSyntax xfer, |
| 77 | E_EncodingType enctype, |
| 78 | E_GrpLenEncoding gltype ) |
| 79 | { |
| 80 | const Uint32 packetlen = 200; |
| 81 | |
| 82 | DcmFileStream buf(filename, DCM_WriteMode); |
| 83 | if ( buf.Fail() ) { |
| 84 | fprintf(stderr, "dcmdump: cannot create file: %s\n", filename); |
| 85 | return FALSE; |
| 86 | } |
| 87 | |
| 88 | DcmBufferStream myout(DCM_WriteMode); |
| 89 | |
| 90 | char *buffer = new char[ packetlen ]; |
| 91 | void * getPtr = NULL; |
| 92 | BOOL generateMoreData = TRUE; |
| 93 | myout.SetBuffer(buffer, packetlen); |
| 94 | |
| 95 | while ( 1 ) |
| 96 | { |
| 97 | if (generateMoreData && |
| 98 | pobj->write(myout, xfer, enctype, gltype ) == EC_Normal ) |
| 99 | { |
| 100 | generateMoreData = FALSE; |
| 101 | myout.SetEndOfStream(); // No more data available |
| 102 | } |
| 103 | |
| 104 | Uint32 maxreadlen = 0; |
| 105 | myout.GetBuffer(getPtr, maxreadlen); |
| 106 | buf.WriteBytes(getPtr, maxreadlen); // putPacketIntoNet( buffer,... |
| 107 | if (myout.EndOfStream()) |
| 108 | break; // EndOfFile from readBuffer() detected |
| 109 | } |
| 110 | delete buffer; |
| 111 | |
| 112 | return TRUE; |
| 113 | } |
| 114 | |
| 115 | |
| 116 | // ******************************************** |
no test coverage detected