BuildTemporary(me: in out);
BuildTemporary(me: in out ; apath : AsciiString from TCollection);
- BuildNamedPipe(me: in out);
+ BuildNamedPipe(me: in out) returns FDescr from WOKUnix;
GetNbToRead(me : in out) returns Integer from Standard;
SetUnBuffered(me : in out);
//function : BuildNamedPipe
//purpose :
//=======================================================================
-void WOKUnix_FDescr::BuildNamedPipe()
+
+WOKUnix_FDescr WOKUnix_FDescr::BuildNamedPipe()
{
TCollection_AsciiString apath;
WOKUnix_FDescr writeend;
writeend.SetPath(OSD_Path(Name()->String()));
writeend.Open(OSD_WriteOnly, OSD_Protection());
writeend.SetUnBuffered();
-
+
+ return writeend ;
}
//=======================================================================
//=======================================================================
WOKUnix_ShellStatus::WOKUnix_ShellStatus()
{
- myfile.BuildNamedPipe();
+//JR myfile.BuildNamedPipe();
+ myfileend = myfile.BuildNamedPipe();
}
//=======================================================================
Standard_Integer nbtoread = myfile.GetNbToRead();
if(nbtoread == 0)
{
- Standard_ProgramError::Raise("ShellStatus::Get : Nothing to read on status pipe\n");
+ Standard_ProgramError::Raise("WOKUnix_ShellStatus::Get : Nothing to read on status pipe\n");
return 1;
}
if(nbtoread != buf.Length())
{
perror(Name()->ToCString());
- Standard_ProgramError::Raise("ShellStatus::Get : Could not read from status pipe\n");
+ Standard_ProgramError::Raise("WOKUnix_ShellStatus::Get : Could not read from status pipe\n");
return 1;
}
buf.Trunc(nbtoread);
Standard_Integer nbtoread = myfile.GetSize();
if(nbtoread == 0)
{
- Standard_ProgramError::Raise("ShellStatus::GetRemote : Nothing to read on status file\n");
+ Standard_ProgramError::Raise("WOKUnix_ShellStatus::GetRemote : Nothing to read on status file\n");
return 1;
}
if(nbtoread != buf.Length())
{
perror(Name()->ToCString());
- Standard_ProgramError::Raise("ShellStatus::GetRemote : Could not read from status file\n");
+ Standard_ProgramError::Raise("WOKUnix_ShellStatus::GetRemote : Could not read from status file\n");
return 1;
}
buf.Trunc(nbtoread);
//=======================================================================
void WOKUnix_ShellStatus::Destroy()
{
+ if ( myfile.FileNo() >= 0 ) {
+ myfile.Close();
+ }
+ if ( myfileend.FileNo() >= 0 ) {
+ myfileend.Close();
+ }
+
myfile.Remove();
+ myfileend.Remove();
}